Spaces:
Runtime error
Runtime error
| [project] | |
| name = "stroke-deepisles-demo" | |
| version = "0.1.0" | |
| description = "Demo: HF datasets + DeepISLES stroke segmentation + Gradio visualization" | |
| readme = "README.md" | |
| license = { text = "MIT" } | |
| requires-python = ">=3.11" | |
| authors = [ | |
| { name = "stroke-deepisles-demo contributors" } | |
| ] | |
| classifiers = [ | |
| "Development Status :: 3 - Alpha", | |
| "Intended Audience :: Science/Research", | |
| "License :: OSI Approved :: MIT License", | |
| "Programming Language :: Python :: 3.11", | |
| "Programming Language :: Python :: 3.12", | |
| "Topic :: Scientific/Engineering :: Medical Science Apps.", | |
| ] | |
| keywords = ["stroke", "neuroimaging", "segmentation", "BIDS", "NIfTI", "deep-learning"] | |
| dependencies = [ | |
| # Core - pinned to Tobias's fork for BIDS + NIfTI lazy loading (commit c1c15aa) | |
| "datasets @ git+https://github.com/CloseChoice/datasets.git@c1c15aaa4f00f28f1916f3a896283494162eac49", | |
| "huggingface-hub>=0.25.0", | |
| # NIfTI handling | |
| "nibabel>=5.2.0", | |
| "numpy>=1.26.0,<2.0.0", | |
| # Configuration | |
| "pydantic>=2.5.0", | |
| "pydantic-settings>=2.1.0", | |
| # UI (Gradio 6.x - Dec 2025 stable) | |
| "gradio>=6.0.0,<7.0.0", | |
| "matplotlib>=3.8.0", | |
| # Networking | |
| "requests>=2.0.0", | |
| ] | |
| [project.scripts] | |
| stroke-demo = "stroke_deepisles_demo.cli:main" | |
| [dependency-groups] | |
| dev = [ | |
| "pytest>=8.0.0", | |
| "pytest-cov>=4.1.0", | |
| "pytest-mock>=3.12.0", | |
| "pytest-timeout>=2.3.0", | |
| "mypy>=1.19.0", | |
| "ruff>=0.14.0", | |
| "pre-commit>=3.6.0", | |
| # Type stubs | |
| "types-requests", | |
| ] | |
| [build-system] | |
| requires = ["hatchling"] | |
| build-backend = "hatchling.build" | |
| [tool.hatch.metadata] | |
| allow-direct-references = true | |
| [tool.hatch.build.targets.wheel] | |
| packages = ["src/stroke_deepisles_demo"] | |
| # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # Tool configurations | |
| # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| [tool.ruff] | |
| target-version = "py312" | |
| line-length = 100 | |
| src = ["src", "tests"] | |
| [tool.ruff.lint] | |
| select = [ | |
| "E", # pycodestyle errors | |
| "W", # pycodestyle warnings | |
| "F", # pyflakes | |
| "I", # isort | |
| "B", # flake8-bugbear | |
| "C4", # flake8-comprehensions | |
| "UP", # pyupgrade | |
| "ARG", # flake8-unused-arguments | |
| "SIM", # flake8-simplify | |
| "TCH", # flake8-type-checking | |
| "PTH", # flake8-use-pathlib | |
| "RUF", # ruff-specific | |
| ] | |
| ignore = [ | |
| "E501", # line too long (handled by formatter) | |
| ] | |
| [tool.ruff.lint.isort] | |
| known-first-party = ["stroke_deepisles_demo"] | |
| [tool.mypy] | |
| python_version = "3.12" | |
| strict = true | |
| warn_return_any = true | |
| warn_unused_ignores = true | |
| disallow_untyped_defs = true | |
| plugins = ["pydantic.mypy"] | |
| [[tool.mypy.overrides]] | |
| module = [ | |
| "nibabel.*", | |
| "gradio.*", | |
| "datasets.*", | |
| "niivue.*", | |
| "numpy.*", | |
| "pytest.*", | |
| # DeepISLES modules (only available in DeepISLES Docker image) | |
| "src.isles22_ensemble", | |
| ] | |
| ignore_missing_imports = true | |
| [tool.pytest.ini_options] | |
| testpaths = ["tests"] | |
| python_files = ["test_*.py"] | |
| python_functions = ["test_*"] | |
| addopts = [ | |
| "-v", | |
| "--tb=short", | |
| "--strict-markers", | |
| "-m", "not integration", # Skip integration tests by default | |
| ] | |
| markers = [ | |
| "integration: marks tests requiring external resources (Docker, network)", | |
| "slow: marks tests that take >10s to run", | |
| ] | |
| filterwarnings = [ | |
| "ignore::DeprecationWarning", | |
| ] | |
| [tool.coverage.run] | |
| source = ["src/stroke_deepisles_demo"] | |
| branch = true | |
| [tool.coverage.report] | |
| exclude_lines = [ | |
| "pragma: no cover", | |
| "if TYPE_CHECKING:", | |
| "raise NotImplementedError", | |
| ] | |