https://github.com/poldracklab/mriqc
Raw File
Tip revision: e6dfba1f0c793bbf8fa69cb28acc4cee87b25bd3 authored by Oscar Esteban on 03 March 2023, 22:41:54 UTC
rel(23.0.0rc1): update CHANGES
Tip revision: e6dfba1
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"
]
license = "Apache-2.0"
requires-python = ">=3.8"
dependencies = [
    'importlib_resources; python_version < "3.9"',
    # jinja2 imports deprecated function removed in 2.1
    "markupsafe ~= 2.0.1",
    "matplotlib",
    "migas",
    "mriqc-learn",
    "nibabel >= 3.0.1,<4.0",
    "nilearn >= 0.5.1",
    "nipype ~= 1.4",
    "nireports >= 0.2.0",
    "nitransforms >= 21.0.1",
    "niworkflows ~= 1.7.1",
    "numpy ~=1.20",
    "pandas ~=1.0",
    "pybids >= 0.15.6",
    "PyYAML",
    "scipy ~=1.8",
    "statsmodels",
    "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~=4.0",
]

full = [
    "dipy<=1.4.0", # see nipreps/mriqc#969; can be removed if nipype>1.7.0
    "nitime",
    "nirodents >= 0.2.8",
    "scikit-learn ~= 1.0",
    "seaborn",
    "templateflow",
    "xvfbwrapper",
]

notebook = [
    "ipython",
    "jupyter",
    "nipy",
]

dev = [
    "black ~= 22.3.0",
    "pre-commit",
    "isort ~= 5.10.1",
    "flake8-pyproject",
]

test = [
    "coverage",
    "mock",
    "pytest",
    "pytest-cov",
    "pytest-xdist",
]

other = [
    "scikit-image",
]

# Aliases
docs = ["mriqc[doc]"]
tests = ["mriqc[test]"]
others = ["mriqc[other]"]
all = ["mriqc[doc,full,test,notebook,other]"]

[project.scripts]
mriqc = "mriqc.cli.run:main"
synthstrip = "mriqc.synthstrip.cli:main"
mriqc_plot = "mriqc.bin.mriqc_plot: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]
validate-bump = true
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.isort]
profile = 'black'
skip_gitignore = true

[tool.flake8]
max-line-length = "99"
doctests = "False"
exclude = "*build/"
ignore = ["W503", "E203"]
per-file-ignores = [
    "**/__init__.py : F401",
    "docs/conf.py : E265",
]

[tool.pytest.ini_options]
norecursedirs = [".git"]
addopts = "-svx --doctest-modules"
doctest_optionflags = "ALLOW_UNICODE NORMALIZE_WHITESPACE ELLIPSIS"
env = "PYTHONHASHSEED=0"
filterwarnings = ["ignore::DeprecationWarning"]
junit_family = "xunit2"


[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',
]
back to top