-
Notifications
You must be signed in to change notification settings - Fork 1
/
setup.cfg
172 lines (150 loc) · 5.44 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
# ======================================================================================
# Copyright and other protections apply. Please see the accompanying LICENSE file for
# rights and restrictions governing use of this software. All rights not expressly
# waived or licensed are reserved. If that file is missing or appears to be modified
# from its original, then please contact the author before viewing or using this
# software in any capacity.
# ======================================================================================
[metadata] # --------------------------------------------------------------------------
name = numerary
version = attr:numerary._version.version
url = https://posita.github.io/numerary/
author = Matt Bogosian
author_email = [email protected]
project_urls =
Source Repository = https://github.com/posita/numerary/
# From <https://pypi.python.org/pypi?%3Aaction=list_classifiers>
classifiers =
Topic :: Education
Topic :: Scientific/Engineering :: Mathematics
Topic :: Software Development :: Libraries :: Python Modules
Typing :: Typed
Development Status :: 4 - Beta
Intended Audience :: Developers
Intended Audience :: Education
Intended Audience :: Science/Research
License :: OSI Approved :: MIT License
Operating System :: OS Independent
Programming Language :: Python
Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
Programming Language :: Python :: 3.11
Programming Language :: Python :: 3.12
Programming Language :: Python :: Implementation :: CPython
# Programming Language :: Python :: Implementation :: PyPy
license = MIT License
license_files = LICENSE
description = Python hacks for type-checking numbers
long_description = file: README.md
long_description_content_type = text/markdown; charset=UTF-8
[options] # ---------------------------------------------------------------------------
packages = numerary
python_requires = >=3.9
install_requires =
beartype ~=0.15
[options.extras_require] # ------------------------------------------------------------
dev =
pre-commit
numpy~=1.25 # for testing
sympy~=1.9 # for testing
tox~=4.0
versioningit~=2.0
[options.package_data] # --------------------------------------------------------------
numerary = py.typed
[tox:tox] # ---------------------------------------------------------------------------
envlist = check, py{39,310,311,312}{,-lint}{,-beartype} # , pypy{39,310} # see <https://github.com/beartype/beartype/issues/324>
skipsdist = true
skip_missing_interpreters = true
[gh-actions] # ------------------------------------------------------------------------
python =
3.9: py39{,-lint}{,-beartype}
3.10: check, py310{,-lint}{,-beartype}
3.11: py311{,-lint}{,-beartype}
3.12: py312{,-lint}{,-beartype}
# pypy-3.9: pypy39 # see <https://github.com/beartype/beartype/issues/324>
# pypy-3.10: pypy310 # see <https://github.com/beartype/beartype/issues/324>
fail_on_no_env = True
[testenv] # ---------------------------------------------------------------------------
commands =
debug: pytest {posargs}
!debug: pytest --cov=numerary --numprocesses {env:NUMBER_OF_PROCESSORS:auto} {posargs}
deps =
--editable .
pytest
# Because ${HOME} is not passed, ~/.gitconfig is not read. To overcome this, port any
# desired user-specific exclusion configuration to .git/config. E.G.:
#
# [core]
# excludesfile = /home/username/.gitignore
#
# Alternatively, add entries directly to .git/info/exclude. See also mkdocs-exclude
# below.
pytest-gitignore
sympy~=1.9
!debug: pytest-cov
!debug: pytest-xdist
!pypy39-!pypy310: numpy # see <https://github.com/beartype/beartype/issues/324>
passenv =
PYTHONBREAKPOINT
setenv =
# See <https://github.com/tox-dev/tox/issues/2756>
COLUMNS =
beartype: NUMERARY_BEARTYPE = yes
!beartype: NUMERARY_BEARTYPE = no
PYTHONWARNINGS = {env:PYTHONWARNINGS:ignore}
[testenv:assets] # --------------------------------------------------------------------
commands =
make -C docs
deps =
--editable .
ipython
sympy
allowlist_externals =
make
[testenv:check] # ---------------------------------------------------------------------
commands =
rm -frv site
mkdocs build --strict
python -c 'from setuptools import setup ; setup()' bdist_wheel
twine check dist/*
deps =
--editable .
mike
# See <https://github.com/mkdocs/mkdocs/issues/2448>
# See <https://github.com/mkdocstrings/mkdocstrings/issues/295>
mkdocs!=1.2
# See pytest-gitignore note above
mkdocs-exclude
mkdocs-macros-plugin
mkdocs-material
mkdocstrings[python]~=0.18
sympy
twine
versioningit~=2.0
allowlist_externals =
rm
[testenv:py{39,310,311,312}-lint{,-beartype}] # ---------------------------------------
commands =
pre-commit run --all-files --show-diff-on-failure
mypy --config-file={toxinidir}/pyproject.toml --warn-unused-ignores .
{toxinidir}/helpers/mypy-doctests.py -a=--config-file={toxinidir}/pyproject.toml .
deps =
--editable .
mypy~=1.0
pre-commit
sympy
allowlist_externals =
{toxinidir}/helpers/mypy-doctests.py
[flake8] # ----------------------------------------------------------------------------
# See:
# * <https://pycodestyle.readthedocs.io/en/latest/intro.html#error-codes>
# * <https://flake8.readthedocs.io/en/latest/user/error-codes.html>
ignore =
# whitespace before ':'
E203
# multiple statements on one line
E704
# line too long (... > ... characters)
E501
# line break occurred before a binary operator
W503