[build-system]
requires = ["maturin>=1.4,<2.0"]
build-backend = "maturin"
[project]
name = "medrs"
version = "0.1.2"
description = "Ultra-high-performance medical imaging I/O for deep learning"
readme = "README.md"
license = { text = "MIT OR Apache-2.0" }
authors = [
{ name = "Liam Chalcroft", email = "liam.chalcroft.20@ucl.ac.uk" }
]
maintainers = [
{ name = "Liam Chalcroft", email = "liam.chalcroft.20@ucl.ac.uk" }
]
homepage = "https://github.com/liamchalcroft/med-rs"
repository = "https://github.com/liamchalcroft/med-rs"
documentation = "https://medrs.readthedocs.io"
requires-python = ">=3.10"
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Science/Research",
"Intended Audience :: Healthcare Industry",
"License :: OSI Approved :: MIT License",
"License :: OSI Approved :: Apache Software License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Rust",
"Topic :: Scientific/Engineering :: Medical Science Apps.",
"Topic :: Scientific/Engineering :: Image Processing",
]
keywords = ["medical-imaging", "nifti", "neuroimaging", "deep-learning", "pytorch", "jax", "monai"]
dependencies = [
"numpy>=1.25.0",
]
[project.optional-dependencies]
dev = [
"pytest>=7.0",
"pytest-benchmark>=4.0",
"psutil>=5.9",
"nibabel>=5.0",
"torch>=2.0",
"monai>=1.5",
"jax>=0.4",
"jaxlib>=0.4",
"hypothesis>=6.0",
]
monai = [
"monai>=1.5",
"torch>=2.0",
"nibabel>=5.0",
]
jax = [
"jax>=0.4",
"jaxlib>=0.4",
]
torch = [
"torch>=2.0",
]
examples = [
"torch>=2.0",
"monai>=1.5",
"nibabel>=5.0",
"jax>=0.4",
"torchio>=0.20",
"matplotlib>=3.5",
]
docs = [
"sphinx>=7.0",
"sphinx-rtd-theme>=1.3",
"sphinx-tabs>=3.4",
"sphinx-copybutton>=0.5",
"sphinx-design>=0.5",
"myst-parser>=2.0",
"sphinx-autodoc-typehints>=1.24",
"numpy>=1.25.0",
]
test = [
"pytest>=7.0",
"pytest-benchmark>=4.0",
"pytest-xdist>=3.0",
"psutil>=5.9",
"nibabel>=5.0",
"hypothesis>=6.0",
]
[project.urls]
"Homepage" = "https://github.com/liamchalcroft/med-rs"
"Documentation" = "https://medrs.readthedocs.io"
"Repository" = "https://github.com/liamchalcroft/med-rs"
"Bug Tracker" = "https://github.com/liamchalcroft/med-rs/issues"
[tool.maturin]
features = ["python"]
module-name = "medrs._medrs"
python-source = "src/python"
[tool.pytest.ini_options]
minversion = "7.0"
addopts = "-ra -q --strict-markers --strict-config"
testpaths = ["tests"]
python_files = ["test_*.py", "*_test.py"]
markers = [
"slow: marks tests as slow (deselect with '-m \"not slow\"')",
"integration: marks tests as integration tests",
"benchmark: marks tests as benchmarks",
]
[tool.coverage.run]
source = ["src/python"]
omit = ["*/tests/*", "*/test_*"]
[tool.black]
line-length = 100
target-version = ['py310', 'py311', 'py312']
[tool.isort]
profile = "black"
line_length = 100
[tool.mypy]
python_version = "3.10"
ignore_missing_imports = true
[tool.ruff]
line-length = 100
target-version = "py310"
[tool.ruff.lint]
select = ["E", "F", "W"]
ignore = [
"E501",
"F841",
"E402",
"E722",
]
[tool.ruff.lint.per-file-ignores]
"tests/*" = ["F401", "F841"]
"benchmarks/*" = ["F401", "F841"]
"examples/*" = ["F401", "F841"]
"src/python/medrs/*" = ["F401"]