-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
70 lines (64 loc) · 2.67 KB
/
Copy pathpyproject.toml
File metadata and controls
70 lines (64 loc) · 2.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
[build-system]
requires = ["setuptools>=68", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "ilae-skill-certification"
version = "1.0.0rc1" # Phase 8 sub-8.3 (2026-05-20): release candidate. PEP 440 normalized form of `1.0.0-rc1` (the git tag uses the hyphenated form per merge plan §"Phase 8" sub-5).
description = "Unified ILAE epileptiform-discharge skill certification: SMC+MCMC Paper-1 engine + clinical deployment runtime."
requires-python = "==3.11.*"
readme = "README.md"
license = { text = "Proprietary - research use; see LICENSE/SENSITIVE.md" }
# Runtime deps mirror requirements.txt (single source of truth for exact pins).
dependencies = [
"numpy==1.26.4",
"scipy==1.13.1",
"pandas==2.2.2",
"PyYAML==6.0.2",
"h5py==3.11.0",
"openpyxl==3.1.5",
"matplotlib==3.9.2",
"imageio-ffmpeg==0.6.0",
"seaborn==0.13.2",
"arviz==0.19.0",
"pingouin==0.5.4",
"statsmodels==0.14.2",
"scikit-learn==1.6.1",
"reportlab==4.2.5",
"pillow==10.4.0",
"tqdm==4.66.5",
]
[project.optional-dependencies]
test = ["pytest==8.3.3", "pytest-timeout==2.3.1"]
# Phase 3.5 joint hierarchical s_j calibration ONLY. Isolated from the
# engine runtime (engine never imports these) so the numpy single-thread
# BLAS bit-exact contract is preserved. Install: pip install -e ".[calibration]"
calibration = ["numpyro==0.15.3", "jax==0.4.31", "jaxlib==0.4.31"]
[project.scripts]
# Console entry points. All three wired to real code as of Phase 8 sub-8.3.
# Phase 0 history: stubs raised NotImplementedError; wired progressively.
ilae-paper = "bridge.run_multi_auroc_bridge:main" # Phase 2 (F1.3)
ilae-calibrate = "calibration.cli:main" # Phase 8 sub-8.3 (thin --help-safe wrapper around pipeline.run_unified_calibration)
ilae-deploy = "deployment.cli:main" # Phase 4.7 (freeze→simulate→plot orchestrator)
[tool.setuptools]
# Explicit package list (dir name has dashes -> repo root is not importable;
# the importable packages are the module subdirs). tests/ is dev-only.
packages = [
"engine",
"engine.variants",
"deployment",
"pipeline",
"calibration",
"bridge",
]
[tool.pytest.ini_options]
# Carried verbatim from the methodology repo's pytest.ini (F0.1, 2026-05-15):
# fast tests run by default; slow/nightly opt-in.
# pytest -m "" # all tests
# pytest -m "slow" # only slow
# pytest -m "nightly" # only nightly
addopts = "-m 'not slow and not nightly' --strict-markers"
markers = [
"slow: tests that take >1 min (SBC, posterior coverage, OC pilots)",
"nightly: long-running tests (FWER 1000+ sessions, gold-chain references)",
]
testpaths = ["tests"]