TabNado 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. tabnado-0.1.0/.dockerignore +18 -0
  2. tabnado-0.1.0/.github/dependabot.yml +12 -0
  3. tabnado-0.1.0/.github/workflows/build-container.yml +51 -0
  4. tabnado-0.1.0/.github/workflows/deploy-docs.yml +40 -0
  5. tabnado-0.1.0/.github/workflows/pypi.yml +31 -0
  6. tabnado-0.1.0/.github/workflows/python-tests.yml +43 -0
  7. tabnado-0.1.0/.gitignore +31 -0
  8. tabnado-0.1.0/.pre-commit-config.yaml +16 -0
  9. tabnado-0.1.0/Dockerfile +25 -0
  10. tabnado-0.1.0/LICENSE +674 -0
  11. tabnado-0.1.0/PKG-INFO +37 -0
  12. tabnado-0.1.0/README.md +184 -0
  13. tabnado-0.1.0/TabNado.egg-info/PKG-INFO +37 -0
  14. tabnado-0.1.0/TabNado.egg-info/SOURCES.txt +57 -0
  15. tabnado-0.1.0/TabNado.egg-info/dependency_links.txt +1 -0
  16. tabnado-0.1.0/TabNado.egg-info/entry_points.txt +8 -0
  17. tabnado-0.1.0/TabNado.egg-info/requires.txt +33 -0
  18. tabnado-0.1.0/TabNado.egg-info/top_level.txt +1 -0
  19. tabnado-0.1.0/docs/api/overview.md +31 -0
  20. tabnado-0.1.0/docs/assets/tabnado.png +0 -0
  21. tabnado-0.1.0/docs/cli.md +41 -0
  22. tabnado-0.1.0/docs/configuration.md +67 -0
  23. tabnado-0.1.0/docs/index.md +40 -0
  24. tabnado-0.1.0/docs/installation.md +45 -0
  25. tabnado-0.1.0/docs/outputs.md +34 -0
  26. tabnado-0.1.0/docs/pipeline.md +28 -0
  27. tabnado-0.1.0/docs/quick_start.md +129 -0
  28. tabnado-0.1.0/mkdocs.yml +67 -0
  29. tabnado-0.1.0/pyproject.toml +71 -0
  30. tabnado-0.1.0/setup.cfg +4 -0
  31. tabnado-0.1.0/tabnado/__init__.py +4 -0
  32. tabnado-0.1.0/tabnado/api.py +267 -0
  33. tabnado-0.1.0/tabnado/cli.py +80 -0
  34. tabnado-0.1.0/tabnado/data.py +549 -0
  35. tabnado-0.1.0/tabnado/evaluate.py +246 -0
  36. tabnado-0.1.0/tabnado/gandalf_shap.py +366 -0
  37. tabnado-0.1.0/tabnado/gandalf_sweep.py +482 -0
  38. tabnado-0.1.0/tabnado/gandalf_train.py +159 -0
  39. tabnado-0.1.0/tabnado/init.py +57 -0
  40. tabnado-0.1.0/tabnado/params.py +139 -0
  41. tabnado-0.1.0/tabnado/utils.py +164 -0
  42. tabnado-0.1.0/tabnado/wandb.py +135 -0
  43. tabnado-0.1.0/tabnado/xgb_shap.py +350 -0
  44. tabnado-0.1.0/tabnado/xgb_sweep.py +210 -0
  45. tabnado-0.1.0/tabnado/xgb_train.py +165 -0
  46. tabnado-0.1.0/tests/__init__.py +1 -0
  47. tabnado-0.1.0/tests/conftest.py +96 -0
  48. tabnado-0.1.0/tests/data/params_gandalf_test.yaml +20 -0
  49. tabnado-0.1.0/tests/data/params_test.yaml +20 -0
  50. tabnado-0.1.0/tests/data/params_test_xgboost.yaml +19 -0
  51. tabnado-0.1.0/tests/data/test_anno.gtf +29 -0
  52. tabnado-0.1.0/tests/data/test_peaks.bed +6 -0
  53. tabnado-0.1.0/tests/make_test_dataset.py +122 -0
  54. tabnado-0.1.0/tests/test_cli.py +57 -0
  55. tabnado-0.1.0/tests/test_peaks.py +47 -0
  56. tabnado-0.1.0/tests/test_pipeline_gandalf.py +59 -0
  57. tabnado-0.1.0/tests/test_pipeline_xgboost.py +83 -0
  58. tabnado-0.1.0/tests/test_wandb_config.py +12 -0
  59. tabnado-0.1.0/uv.lock +2368 -0
