[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "tsi-sim-pernode" version = "0.1.0" description = "Per-node network simulation of Cryptarchia Total Stake Inference (Phase 2)" readme = "README.md" requires-python = ">=3.11" license = { text = "MIT" } authors = [{ name = "Logos" }] dependencies = [ "numpy>=1.26", "pandas>=2.1", "pyarrow>=14", "matplotlib>=3.8", "scipy>=1.11", "pyyaml>=6.0", "tqdm>=4.66", "joblib>=1.3", ] [project.optional-dependencies] dev = ["pytest>=8.0", "pytest-xdist>=3.5", "ruff>=0.5", "mypy>=1.8"] accel = ["numba>=0.60"] # optional; only used if a single-config tree build is a bottleneck [project.scripts] tsi-sweep = "tsi_sim.sweep:main" tsi-verify = "tsi_sim.verify:main" tsi-figures = "tsi_sim.plotting.make_figures:main" [tool.hatch.build.targets.wheel] packages = ["src/tsi_sim"] [tool.ruff] line-length = 100 target-version = "py311" [tool.ruff.lint] select = ["E", "F", "I", "UP", "B", "NPY"] ignore = ["E741"] # allow single-char names like L (latency), q, m — domain symbols [tool.pytest.ini_options] testpaths = ["tests"] markers = ["slow: long-running (full-scale k) checks"] addopts = "-q -m 'not slow'" # fast subset by default; `make test-all` runs everything