1
+ [build-system ]
2
+ requires = [
3
+ " setuptools>=48.0.0" ,
4
+ " cython" ,
5
+ " numpy>=1.17.0" ,
6
+ " versioneer[toml]==0.28" ,
7
+ ]
8
+ build-backend = " setuptools.build_meta"
9
+
10
+ [project ]
11
+ name = " pytensor"
12
+ dynamic = [
13
+ ' version'
14
+ ]
15
+ requires-python = " >=3.7"
16
+ authors = [
17
+ {
name =
" pymc-devs" ,
email =
" [email protected] " }
18
+ ]
19
+ description = " Optimizing compiler for evaluating mathematical expressions on CPUs and GPUs."
20
+ readme = " DESCRIPTION.txt"
21
+ license = {file = " LICENCE.txt" }
22
+ classifiers = [
23
+ " Development Status :: 6 - Mature" ,
24
+ " Intended Audience :: Education" ,
25
+ " Intended Audience :: Science/Research" ,
26
+ " Intended Audience :: Developers" ,
27
+ " License :: OSI Approved :: BSD License" ,
28
+ " Programming Language :: Python" ,
29
+ " Topic :: Software Development :: Code Generators" ,
30
+ " Topic :: Software Development :: Compilers" ,
31
+ " Topic :: Scientific/Engineering :: Mathematics" ,
32
+ " Operating System :: Microsoft :: Windows" ,
33
+ " Operating System :: POSIX" ,
34
+ " Operating System :: Unix" ,
35
+ " Operating System :: MacOS" ,
36
+ " Programming Language :: Python :: 3" ,
37
+ " Programming Language :: Python :: 3.7" ,
38
+ " Programming Language :: Python :: 3.8" ,
39
+ " Programming Language :: Python :: 3.9" ,
40
+ " Programming Language :: Python :: 3.10" ,
41
+ ]
42
+
43
+ keywords = [
44
+ " pytensor" ,
45
+ " math" ,
46
+ " numerical" ,
47
+ " symbolic" ,
48
+ " blas" ,
49
+ " numpy" ,
50
+ " autodiff" ,
51
+ " differentiation" ,
52
+ ]
53
+ dependencies = [
54
+ " setuptools>=48.0.0" ,
55
+ " scipy>=0.14" ,
56
+ " numpy>=1.17.0" ,
57
+ " filelock" ,
58
+ " etuples" ,
59
+ " logical-unification" ,
60
+ " miniKanren" ,
61
+ " cons" ,
62
+ " typing_extensions" ,
63
+ ]
64
+
65
+ [project .urls ]
66
+ homepage = " https://github.com/pymc-devs/pytensor"
67
+ repository = " https://github.com/pymc-devs/pytensor"
68
+ documentation = " https://pytensor.readthedocs.io/en/latest/"
69
+
70
+
71
+ [project .scripts ]
72
+ pytensor-cache = " bin.pytensor_cache:main"
73
+
74
+ [project .optional-dependencies ]
75
+ complete = [
76
+ " pytensor[jax]" ,
77
+ " pytensor[numba]" ,
78
+ ]
79
+ development = [
80
+ " pytensor[complete]" ,
81
+ " pytensor[tests]" ,
82
+ " pytensor[rtd]"
83
+ ]
84
+ tests = [
85
+ " pytest" ,
86
+ " pre-commit" ,
87
+ " pytest-cov>=2.6.1" ,
88
+ " coverage>=5.1" ,
89
+ ]
90
+ rtd = [
91
+ " sphinx>=1.3.0" ,
92
+ " sphinx_rtd_theme" ,
93
+ " pygments" ,
94
+ " pydot" ,
95
+ " pydot2" ,
96
+ " pydot-ng" ,
97
+ ]
98
+ jax = [
99
+ " jax" ,
100
+ " jaxlib" ,
101
+ ]
102
+ numba = [
103
+ " numba>=0.55" ,
104
+ " numba-scipy>=0.3.0"
105
+ ]
106
+
107
+ [tool .setuptools .packages .find ]
108
+ exclude = [
109
+ " tests" ,
110
+ " tests.*"
111
+ ]
112
+
113
+ [tool .setuptools .package-data ]
114
+ "*" = [
115
+ " *.txt" ,
116
+ " *.rst" ,
117
+ " *.cu" ,
118
+ " *.cuh" ,
119
+ " *.c" ,
120
+ " *.sh" ,
121
+ " *.pkl" ,
122
+ " *.h" ,
123
+ " *.cpp" ,
124
+ " ChangeLog" ,
125
+ " c_code/*" ,
126
+ ]
127
+ pytensor = [
128
+ " py.typed"
129
+ ]
130
+ "pytensor.misc" = [
131
+ " *.sh"
132
+ ]
133
+ "pytensor.d3viz" = [
134
+ " html/*" ,
135
+ " css/*" ,
136
+ " js/*" ,
137
+ ]
138
+
139
+ [tool .coverage .run ]
140
+ omit = [
141
+ " pytensor/_version.py" ,
142
+ " tests/*" ,
143
+ " pytensor/assert_op.py" ,
144
+ " pytensor/graph/opt.py" ,
145
+ " pytensor/graph/opt_utils.py" ,
146
+ " pytensor/graph/optdb.py" ,
147
+ " pytensor/graph/kanren.py" ,
148
+ " pytensor/graph/unify.py" ,
149
+ " pytensor/link/jax/jax_linker.py" ,
150
+ " pytensor/link/jax/jax_dispatch.py" ,
151
+ " pytensor/graph/toolbox.py" ,
152
+ " pytensor/scalar/basic_scipy.py" ,
153
+ ]
154
+ branch = true
155
+ relative_files = true
156
+
157
+ [tool .coverage .report ]
158
+ omit = [
159
+ " pytensor/_version.py" ,
160
+ " tests/" ,
161
+ ]
162
+ exclude_lines = [
163
+ " pragma: no cover" ,
164
+ " if TYPE_CHECKING:" ,
165
+ ]
166
+ show_missing = true
167
+
168
+ [tool .versioneer ]
169
+ VCS = " git"
170
+ style = " pep440"
171
+ versionfile_source = " pytensor/_version.py"
172
+ versionfile_build = " pytensor/_version.py"
173
+ tag_prefix = " rel-"
174
+
175
+ [tool .pytest ]
176
+ addopts = " --durations=50"
177
+ testpaths = " tests/"
178
+
179
+ [tool .pylint ]
180
+ max-line-length = 88
181
+
182
+ [tool .pylint .messages_control ]
183
+ disable = [" C0330" , " C0326" ]
184
+
185
+ [tool .isort ]
186
+ profile = " black"
187
+ lines_after_imports = 2
188
+ lines_between_sections = 1
189
+ honor_noqa = true
190
+ skip_gitignore = true
191
+ skip = " pytensor/version.py"
192
+ skip_glob = " **/*.pyx"
193
+
194
+ [tool .mypy ]
195
+ ignore_missing_imports = true
196
+ no_implicit_optional = true
197
+ check_untyped_defs = false
198
+ strict_equality = true
199
+ warn_redundant_casts = true
200
+ warn_unused_configs = true
201
+ warn_unused_ignores = true
202
+ warn_return_any = true
203
+ warn_no_return = false
204
+ warn_unreachable = true
205
+ show_error_codes = true
206
+ allow_redefinition = false
207
+ files = [" pytensor" , " tests" ]
208
+ plugins = [" numpy.typing.mypy_plugin" ]
209
+
210
+
211
+ [[tool .mypy .overrides ]]
212
+ module = [
213
+ " doc.*" ,
214
+ " setup" ,
215
+ " tests.*" ,
216
+ " versioneer" ,
217
+ " pytensor._version" ,
218
+ " pytensor.compile.mode" ,
219
+ " pytensor.compile.builders" ,
220
+ " pytensor.compile.sharedvalue" ,
221
+ " pytensor.compile.compilelock" ,
222
+ " pytensor.compile.function.pfunc" ,
223
+ " pytensor.compile.function.types" ,
224
+ " pytensor.compile.debugmode" ,
225
+ " pytensor.tensor.type" ,
226
+ " pytensor.tensor.var" ,
227
+ " pytensor.tensor.basic" ,
228
+ " pytensor.tensor.elemwise" ,
229
+ " pytensor.tensor.math" ,
230
+ " pytensor.tensor.rewriting.basic" ,
231
+ " pytensor.tensor.rewriting.shape" ,
232
+ " pytensor.tensor.rewriting.elemwise" ,
233
+ " pytensor.tensor.subtensor" ,
234
+ " pytensor.tensor.shape" ,
235
+ " pytensor.sandbox.*" ,
236
+ " pytensor.tensor.extra_ops" ,
237
+ " pytensor.tensor.type_other" ,
238
+ " pytensor.tensor.blas" ,
239
+ " pytensor.tensor.blas_headers" ,
240
+ " pytensor.tensor.slinalg" ,
241
+ " pytensor.tensor.sharedvar" ,
242
+ " pytensor.tensor.rewriting.math" ,
243
+ " pytensor.tensor.blas_c" ,
244
+ " pytensor.tensor.random.op" ,
245
+ " pytensor.tensor.random.basic" ,
246
+ " pytensor.tensor.random.utils" ,
247
+ " pytensor.typed_list.*" ,
248
+ " pytensor.link.numba.dispatch.extra_ops" ,
249
+ " pytensor.link.numba.dispatch.elemwise" ,
250
+ " pytensor.link.numba.dispatch.random" ,
251
+ " pytensor.link.jax.dispatch" ,
252
+ " pytensor.raise_op" ,
253
+ " pytensor.tensor.nnet.conv3d2d" ,
254
+ " pytensor.tensor.nnet.neighbours" ,
255
+ " pytensor.tensor.nnet.abstract_conv" ,
256
+ " pytensor.tensor.nnet.ctc" ,
257
+ " pytensor.ifelse" ,
258
+ " pytensor.sparse.basic" ,
259
+ " pytensor.sparse.sharedvar" ,
260
+ ]
261
+ ignore_errors = true
262
+ check_untyped_defs = false
0 commit comments