-
Notifications
You must be signed in to change notification settings - Fork 15
/
pyproject.toml
151 lines (138 loc) · 4.44 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
[build-system]
requires = ["hatchling", "hatch-vcs"]
build-backend = "hatchling.build"
[project]
name = "hepstats"
description = "statistics tools and utilities"
authors = [{ name = "Matthieu Marinangeli", email = "[email protected]" }]
maintainers = [{ name = "Scikit-HEP", email = "[email protected]" }]
license = { text = "BSD 3-Clause License" }
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"Intended Audience :: Information Technology",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: BSD License",
"Operating System :: MacOS",
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX",
"Operating System :: Unix",
"Programming Language :: C++",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Scientific/Engineering",
"Topic :: Scientific/Engineering :: Information Analysis",
"Topic :: Scientific/Engineering :: Mathematics",
"Topic :: Scientific/Engineering :: Physics",
"Topic :: Software Development",
"Topic :: Utilities",
]
urls = { Homepage = "https://github.com/scikit-hep/hepstats" }
requires-python = ">=3.9"
dependencies = [
"asdf",
"numpy",
"pandas",
"scipy",
"tqdm",
"uhi",
]
dynamic = ["version"]
[project.readme]
file = "README.md"
content-type = "text/markdown"
[project.optional-dependencies]
dev = [
"hepstats[docs]",
"hepstats[test]",
"pre-commit",
]
docs = [
"matplotlib",
"pydata-sphinx-theme",
"sphinx>=3.1.2",
"sphinx-autodoc-typehints",
"sphinx-copybutton",
"sphinxcontrib-bibtex>=2.0.0",
]
doc = ["hepstats[docs]"] # alias
test = [
"pytest",
"pytest-cov",
"pytest-runner",
"zfit>=0.20.0;python_version<'3.13'",
# 'hepstats[zfit];python_version<"3.13"', # not working, why?
]
zfit = ["zfit>=0.20.0"]
[tool.pytest.ini_options]
junit_family = "xunit2"
testpaths = ["tests"]
[tool.check-manifest]
ignore = ["src/hepstats/_version.py"]
[tool.build_sphinx]
project = "hepstats"
source-dir = "docs"
build-dir = "docs/_build"
all-files = "1"
warning-is-error = "0"
[tool.hatch]
version.source = "vcs"
build.hooks.vcs.version-file = "src/hepstats/_version.py"
[tool.ruff]
#src = ["src"]
line-length = 120
exclude = [
".tox/*",
"*/test*",
"*/__init__.py",
"*/_version.py",
]
[tool.ruff.lint]
extend-select = [
"B", # flake8-bugbear
"I", # isort
"ARG", # flake8-unused-arguments
"C4", # flake8-comprehensions
"EM", # flake8-errmsg
"ICN", # flake8-import-conventions
"G", # flake8-logging-format
"PGH", # pygrep-hooks
"PIE", # flake8-pie
"PL", # pylint
"PT", # flake8-pytest-style
"PTH", # flake8-use-pathlib
"RET", # flake8-return
"RUF", # Ruff-specific
"SIM", # flake8-simplify
"T20", # flake8-print
"UP", # pyupgrade
"YTT", # flake8-2020
"EXE", # flake8-executable
"NPY", # NumPy specific rules
"PD", # pandas-vet
]
ignore = [
"UP007", # type annotation upgrade, breaks pydantic for Python 3.9 (remove once above)
"PLR09", # Too many <...>
"PLR2004", # Magic value used in comparison
"ISC001", # Conflicts with formatter
"RET505", # This is sometimes wanted, protets against accidental intendation
"PD901", # "avoid using `df[...].values`" -> no, this is a very good name if there is only one df
"PD011", # "replace `df[...].values` with `df[...].to_numpy()`" -> not yet, it's not deprecated.
# Prefer to have a single way to access the data if we don't care about whether it's a numpy array or not.
"PLW0603", # updating global variables with a function is bad, but we use it for
"PLW2901", # "for loop overwritten by assignment" -> we use this to update the loop variable
"PD013", # "melt over stack": df function, but triggers on tensors
"NPY002", # "Use rnd generator in numpy" -> we use np.random for some legacy stuff but do use the new one where we can
"T201", # "print used" -> we use print for displaying information in verbose mode
]
isort.required-imports = ["from __future__ import annotations"]
[tool.ruff.lint.per-file-ignores]
"tests/**" = ["T20"]
"noxfile.py" = ["T20"]