-
Notifications
You must be signed in to change notification settings - Fork 2
/
setup.cfg
196 lines (172 loc) · 5.76 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
# ======================================================================================
# 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 = dyce
version = attr:dyce.version.__vers_str__
url = https://posita.github.io/dyce/
author = Matt Bogosian
author_email = [email protected]
project_urls =
Source Repository = https://github.com/posita/dyce/
# From <https://pypi.python.org/pypi?%3Aaction=list_classifiers>
classifiers =
Topic :: Education
Topic :: Games/Entertainment
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 :: Implementation :: CPython
Programming Language :: Python :: Implementation :: PyPy
license = MIT License
license_files = LICENSE
description = Simple Python tools for exploring dice outcomes and other finite discrete probabilities
long_description = file: README.md
long_description_content_type = text/markdown; charset=UTF-8
[options] # ---------------------------------------------------------------------------
packages = dyce
python_requires = >=3.9
install_requires =
numerary~=0.4.3
[options.extras_require] # ------------------------------------------------------------
dev =
numpy
pandas
pre-commit
sympy~=1.9
tox~=4.0
versioningit~=2.0
[options.package_data] # --------------------------------------------------------------
dyce = py.typed
[tox:tox] # ---------------------------------------------------------------------------
envlist = check, py{39,310,311,312}{,-lint}{,-beartype}, pypy{39,310}{,-beartype}
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{,-beartype}
pypy-3.10: pypy310{,-beartype}
fail_on_no_env = True
[testenv] # ---------------------------------------------------------------------------
commands =
debug: pytest {posargs}
!debug: pytest --cov=dyce --numprocesses {env:NUMBER_OF_PROCESSORS:auto} {posargs}
deps =
--editable .
anydyce~=0.4.0 # for docs/assets/plot….py
!pypy39-!pypy310: numpy
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
debug: debugpy
debug: ipython
!debug: pytest-cov
!debug: pytest-xdist
sympy
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/assets -j {env:NUMBER_OF_PROCESSORS:6}
make -C docs/assets perf
deps =
--editable .
anydyce~=0.4.0
graphviz
jinja2 # for pandas DataFrame styles
matplotlib
pandas
sympy
pygraphviz
# pylint contains pyreverse
pylint
allowlist_externals =
make
[testenv:check] # ---------------------------------------------------------------------
commands =
rm -frv docs/jupyter site
jupyter lite build --output-dir docs/jupyter
mkdocs build --strict
python -c 'from setuptools import setup ; setup()' bdist_wheel
twine check dist/*
deps =
--editable .
jupyterlab_server
jupyterlite==0.1.0
pkginfo
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:jupyter] # -------------------------------------------------------------------
commands =
jupyter-lab {posargs}
deps =
--editable .
jupyterlab
[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
# line too long (... > ... characters)
E501
# multiple statements on one line
E704
# line break occurred before a binary operator
W503