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.
- tabnado-0.1.0/.dockerignore +18 -0
- tabnado-0.1.0/.github/dependabot.yml +12 -0
- tabnado-0.1.0/.github/workflows/build-container.yml +51 -0
- tabnado-0.1.0/.github/workflows/deploy-docs.yml +40 -0
- tabnado-0.1.0/.github/workflows/pypi.yml +31 -0
- tabnado-0.1.0/.github/workflows/python-tests.yml +43 -0
- tabnado-0.1.0/.gitignore +31 -0
- tabnado-0.1.0/.pre-commit-config.yaml +16 -0
- tabnado-0.1.0/Dockerfile +25 -0
- tabnado-0.1.0/LICENSE +674 -0
- tabnado-0.1.0/PKG-INFO +37 -0
- tabnado-0.1.0/README.md +184 -0
- tabnado-0.1.0/TabNado.egg-info/PKG-INFO +37 -0
- tabnado-0.1.0/TabNado.egg-info/SOURCES.txt +57 -0
- tabnado-0.1.0/TabNado.egg-info/dependency_links.txt +1 -0
- tabnado-0.1.0/TabNado.egg-info/entry_points.txt +8 -0
- tabnado-0.1.0/TabNado.egg-info/requires.txt +33 -0
- tabnado-0.1.0/TabNado.egg-info/top_level.txt +1 -0
- tabnado-0.1.0/docs/api/overview.md +31 -0
- tabnado-0.1.0/docs/assets/tabnado.png +0 -0
- tabnado-0.1.0/docs/cli.md +41 -0
- tabnado-0.1.0/docs/configuration.md +67 -0
- tabnado-0.1.0/docs/index.md +40 -0
- tabnado-0.1.0/docs/installation.md +45 -0
- tabnado-0.1.0/docs/outputs.md +34 -0
- tabnado-0.1.0/docs/pipeline.md +28 -0
- tabnado-0.1.0/docs/quick_start.md +129 -0
- tabnado-0.1.0/mkdocs.yml +67 -0
- tabnado-0.1.0/pyproject.toml +71 -0
- tabnado-0.1.0/setup.cfg +4 -0
- tabnado-0.1.0/tabnado/__init__.py +4 -0
- tabnado-0.1.0/tabnado/api.py +267 -0
- tabnado-0.1.0/tabnado/cli.py +80 -0
- tabnado-0.1.0/tabnado/data.py +549 -0
- tabnado-0.1.0/tabnado/evaluate.py +246 -0
- tabnado-0.1.0/tabnado/gandalf_shap.py +366 -0
- tabnado-0.1.0/tabnado/gandalf_sweep.py +482 -0
- tabnado-0.1.0/tabnado/gandalf_train.py +159 -0
- tabnado-0.1.0/tabnado/init.py +57 -0
- tabnado-0.1.0/tabnado/params.py +139 -0
- tabnado-0.1.0/tabnado/utils.py +164 -0
- tabnado-0.1.0/tabnado/wandb.py +135 -0
- tabnado-0.1.0/tabnado/xgb_shap.py +350 -0
- tabnado-0.1.0/tabnado/xgb_sweep.py +210 -0
- tabnado-0.1.0/tabnado/xgb_train.py +165 -0
- tabnado-0.1.0/tests/__init__.py +1 -0
- tabnado-0.1.0/tests/conftest.py +96 -0
- tabnado-0.1.0/tests/data/params_gandalf_test.yaml +20 -0
- tabnado-0.1.0/tests/data/params_test.yaml +20 -0
- tabnado-0.1.0/tests/data/params_test_xgboost.yaml +19 -0
- tabnado-0.1.0/tests/data/test_anno.gtf +29 -0
- tabnado-0.1.0/tests/data/test_peaks.bed +6 -0
- tabnado-0.1.0/tests/make_test_dataset.py +122 -0
- tabnado-0.1.0/tests/test_cli.py +57 -0
- tabnado-0.1.0/tests/test_peaks.py +47 -0
- tabnado-0.1.0/tests/test_pipeline_gandalf.py +59 -0
- tabnado-0.1.0/tests/test_pipeline_xgboost.py +83 -0
- tabnado-0.1.0/tests/test_wandb_config.py +12 -0
- tabnado-0.1.0/uv.lock +2368 -0
|
@@ -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 }}
|
tabnado-0.1.0/.gitignore
ADDED
|
@@ -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
|
tabnado-0.1.0/Dockerfile
ADDED
|
@@ -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"]
|