-
-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathpyproject.toml
156 lines (137 loc) · 4.06 KB
/
pyproject.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
[project]
name = "extension-helpers"
authors = [{name = "The Astropy Developers", email = "astropy.team@gmail.com"}]
license = {text = "BSD 3-Clause License"}
description = "Utilities for building and installing packages with compiled extensions"
readme = "README.rst"
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"Framework :: Setuptools Plugin",
"License :: OSI Approved :: BSD License",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Topic :: Software Development :: Build Tools",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: System :: Archiving :: Packaging",
]
requires-python = ">=3.8"
dependencies = [
"setuptools>=40.2",
"tomli>=1.0.0 ; python_version < '3.11'",
]
dynamic = ["version"]
[project.urls]
Homepage = "https://github.com/astropy/extension-helpers"
[project.entry-points."setuptools.finalize_distribution_options"]
extension_helpers_get_extensions = "extension_helpers:_finalize_distribution_hook"
[project.optional-dependencies]
test = [
"wheel",
"pytest",
"pytest-cov",
"cython",
]
docs = [
"sphinx",
"sphinx-automodapi",
]
[tool.setuptools]
zip-safe = false
provides = ["extension_helpers"]
license-files = ["LICENSE.rst"]
include-package-data = false
[tool.setuptools.packages]
find = {namespaces = false}
[tool.setuptools.package-data]
extension_helpers = ["src/compiler.c"]
[tool.pytest.ini_options]
minversion = "6"
addopts = ["-ra", "--strict-config", "--strict-markers"]
log_cli_level = "INFO"
xfail_strict = true
testpaths = ['"extension_helpers"', '"docs"']
norecursedirs = ["build", "docs/_build"]
markers = ["flaky"]
filterwarnings = ["error"]
[tool.coverage.run]
omit = [
"extension_helpers/*/setup_package.py",
"extension_helpers/tests/*",
"extension_helpers/conftest.py",
"*/extension_helpers/*/setup_package.py",
"*/extension_helpers/tests/*",
"*/extension_helpers/conftest.py",
]
[tool.coverage.report]
exclude_lines = [
# Have to re-enable the standard pragma
"pragma: no cover",
# Don't complain about packages we have installed
"except ImportError",
# Don't complain if tests don't hit assertions
"raise AssertionError",
"raise NotImplementedError",
# Don't complain about script hooks
'def main\(.*\):',
# Ignore branches that don't pertain to this version of Python
"pragma: py{ignore_python_version}",
# Don't complain about IPython completion helper
"def _ipython_key_completions_",
]
[build-system]
requires = ["setuptools>=43.0.0",
"setuptools_scm>=6.2"]
build-backend = 'setuptools.build_meta'
[tool.setuptools_scm]
write_to = "extension_helpers/version.py"
[tool.isort]
profile = "black"
multi_line_output = 3
extend_skip_glob = [
"docs/*",
"setup.py"]
line_length = 100
known_third_party = ["astropy"]
known_first_party = ["reproject"]
group_by_package = true
indented_import_headings = false
length_sort_sections = ["future", "stdlib"]
[tool.black]
line-length = 100
target-version = ['py38']
[tool.numpydoc_validation]
checks = [
"all", # report on all checks, except the below
"EX01",
"SA01",
"SS06",
"ES01",
"GL08",
]
[tool.repo-review]
ignore = [
"MY", # ignore MyPy setting checks
"GH102", # auto-cancel of PRs
"PC111", # ignore using `blacken-docs` in pre-commit
"PC140", # ignore using `mypy` in pre-commit
"PC180", # ignore using `prettier` in pre-commit
"PC901", # ignore using custom update message (we have many of the default ones in our history already)
"PC170", # ignore using pygrep
"PY005", # ignore having a tests/ folder
]
[tool.ruff]
[tool.ruff.lint]
extend-select = [
"B", # flake8-bugbear
"I", # isort
"UP", # pyupgrade
]
[tool.ruff.lint.extend-per-file-ignores]
"docs/conf.py" = ["F405"] # Sphinx injects variables into namespace
"extension_helpers/_openmp_helpers.py" = ["UP032"] # Avoid using f-strings in logger
[tool.codespell]
ignore-words-list = """
ccompiler,
"""