/
setup.cfg
328 lines (317 loc) · 7.61 KB
/
setup.cfg
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
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
[metadata]
name = plasmapy
provides = plasmapy
author = PlasmaPy Community
description = Python package for plasma physics
long_description = file: README.md
long_description_content_type = text/markdown
license = BSD+Patent
license_file = LICENSE.md
url = https://www.plasmapy.org
project_urls =
Documentation=https://docs.plasmapy.org/
Changelog=https://docs.plasmapy.org/en/stable/whatsnew/index.html
Source=https://github.com/plasmapy/plasmapy
Issues=https://github.com/plasmapy/plasmapy/issues/
Twitter=https://twitter.com/PlasmaPy
Chat=https://plasmapy.org/chat
edit_on_github = True
github_project = PlasmaPy/PlasmaPy
keywords = plasma physics, plasma, science, atomic
classifiers =
Development Status :: 4 - Beta
Intended Audience :: Science/Research
License :: OSI Approved :: BSD License
Operating System :: OS Independent
Programming Language :: Python :: 3
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
Programming Language :: Python :: Implementation :: CPython
Topic :: Scientific/Engineering :: Physics
Topic :: Scientific/Engineering :: Astronomy
[options]
python_requires = >=3.8
packages = find:
include_package_data = True
setup_requires =
# PEP-518 encourages the use of pyproject.toml for defining
# build dependencies...they should be defined under build-system.requires
install_requires =
# ought to mirror requirements/install.txt
astropy >= 4.3.1
cached-property >= 1.5.2
h5py >= 3.0.0
ipywidgets >= 7.6.5
lmfit >= 1.0.0
matplotlib >= 3.3.0
mpmath >= 1.2.1
numba
numpy >= 1.19.0
packaging
pandas >= 1.0.0
scipy >= 1.5.0
tqdm >= 4.41.0
voila >= 0.2.15
xarray >= 0.15.0
[options.extras_require]
# a weird "bug" since python 2 allows extras to depend on extras
# for backwards compatibility, setuptools will keep this active
# see https://github.com/pypa/setuptools/issues/1260#issuecomment-438187625
extras =
# ought to mirror requirements/extras.txt
# for developers
codespell
pre-commit
tox
tests =
# ought to mirror requirements/tests.txt
%(extras)s
dlint
flake8
flake8-absolute-import
flake8-implicit-str-concat
flake8-mutable
flake8-rst-docstrings
flake8-simplify
flake8-use-fstring
hypothesis
pydocstyle
pytest >= 5.4.0
pytest-regressions
pytest-xdist
docs =
# ought to mirror requirements/docs.txt
%(extras)s
docutils
ipykernel
# TODO: release of 3.1 broke CI tests, this should be revisited later (2022-03-24)
jinja2 != 3.1
nbsphinx
numpydoc
pillow
pygments >= 2.11.0
sphinx >= 4.4, != 5.1
sphinx-changelog
sphinx-copybutton
sphinx-gallery < 0.11.0
sphinx-hoverxref >= 1.1.1
sphinx-issues >= 3.0.1
sphinx-notfound-page >= 0.8
sphinx-reredirects
sphinx_rtd_theme >= 1.0.0
sphinxcontrib-bibtex
towncrier >= 19.2.0
developer =
# install everything for developers
# ought to functionally mirror requirements.txt
%(docs)s
%(extras)s
%(tests)s
all =
# The installation option of `pip install plasmapy[all]` has been
# deprecated since v0.8. Instead use `pip install plasmapy` or
# `pip install plasmapy[developer]`.
%(extras)s
[options.packages.find]
exclude = docs/automodapi
[options.package_data]
plasmapy.particles.data = *
plasmapy.tests = coveragerc
plasmapy.utils.calculator = *
[options.entry_points]
console_scripts =
plasma-calculator = plasmapy.utils.calculator:main
[build_docs]
source-dir = docs
build-dir = docs/_build
all_files = 1
[tool:pytest]
minversion = 5.1
testpaths = "plasmapy"
norecursedirs = "build" "docs/"
doctest_optionflags =
NORMALIZE_WHITESPACE
ELLIPSIS
NUMBER
addopts = --doctest-modules --doctest-continue-on-failure
filterwarnings =
ignore:.*Creating a LegacyVersion.*:DeprecationWarning
looponfailroots =
plasmapy
[flake8]
convention = numpy
# Checks marked as TODO should be eventually enabled,
# but are failing right now. These are *great*
# first contributions. ;)
# Checks not marked by TODO *maybe* should be
# eventually enabled ― ask!
extend-ignore =
D105,
D107,
# Ignoring D202 allows blank lines to be put on either side of code "paragraphs" at the beginning of a function.
D202,
# D205 and D400 are ignored to allow the "one-liner" to exceed one
# line, which is sometimes necessary for even concise descriptions of plasma
# physics functions and classes.
D205,
# D302 is unnecessary as we are using Python 3.6+.
D302,
# D205 and D400 are ignored to allow the "one-liner" to exceed one
# line, which is sometimes necessary for even concise descriptions of plasma
# physics functions and classes.
D400,
# D403: First word of the first line should be properly capitalized ('Latex', not 'LaTeX') # Dominik: good job, pydocstyle /s
D403,
# E203 something something whitespace? TODO check again
E203,
E501,
# E731 do not assign a lambda, use a def - Dominik: disagreed, lambdas have uses
E731,
F401,
F405,
# W605 invalid escape sequence,
W605,
RST210,
RST213,
# RST305 so that ReST substitutions in a different file can be used
RST305,
RST306
exclude =
extern,
sphinx,
*test*,
*parsetab.py,
conftest.py,
docs/conf.py,
setup.py,
.jupyter
# Use rst-roles and rst-directives to list roles and directives from
# Sphinx and its extensions so that they don't get flagged when using
# flake8-rst-docstrings.
rst-roles =
abbr
any
attr
cite
cite:ct
cite:cts
cite:p
cite:ps
cite:t
cite:ts
class
command
commit
confval
data
dfn
doc
download
envvar
eq
event
exc
file
func
guilabel
issue
kbd
keyword
makevar
manpage
menuselection
meth
mod
numref
option
orcid
pep
pr
program
ref
regexp
rst:dir
samp
term
token
user
wikipedia
rst-directives =
codeauthor
confval
deprecated
event
highlight
hlist
index
literalinclude
nbgallery
only
rst:directive
sectionauthor
seealso
tabularcolumns
todo
versionadded
versionchanged
enable-extensions =
# Look for strings that have {} in them but aren't f-strings.
# If there is a false positive from this in a file, put that in
# per-file-ignores.
FS003
per-file-ignores =
plasmapy/__init__.py:FS003
plasmapy/analysis/fit_functions.py:RST499
# The nullpoint.py ignore is temporary pending #1554
plasmapy/analysis/nullpoint.py:SIM102,SIM103
plasmapy/diagnostics/charged_particle_radiography.py:FS003
plasmapy/formulary/__init__.py:E402,F403
plasmapy/formulary/collisions.py:SIM114
# The decorators.py ignore is temporary pending #1057
plasmapy/particles/decorators.py:SIM102
plasmapy/particles/ionization_state_collection.py:SIM102
[coverage:run]
omit =
ci-helpers/*
*/tests/*
plasmapy/utils/calculator/*
plasmapy/version.py
[coverage:report]
exclude_lines =
coverage: ignore
ImportError
ModuleNotFoundError
@vectorize
@numba.vectorize
@numba.jit
@jit
@numba.njit
@njit
[codespell]
skip = *.png,*cache*,*egg*,.git,.hypothesis,.idea,.tox,_build,*charged_particle*.ipynb,venv
ignore-words-list =
aci,
afe,
ba,
circularly,
ded,
dne,
ect,
explin,
fo,
fof,
hist,
hve,
gud,
nd,
noo,
nwo,
ot,
recuse,
ro,
te,
ue,
ue,
windo