[project] name = "openrun" version = "0.1.0" description = "Endurance-running analytics — local-first, open-source. Banister CTL/ATL/TSB, Pa:HR decoupling, FIT-aware HR zones, route clustering, race-plan projection." readme = "README.md" license = { text = "MIT" } requires-python = ">=3.13" dependencies = [ "fitparse>=1.2.0", "garth>=0.8.0", "ipykernel>=7.2.0", "jinja2>=3.1.6", "matplotlib>=3.10.9", "pandas>=3.0.3", ] [project.scripts] openrun-init = "openrun.setup:main" openrun-auth = "openrun.ingest.auth:main" openrun-sync = "openrun.ingest.garmin_api:main" openrun-ingest = "openrun.ingest.garmin_export:main" openrun-link-fit = "openrun.ingest.fit_linker:main" openrun-time-in-zone = "openrun.ingest.time_in_zone:main" [dependency-groups] dev = [ "pytest>=8.0.0", "pytest-cov>=5.0.0", ] [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build.targets.wheel] packages = ["src/openrun"] [tool.pytest.ini_options] testpaths = ["tests"] addopts = "-ra --strict-markers"