https://github.com/poldracklab/mriqc
Tip revision: 08aa45502afefafab0a03407ff4ba231fe9dc6ad authored by Oscar Esteban on 05 April 2024, 09:06:34 UTC
rel(24.0.0-rc1): Update authorship in CHANGES [skip ci]
rel(24.0.0-rc1): Update authorship in CHANGES [skip ci]
Tip revision: 08aa455
pyproject.toml
[build-system]
requires = ["hatchling", "hatch-vcs", "nipreps-versions"]
build-backend = "hatchling.build"
[project]
name = "mriqc"
description = "Automated Quality Control and visual reports for Quality Assessment of structural (T1w, T2w) and functional MRI of the brain."
readme = "README.rst"
authors = [{name = "The NiPreps Developers", email = "nipreps@gmail.com"}]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Science/Research",
"Topic :: Scientific/Engineering :: Image Recognition",
"Topic :: Scientific/Engineering :: Bio-Informatics",
"License :: OSI Approved :: Apache Software License",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
]
license = "Apache-2.0"
requires-python = ">=3.8"
dependencies = [
"dipy",
'importlib_resources; python_version < "3.9"',
# jinja2 imports deprecated function removed in 2.1
"markupsafe ~= 2.0.1",
"matplotlib",
"migas >= 0.4.0",
"mriqc-learn",
"nibabel >= 3.0.1",
"nilearn >= 0.5.1",
"nipype ~= 1.4",
"nireports ~= 23.1",
"nitransforms ~= 23.0",
"niworkflows ~=1.10.1",
"numpy ~=1.20",
"pandas ~=1.0",
"pybids >= 0.15.6",
"PyYAML",
"scikit-learn",
"scipy ~=1.8",
"statsmodels",
"templateflow",
"toml",
"torch >= 1.10.2",
]
dynamic = ["version"]
[project.urls]
Homepage = "https://github.com/nipreps/mriqc"
NiPreps = "https://www.nipreps.org/"
Documentation = "https://mriqc.readthedocs.io/"
Manuscript = "https://doi.org/10.1371/journal.pone.0184661"
"Sci Dat Paper" = "https://doi.org/10.1038/s41597-019-0035-4"
"Web API" = "https://mriqc.nimh.nih.gov/"
"Docker Images" = "https://hub.docker.com/r/nipreps/mriqc/tags/"
[project.optional-dependencies]
doc = [
"nipype",
"packaging",
"pydot>=1.2.3",
"pydotplus",
"sphinx-argparse",
"sphinx_rtd_theme",
"sphinx~=5.0",
]
container = [
# templateflow extras
"datalad",
"datalad-osf",
]
rodents = [
"nirodents >= 0.2.8",
]
notebook = [
"ipython",
"jupyter",
"nipy",
]
dev = [
"black ~= 22.3.0",
"pre-commit",
"isort ~= 5.10.1",
"flake8-pyproject",
]
test = [
"coverage",
"mock",
"pytest",
"pytest-cov",
"pytest-env",
"pytest-xdist",
]
other = [
"nitime",
"scikit-image",
"seaborn",
"xvfbwrapper",
]
# Aliases
docs = ["mriqc[doc]"]
tests = ["mriqc[test]"]
others = ["mriqc[other]"]
all = ["mriqc[doc,container,test,notebook,other,rodents]"]
[project.scripts]
mriqc = "mriqc.cli.run:main"
synthstrip = "mriqc.synthstrip.cli:main"
abide2bids = "mriqc.bin.abide2bids:main"
fs2gif = "mriqc.bin.fs2gif:main"
dfcheck = "mriqc.bin.dfcheck:main"
nib-hash = "mriqc.bin.nib_hash:main"
participants = "mriqc.bin.subject_wrangler:main"
mriqc_labeler = "mriqc.bin.labeler:main"
mriqcwebapi_test = "mriqc.bin.mriqcwebapi_test:main"
#
# Hatch configurations
#
[tool.hatch.metadata]
allow-direct-references = true
[tool.hatch.build.targets.sdist]
exclude = [".git_archival.txt"] # No longer needed in sdist
[tool.hatch.build.targets.wheel]
packages = ["mriqc"]
# exclude = [
# "mriqc/tests/data", # Large test data directory
# ]
## The following two sections configure setuptools_scm in the hatch way
[tool.hatch.version]
source = "vcs"
raw-options = { version_scheme = "nipreps-calver" }
[tool.hatch.build.hooks.vcs]
version-file = "mriqc/_version.py"
#
# Developer tool configurations
#
[tool.black]
line-length = 99
target-version = ['py39']
skip-string-normalization = true
exclude = '''
# Directories
/(
\.eggs
| \.git
| \.hg
| \.mypy_cache
| \.tox
| \.venv
| venv
| _build
| build
| dist
)/
'''
[tool.pytest.ini_options]
minversion = "7"
log_cli_level = "INFO"
norecursedirs = [".git"]
addopts = ["-svx", "--doctest-modules", "-ra", "--strict-config", "--strict-markers"]
doctest_optionflags = "ALLOW_UNICODE NORMALIZE_WHITESPACE ELLIPSIS"
env = "PYTHONHASHSEED=0"
filterwarnings = ["ignore::DeprecationWarning"]
junit_family = "xunit2"
xfail_strict = true
[tool.coverage.run]
branch = true
omit = [
'*/tests/*',
'*/__init__.py',
'*/conftest.py',
'mriqc/_version.py'
]
[tool.coverage.report]
# Regexes for lines to exclude from consideration
exclude_lines = [
'raise NotImplementedError',
'warnings\.warn',
]
[tool.codespell]
# nd - import scipy.ndimage as nd
# mapp, reson -- Mapp. and Reson. abbreviations in citation
ignore-words-list = 'nd,mapp,reson'
skip = """
./.git,*.pdf,*.svg,*.min.js,*.ipynb,ORIGINAL_LICENSE,\
./docs/source/_static/example_anatreport.html"""
[tool.ruff]
line-length = 99
[tool.ruff.lint]
extend-select = [
"F",
"E",
"W",
"I",
"UP",
"YTT",
"S",
"BLE",
"B",
"A",
# "CPY",
"C4",
"DTZ",
"T10",
# "EM",
"EXE",
"FA",
"ISC",
"ICN",
"PT",
"Q",
]
ignore = [
"S311", # We are not using random for cryptographic purposes
"ISC001",
"S603",
]
[tool.ruff.lint.flake8-quotes]
inline-quotes = "single"
[tool.ruff.lint.extend-per-file-ignores]
"*/test_*.py" = ["S101"]
"docs/source/conf.py" = ["A001"]
"mriqc/bin/nib_hash.py" = ["S324"]
"mriqc/config.py" = ["S105"]
"mriqc/conftest.py" = ["PT004"]
"mriqc/engine/plugin.py" = ["BLE001"]
"mriqc/utils/debug.py" = ["A002", "T100"]
[tool.ruff.format]
quote-style = "single"