Skip to content

Commit

Permalink
maint: finalize migration of package build to PEP517/8 (fixes #116)
Browse files Browse the repository at this point in the history
  • Loading branch information
oesteban committed Mar 15, 2024
1 parent 5a17078 commit d5855ae
Show file tree
Hide file tree
Showing 6 changed files with 162 additions and 125 deletions.
8 changes: 8 additions & 0 deletions .github/workflows/pythonpackage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -131,3 +131,11 @@ jobs:
find ${TEMPLATEFLOW_HOME} >> /tmp/.install-2.txt
diff /tmp/.install.txt /tmp/.install-2.txt
exit $?
flake8:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
- run: pipx run flake8-pyproject templateflow/
1 change: 0 additions & 1 deletion MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
recursive-exclude templateflow/tests *
recursive-exclude templateflow/conf/tests *
recursive-exclude docs/ *

recursive-exclude .circleci/ *
recursive-exclude .github/ *

Expand Down
160 changes: 154 additions & 6 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,16 +1,164 @@
[build-system]
requires = [
"setuptools >= 45",
"setuptools_scm >= 6.2",
"nipreps-versions",
"setuptools>=64",
"setuptools_scm>=8",
]
build-backend = "setuptools.build_meta"

[tool.setuptools_scm]
write_to = "templateflow/_version.py"
write_to_template = """\
version_file = "templateflow/_version.py"
version_file_template = """\
\"\"\"Version file, automatically generated by setuptools_scm.\"\"\"
__version__ = "{version}"
"""
fallback_version = "0.0"
version_scheme = "nipreps-calver"
# version_scheme = "nipreps-calver"

[project]
name = "templateflow"
description = "TemplateFlow Python Client - TemplateFlow is the Zone of neuroimaging templates."
readme = "README.rst"
authors = [{name = "The NiPreps Developers", email = "[email protected]"}]
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Science/Research",
"Topic :: Scientific/Engineering :: Image Recognition",
"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 = {file = "LICENSE"}
requires-python = ">=3.8"
dependencies = [
"pybids >= 0.15.2",
"importlib_resources >= 5.7; python_version < '3.11'",
"requests",
"tqdm",
]
dynamic = ["version"]

[project.urls]
Archive = "https://github.com/templateflow/templateflow"
"Bug Tracker" = "https://github.com/templateflow/python-client/issues"
Home = "https://www.templateflow.org"
Documentation = "https://www.templateflow.org/python-client/"
"Source Code" = "https://github.com/templateflow/python-client"

[project.optional-dependencies]
test = [
"pytest",
"pytest-xdist",
"pytest-cov == 2.5.1",
"coverage",
]
datalad = [
"datalad ~= 0.12.0"
]
doc = [
"nbsphinx",
"packaging",
"pydot>=1.2.3",
"pydotplus",
"sphinx-argparse",
"sphinx ~= 4.0",
"sphinx_rtd_theme >= 0.4.3",
"sphinxcontrib-apidoc",
"sphinx_multiversion",
]
# Aliases
tests = ["templateflow[test]"]
docs = ["templateflow[doc]"]
all = ["templateflow[datalad,doc,test]"]

#
# Developer tool configurations
#

[tool.black]
line-length = 99
skip-string-normalization = true

[tool.isort]
profile = 'black'

[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
concurrency = 'multiprocessing'
omit = [
'*/tests/*',
'*/conftest.py',
'templateflow/_version.py'
]

[tool.coverage.report]
# Regexes for lines to exclude from consideration
exclude_lines = [
'raise NotImplementedError',
'warnings\.warn',
]

[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",
]
extend-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"]
"fmriprep/utils/debug.py" = ["A002", "T100"]
"docs/conf.py" = ["A001"]
"docs/sphinxext/github_link.py" = ["BLE001"]

[tool.ruff.format]
quote-style = "single"
8 changes: 0 additions & 8 deletions requirements.txt

This file was deleted.

103 changes: 0 additions & 103 deletions setup.cfg

This file was deleted.

7 changes: 0 additions & 7 deletions setup.py

This file was deleted.

0 comments on commit d5855ae

Please sign in to comment.