|
|
[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 = [ |
|
|
|
|
|
"datasets @ git+https://github.com/CloseChoice/datasets.git@c1c15aaa4f00f28f1916f3a896283494162eac49", |
|
|
"huggingface-hub>=0.25.0", |
|
|
|
|
|
|
|
|
"nibabel>=5.2.0", |
|
|
"numpy>=1.26.0,<2.0.0", |
|
|
|
|
|
|
|
|
"pydantic>=2.5.0", |
|
|
"pydantic-settings>=2.1.0", |
|
|
|
|
|
|
|
|
"gradio>=6.0.0,<7.0.0", |
|
|
"matplotlib>=3.8.0", |
|
|
|
|
|
|
|
|
"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", |
|
|
|
|
|
"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.ruff] |
|
|
target-version = "py312" |
|
|
line-length = 100 |
|
|
src = ["src", "tests"] |
|
|
|
|
|
[tool.ruff.lint] |
|
|
select = [ |
|
|
"E", |
|
|
"W", |
|
|
"F", |
|
|
"I", |
|
|
"B", |
|
|
"C4", |
|
|
"UP", |
|
|
"ARG", |
|
|
"SIM", |
|
|
"TCH", |
|
|
"PTH", |
|
|
"RUF", |
|
|
] |
|
|
ignore = [ |
|
|
"E501", |
|
|
] |
|
|
|
|
|
[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.*", |
|
|
|
|
|
"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", |
|
|
] |
|
|
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", |
|
|
] |
|
|
|