@@ -0,0 +1,18 @@
1
+ .git
2
+ .github
3
+ .vscode
4
+ .pytest_cache
5
+ __pycache__
6
+ *.pyc
7
+ *.pyo
8
+ *.pyd
9
+ *.log
10
+
11
+ # Local and generated artifacts
12
+ test_output
13
+ site
14
+
15
+ # Local dev files
16
+ .venv
17
+ .claude
18
+ .DS_Store
@@ -0,0 +1,12 @@
1
+ # To get started with Dependabot version updates, you'll need to specify which
2
+ # package ecosystems to update and where the package manifests are located.
3
+ # Please see the documentation for more information:
4
+ # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5
+ # https://containers.dev/guide/dependabot
6
+
7
+ version: 2
8
+ updates:
9
+ - package-ecosystem: "uv"
10
+ directory: "/"
11
+ schedule:
12
+ interval: weekly
@@ -0,0 +1,51 @@
1
+ name: Container
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+ workflow_dispatch:
7
+
8
+ jobs:
9
+ build:
10
+ runs-on: ubuntu-latest
11
+ permissions:
12
+ contents: read
13
+ packages: write
14
+ actions: write
15
+
16
+ steps:
17
+ - name: Checkout repository
18
+ uses: actions/checkout@v4
19
+
20
+ - name: Set lowercase image name
21
+ id: image
22
+ run: echo "name=ghcr.io/$(echo '${{ github.repository }}' | tr '[:upper:]' '[:lower:]')" >> $GITHUB_OUTPUT
23
+
24
+ - name: Log in to GitHub Container Registry
25
+ uses: docker/login-action@v4
26
+ with:
27
+ registry: ghcr.io
28
+ username: ${{ github.actor }}
29
+ password: ${{ secrets.GITHUB_TOKEN }}
30
+
31
+ - name: Extract Docker metadata
32
+ id: meta
33
+ uses: docker/metadata-action@v5
34
+ with:
35
+ images: ${{ steps.image.outputs.name }}
36
+ tags: |
37
+ type=raw,value=latest
38
+ type=ref,event=tag
39
+
40
+ - name: Set up Docker Buildx
41
+ uses: docker/setup-buildx-action@v3
42
+
43
+ - name: Build and push
44
+ uses: docker/build-push-action@v6
45
+ with:
46
+ context: .
47
+ push: true
48
+ tags: ${{ steps.meta.outputs.tags }}
49
+ labels: ${{ steps.meta.outputs.labels }}
50
+ cache-from: type=gha
51
+ cache-to: type=gha,mode=max
@@ -0,0 +1,40 @@
1
+ name: Documentation
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+
8
+ permissions:
9
+ contents: write
10
+
11
+ jobs:
12
+ deploy:
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - uses: actions/checkout@v4
16
+ with:
17
+ fetch-depth: 0
18
+
19
+ - uses: actions/setup-python@v5
20
+ with:
21
+ python-version: "3.12"
22
+
23
+ - uses: astral-sh/setup-uv@v2
24
+ with:
25
+ enable-cache: true
26
+
27
+ - id: cache-id
28
+ run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_OUTPUT
29
+
30
+ - uses: actions/cache@v4
31
+ with:
32
+ key: mkdocs-material-${{ steps.cache-id.outputs.cache_id }}
33
+ path: .cache
34
+ restore-keys: |
35
+ mkdocs-material-
36
+
37
+ - name: Build and deploy
38
+ run: |
39
+ uv run --with mkdocs-material mkdocs build
40
+ uv run --with mkdocs-material mkdocs gh-deploy --force
@@ -0,0 +1,31 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+
7
+ permissions:
8
+ contents: read
9
+ id-token: write
10
+
11
+ jobs:
12
+ deploy:
13
+ runs-on: ubuntu-latest
14
+
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+ with:
18
+ fetch-depth: 0
19
+
20
+ - uses: astral-sh/setup-uv@v2
21
+
22
+ - name: Set up Python
23
+ uses: actions/setup-python@v5
24
+ with:
25
+ python-version: '3.13'
26
+
27
+ - name: Build package
28
+ run: uv build
29
+
30
+ - name: Publish package
31
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,43 @@
1
+ name: Tests
2
+
3
+ on:
4
+ push:
5
+
6
+ jobs:
7
+ test:
8
+ runs-on: ubuntu-latest
9
+ strategy:
10
+ fail-fast: false
11
+ matrix:
12
+ test_target:
13
+ - tests/test_cli.py
14
+ - tests/test_peaks.py
15
+ - tests/test_pipeline_gandalf.py
16
+ - tests/test_pipeline_xgboost.py
17
+ env:
18
+ UV_PYTHON: "3.12"
19
+ PYTHONUNBUFFERED: "1"
20
+
21
+ steps:
22
+ - uses: actions/checkout@v4
23
+
24
+ - name: Set up Python
25
+ uses: actions/setup-python@v5
26
+ with:
27
+ python-version: '3.12'
28
+
29
+ - uses: astral-sh/setup-uv@v2
30
+ with:
31
+ enable-cache: true
32
+
33
+ - name: Install dependencies
34
+ run: |
35
+ uv sync --all-extras --frozen
36
+ uv pip install pytorch-tabular==1.2.0 --no-deps
37
+ uv pip install "pytorch-lightning>=2.0.0,<2.7.0" "torchmetrics>=0.10.0,<1.9.0"
38
+
39
+ - name: Run tests (${{ matrix.test_target }})
40
+ run: >-
41
+ uv run --python 3.12 pytest
42
+ -vv -s -rA
43
+ ${{ matrix.test_target }}
@@ -0,0 +1,31 @@
1
+ # Python-generated files
2
+ __pycache__/
3
+ *.py[oc]
4
+ build/
5
+ dist/
6
+ wheels/
7
+ *.egg-info
8
+ .pytest_cache
9
+ .ruff_cache
10
+
11
+ # Virtual environments
12
+ .venv
13
+
14
+ # Claude-related files
15
+ .claude
16
+ CLAUDE.md
17
+ planning.md
18
+
19
+ # System files
20
+ .DS_Store
21
+ .vscode/
22
+
23
+ # Temporary files
24
+ .pt_tmp
25
+
26
+ # Output files
27
+ site/
28
+ test_output/
29
+ wandb/
30
+ params.yaml
31
+ *.log
@@ -0,0 +1,16 @@
1
+ repos:
2
+ - repo: https://github.com/astral-sh/ruff-pre-commit
3
+ rev: v0.9.10
4
+ hooks:
5
+ - id: ruff
6
+ args: [--fix, --select=I]
7
+ - id: ruff-format
8
+
9
+ - repo: local
10
+ hooks:
11
+ - id: uv-lock
12
+ name: uv lock
13
+ entry: bash -c 'uv lock && git add uv.lock'
14
+ language: system
15
+ pass_filenames: false
16
+ files: pyproject.toml
@@ -0,0 +1,25 @@
1
+ FROM python:3.12-slim
2
+
3
+ ENV PYTHONDONTWRITEBYTECODE=1 \
4
+ PYTHONUNBUFFERED=1 \
5
+ PIP_NO_CACHE_DIR=1
6
+
7
+ WORKDIR /app
8
+
9
+ # System packages required by scientific Python wheels and common build steps.
10
+ RUN apt-get update \
11
+ && apt-get install -y --no-install-recommends build-essential git \
12
+ && rm -rf /var/lib/apt/lists/*
13
+
14
+ # Install dependencies before copying source so this layer is cached
15
+ # independently of code changes.
16
+ RUN pip install --upgrade pip
17
+ COPY pyproject.toml README.md ./
18
+ RUN mkdir -p src/tabnado && touch src/tabnado/__init__.py
19
+ RUN pip install . && pip install pytorch-tabular==1.2.0 --no-deps
20
+
21
+ COPY . /app
22
+ RUN pip install --no-deps .
23
+
24
+ # Default command runs the full pipeline; pass --help or custom args at runtime.
25
+ ENTRYPOINT ["tabnado-run"]