-
Notifications
You must be signed in to change notification settings - Fork 12
/
pyproject.toml
110 lines (96 loc) · 2.81 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
[build-system]
requires = [
"setuptools>=46.4",
"setuptools_scm[toml]>=6.2",
"cmake>=3.13",
"wheel",
]
build-backend = "setuptools.build_meta"
[project]
name = "pyhepmc"
description = "Pythonic interface to the HepMC3 C++ library licensed under LGPL-v3."
maintainers = [{ name = "Hans Dembinski", email = "[email protected]" }]
readme = "README.rst"
requires-python = ">=3.9"
license = { text = "BSD 3-Clause License" }
classifiers = [
"Development Status :: 5 - Production/Stable",
"License :: OSI Approved :: BSD License",
"Programming Language :: Python :: 3",
"Operating System :: POSIX :: Linux",
"Operating System :: MacOS",
"Operating System :: Microsoft :: Windows",
"Topic :: Scientific/Engineering",
"Intended Audience :: Developers",
]
dependencies = ["numpy>=1.21", "packaging"]
dynamic = ["version"]
[project.urls]
repository = "https://github.com/scikit-hep/pyhepmc"
documentation = "https://scikit-hep.org/pyhepmc"
[project.optional-dependencies]
test = ["pytest", "particle", "matplotlib"]
doc = ["sphinx", "sphinx-rtd-theme", "nbsphinx", "ipython", "ipykernel"]
[tool.setuptools_scm]
[tool.mypy]
strict = true
no_implicit_optional = false
allow_redefinition = true
ignore_missing_imports = true
show_error_codes = true
[tool.pytest.ini_options]
minversion = "6.0"
addopts = "--strict-config --strict-markers -q -ra --ff"
testpaths = ["tests"]
log_cli_level = "INFO"
xfail_strict = true
filterwarnings = [
"error::PendingDeprecationWarning",
"error::DeprecationWarning",
"error::FutureWarning",
]
[tool.coverage.run]
relative_files = true
source = ["pyhepmc"]
[tool.coverage.report]
exclude_lines = ["pragma: no cover"]
[tool.ruff]
exclude = ["docs/examples/*"]
[tool.ruff.lint]
extend-select = [
"E",
"F", # flake8
"D", # pydocstyle
]
unfixable = [
"F841", # Removes unused variables
]
extend-ignore = [
"D212", # multi-line-summary-first-line
]
pydocstyle.convention = "numpy"
[tool.ruff.lint.per-file-ignores]
"test_*.py" = ["B", "D"]
"bench/*.py" = ["D"]
"docs/*.py" = ["D"]
"cmake_ext.py" = ["D"]
"generate_*.py" = ["D"]
"setup*.py" = ["D"]
[tool.cibuildwheel]
# update skip when numpy wheels become available
skip = ["*-musllinux_*", "cp31?-win32", "cp31?-manylinux_i686"]
test-extras = ["test"]
test-command = "python -m pytest {package}/tests"
test-skip = ["*universal2:arm64"]
# to match numpy, we use manylinux2014 for cp310+
manylinux-x86_64-image = "manylinux2014"
manylinux-i686-image = "manylinux2014"
[tool.cibuildwheel.environment]
# this makes sure that we build only on platforms that have a corresponding numpy wheel
PIP_ONLY_BINARY = ":all:"
CIBW = "1"
[[tool.cibuildwheel.overrides]]
# to match numpy, we use manylinux2010 for cp36 to cp39
select = "cp3?-*"
manylinux-x86_64-image = "manylinux2010"
manylinux-i686-image = "manylinux2010"