-
Notifications
You must be signed in to change notification settings - Fork 26
/
dev-requirements.txt
393 lines (340 loc) · 17.3 KB
/
dev-requirements.txt
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
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
# Pip requirements file for development dependencies.
# Include test dependencies (which includes install dependencies)
-r test-requirements.txt
# Direct dependencies for development and indirect dependencies for development
# that are needed for some reason (must be consistent with minimum-constraints.txt)
# Build distribution archive
# Version 1.1.0 pulled after release
# FUTURE: Remove wheel < 1.0 For details, see
# https://github.com/pypa/build/issues/750. Circumvention for now is
# to pin build to <1.0. See issue #3112
build>=0.5.1, <1.0
# Cythonize
Cython>=3.0.0
# Vendorize
vendorize>=0.2.2; python_version == '2.7'
vendorize>=0.3.0; python_version >= '3.6'
# Coverage reporting (no imports, invoked via coveralls script):
coverage>=5.0
pytest-cov>=2.7.0
# coveralls 2.0 has removed support for Python 2.7
git+https://github.com/andy-maier/coveralls-python.git@andy/add-py27#egg=coveralls; python_version == '2.7'
coveralls>=3.3.0; python_version >= '3.6'
# version 8.11 requires python 3.6, See issue #2796
more-itertools>=4.0.0,!=8.11.0; python_version == '2.7'
more-itertools>=4.0.0; python_version >= '3.6'
# Safety CI by pyup.io
# safety 1.9.0 removed support for Python 2.7 (and now also enforces that)
# Safety 3.0.0 requires exact versions of authlib==1.2.0 and jwt==1.3.1.
# (see issue https://github.com/pyupio/safety/issues/496)
# TODO: Unpin safety<3.0.0 once the exact version issue is resolved.
safety>=1.8.7,<1.9.0; python_version == '2.7'
safety>=2.2.0,!=2.3.5,<3.0.0; python_version >= '3.6'
# dparse 0.5.0 has an infinite recursion issue on Python 2.7,
# see https://github.com/pyupio/dparse/issues/46
dparse>=0.4.1,<0.5.0; python_version == '2.7'
# ver 0.6.2 min requirement by safety 2.2.0
dparse>=0.6.2; python_version >= '3.6'
ruamel-yaml>=0.13.6; python_version == '2.7'
ruamel-yaml>=0.17.21,<0.17.22; python_version == '3.6'
ruamel-yaml>=0.17.21; python_version >= '3.7'
# Tox
tox>=2.5.0
# Sphinx (no imports, invoked via sphinx-build script):
# Sphinx 6.0.0 started requiring Python>=3.8
# Sphinx 7.2.0 started requiring Python>=3.9
# Sphinx is used only on Python>=3.8
Sphinx>=7.1.0,!=7.2.0,!=7.2.1,!=7.2.2,!=7.2.3; python_version == '3.8'
Sphinx>=7.2.4; python_version >= '3.9'
# Sphinx 7.1.0 pins docutils to <0.21
docutils>=0.18.1,<0.21; python_version == '3.8'
docutils>=0.18.1; python_version >= '3.9'
sphinx-git>=10.1.1; python_version >= '3.8'
GitPython>=3.1.41; python_version >= '3.8'
Pygments>=2.15.0; python_version >= '3.8'
sphinx-rtd-theme>=2.0.0; python_version >= '3.8'
sphinxcontrib-applehelp>=1.0.4; python_version >= '3.8'
sphinxcontrib-devhelp>=1.0.2; python_version >= '3.8'
sphinxcontrib-htmlhelp>=2.0.1; python_version >= '3.8'
sphinxcontrib-jquery>=4.1; python_version >= '3.8'
sphinxcontrib-jsmath>=1.0.1; python_version >= '3.8'
sphinxcontrib-qthelp>=1.0.3; python_version >= '3.8'
sphinxcontrib-serializinghtml>=1.1.5; python_version == '3.8'
sphinxcontrib-serializinghtml>=1.1.9; python_version >= '3.9'
sphinxcontrib-websupport>=1.2.4; python_version >= '3.8'
autodocsumm>=0.2.12; python_version >= '3.8'
Babel>=2.9.1; python_version >= '3.8'
# PyLint (no imports, invoked via pylint script)
# Pylint requires astroid
# Pylint 1.x / astroid 1.x supports py27 and py34/35/36
# Pylint 2.0 / astroid 2.0 removed py27, added py37
# Pylint 2.7 / astroid 2.5 removed support for py35
# Pylint 2.7-2.9 had issue https://github.com/PyCQA/pylint/issues/4118 (issues #2672, #2673)
# Pylint 2.14 / astroid 2.11 support wrapt 1.14 which is required for Python 3.11
# Pylint 2.15 / astroid 2.12 is needed to circumvent issue https://github.com/PyCQA/pylint/issues/7972 on Python 3.11
# Pylint 3.0.1 / astroid 3.0.1 python 3.12
# astroid 2.13.0 uses typing-extensions on Python<3.11 but misses to require it on 3.10. See https://github.com/PyCQA/astroid/issues/1942
pylint>=2.13.0,<2.14.0; python_version == '3.6'
pylint>=2.13.0; python_version >= '3.7' and python_version <= '3.10'
pylint>=2.15.0; python_version == '3.11'
pylint>=3.0.3; python_version >= '3.12'
astroid>=2.11.0; python_version >= '3.6' and python_version <= '3.10'
astroid>=2.12.4; python_version == '3.11'
astroid>=3.0.2; python_version >= '3.12'
typed-ast>=1.4.0,<1.5.0; python_version >= '3.6' and python_version < '3.8' and implementation_name=='cpython'
# lazy-object-proxy is used by astroid
lazy-object-proxy>=1.4.3; python_version >= '3.6'
wrapt>=1.11.2; python_version >= '3.5' and python_version <= '3.10'
wrapt>=1.14; python_version >= '3.11'
# platformdirs is used by pylint starting with its 2.10
platformdirs>=2.2.0; python_version == '3.6'
platformdirs>=2.5.0; python_version >= '3.7' and python_version <= '3.11'
platformdirs>=3.2.0; python_version >= '3.12'
# isort 5.0.0 removed support for py27,py35
# isort 4.2.8 fixes a pylint issue with false positive on import order of ssl on Windows
# isort 4.3.8 fixes an issue with py310 and works on py310 (Note that isort 5.10.0 has official support for py310)
isort>=4.3.8
# Pylint 2.14 uses tomlkit>=0.10.1 and requires py>=3.7
tomlkit>=0.10.1; python_version >= '3.7'
# dill is used by pylint >=2.13
dill>=0.3.4; python_version >= '3.6' and python_version <= '3.10'
dill>=0.3.6; python_version >= '3.11'
# rich 13.3.5 requires typing-extensions>=4.0.0,<5.0
# typing-extensions 4.0.0 removed support for Python < 3.6
typing-extensions>=3.10.0; python_version == '2.7'
typing-extensions>=4.0.0; python_version >= '3.6' and python_version <= '3.10'
# Flake8 and dependents (no imports, invoked via flake8 script):
# flake8 4.0.0 fixes an AttributeError on Python 3.10.
# flake8 4.0.0 pins importlib-metadata to <4.3 on Python <3.8. This causes
# version conflicts with Sphinx>=4.4.0 and virtualenv>=20.0.35
flake8>=3.8.0,<4.0.0; python_version == '2.7'
flake8>=3.8.0; python_version >= '3.6' and python_version <= '3.9'
flake8>=5.0.0; python_version >= '3.10'
mccabe>=0.6.0; python_version <= '3.9'
mccabe>=0.7.0; python_version >= '3.10'
pycodestyle>=2.6.0,<2.8.0; python_version == '2.7'
pycodestyle>=2.6.0; python_version >= '3.5' and python_version <= '3.9'
pycodestyle>=2.9.0; python_version >= '3.10'
pyflakes>=2.2.0,<2.4.0; python_version == '2.7'
pyflakes>=2.2.0; python_version >= '3.5' and python_version <= '3.9'
pyflakes>=2.5.0; python_version >= '3.10'
entrypoints>=0.3.0
functools32>=3.2.3.post2; python_version == '2.7' # technically: python_version < '3.2'
# Ruff checker
ruff>=0.3.5; python_version >= '3.7'
# Twine (no imports, invoked via twine script):
# twine 2.0.0 removed support for Python < 3.6
twine>=1.8.1,<2.0.0; python_version == '2.7'
twine>=3.0.0; python_version >= '3.6'
# readme-renderer 23.0 has made cmarkgfm part of extras (it fails on Cygwin)
readme-renderer>=23.0
# Jupyter Notebook (no imports, invoked via jupyter script):
jupyter>=1.0.0
# ipython 7.17.0 removed support for Python 3.6
# ipython 8.0.0 removed support for Python 3.7
# ipython 8.13.1 removed support for Python 3.8
# ipython 8.20.0 removed support for Python 3.9
# latest 3.10: ipython 8.20.0
ipython>=5.1.0,<6.0; python_version == '2.7'
ipython>=7.16.3; python_version == '3.6'
ipython>=7.23.1; python_version == '3.7'
ipython>=8.10.0; python_version >= '3.8'
# ipykernel 6.0.0 removed support for Python 3.5 and 3.6
# ipykernel 6.17.0 removed support for Python 3.7
# ipykernel 6.2.0 pins ipython to <8.0
# latest 3.10: ipykernel 6.28.0
ipykernel>=4.5.2; python_version == '2.7'
ipykernel>=4.5.2; python_version == '3.6'
ipykernel>=6.14.0; python_version == '3.7'
ipykernel>=6.17.0; python_version >= '3.8'
# latest 3.10: ipython-genutils 0.2.0
ipython-genutils>=0.2.0
# ipywidget 7.8.0 claims support for py27 but does not install,
# see https://github.com/jupyter-widgets/ipywidgets/issues/3825
# ipywidget <8.0.0 does not declare supported Python versions
# latest 3.10: ipywidgets 8.1.1
ipywidgets>=5.2.2,<7.8.0; python_version == '2.7'
ipywidgets>=5.2.2; python_version == '3.6'
ipywidgets>=8.0.0; python_version >= '3.7'
# jupyter-console 6.5.0 removed support for Python 3.6
# latest 3.10: jupyter-console 6.6.3
jupyter-console>=5.0.0,<6.0.0; python_version == '2.7'
jupyter-console>=6.0.0; python_version == '3.6'
jupyter-console>=6.5.0; python_version >= '3.7'
# jupyter_client 7.2.0 removed support for Python 3.6
# jupyter_client 8.0.0 removed support for Python 3.7
# latest 3.10: jupyter_client 8.6.0
jupyter_client>=4.4.0; python_version == '2.7'
jupyter_client>=6.1.12; python_version == '3.6'
jupyter_client>=7.4.4; python_version == '3.7'
jupyter_client>=8.0.3; python_version >= '3.8'
# jupyter_core 4.7.0 removed support for Python <= 3.5
# jupyter_core 4.10.0 removed support for Python 3.6
# jupyter_core 5.0.0 removed support for Python 3.7
# latest 3.10: jupyter_core 5.7.1
jupyter_core>=4.2.1; python_version == '2.7'
jupyter_core>=4.6.1; python_version == '3.6'
jupyter_core>=4.12.0; python_version == '3.7'
jupyter_core>=5.1.0; python_version >= '3.8'
# jupyterlab_pygments 0.2.0 removed support for Python <= 3.6
# jupyterlab_pygments 0.3.0 removed support for Python 3.7
# latest 3.10: jupyterlab_pygments 0.3.0
jupyterlab_pygments>=0.1.2; python_version == '2.7'
jupyterlab_pygments>=0.1.2; python_version == '3.6'
jupyterlab_pygments>=0.2.0; python_version == '3.7'
jupyterlab_pygments>=0.3.0; python_version >= '3.8'
# jupyterlab-widgets 1.0.0 removed support for Python <= 3.5
# jupyterlab-widgets 3.0.0 removed support for Python 3.6
# latest 3.10: jupyterlab-widgets 3.0.9
jupyterlab-widgets>=0.6.5; python_version == '2.7'
jupyterlab-widgets>=1.0.2; python_version == '3.6'
jupyterlab-widgets>=3.0.3; python_version >= '3.7'
# nbclassic 0.4.7 depends on jupyter-server>=1.8
# jupyter-server 2.11.0 removed support for Python 3.6
# jupyter-server 2.25.0 removed support for Python 3.7
# latest 3.10: jupyter_server 2.12.4
jupyter-server>=1.24.0; python_version == '3.7'
# safety issue requires jupyter_server >=2.11.2 2204-3-17
jupyter-server>=2.11.2; python_version >= '3.8'
# latest 3.10: jupyter-events 0.9.0
# latest 3.10: jupyter-lsp 2.2.1
# latest 3.10: jupyter_server_terminals 0.5.1
# notebook 6.5.1 started using nbclassic
# nbclassic 0.3.6 removed support for Python 3.6
# latest 3.10: nbclassic 1.0.0
nbclassic>=1.0.0; python_version >= '3.7'
# nbclient 0.5.10 removed support for Python 3.6
# nbclient 0.8.0 removed support for Python 3.7
# latest 3.10: nbclient 0.9.0
nbclient>=0.5.9; python_version == '3.6'
nbclient>=0.5.13; python_version == '3.7'
nbclient>=0.8.0; python_version >= '3.8'
# nbconvert 6.1.0 removed support for Python 3.6
# nbconvert 7.7.0 removed support for Python 3.7
# latest 3.10: nbconvert 7.14.1
nbconvert>=5.0.0,<=5.6.1; python_version == '2.7'
nbconvert>=5.0.0; python_version == '3.6'
nbconvert>=6.5.1; python_version == '3.7'
nbconvert>=7.7.3; python_version >= '3.8'
# nbformat 5.1.0 to 5.1.2 are yanked
# nbformat 5.2.0 removed support for Python 3.5 and 3.6
# nbformat 5.9.0 removed support for Python 3.7
# latest 3.10: nbformat 5.9.2
nbformat>=4.2.0; python_version == '2.7'
nbformat>=5.1.3; python_version == '3.6'
nbformat>=5.3.0; python_version == '3.7'
nbformat>=5.9.0; python_version >= '3.8'
# Notebook 6.1.0 introduced usage of f-strings (which requires py>=3.6) but still required py>=3.5.
# latest 3.10: notebook 7.0.6
# nbformat 6.4.11 removed support for Python 3.6
# nbformat 7.0.0 removed support for Python 3.7
notebook>=4.3.1,<6.1.0; python_version == '2.7'
notebook>=6.4.10; python_version == '3.6'
notebook>=6.5.4; python_version == '3.7'
# safety issue sets new minimum 7.1.0 2025-3-17
notebook>=7.1.0; python_version >= '3.8'
# notebook-shim 0.1.0 removed support for Python 3.6
# latest 3.10: notebook_shim 0.2.3
notebook-shim>=0.2.3; python_version >= '3.7'
# jupyterlab-server 2.25.0 removed support for Python 3.7
# latest 3.10: jupyterlab_server 2.25.2
jupyterlab-server>=2.22.1,<3; python_version >= '3.8'
# jupyterlab 4.0.0 removed support for Python 3.7
# latest 3.10: jupyterlab 4.0.10
# safety vulnerability #64588, #64587 jupyterlab < 4.0.11
# notebook 7.1.0 depends on jupyterlab<4.2 and >=4.1.1
jupyterlab>=4.1.1,<5; python_version >= '3.8'
pyrsistent>=0.14.0,<0.16.0; python_version == '2.7'
pyrsistent>=0.14.0; python_version == '3.6'
pyrsistent>=0.19.1; python_version >= '3.7'
# Pywin32 is used (at least?) by jupyter.
# Pywin32 version 222 is inconsistent in its 32-bit/64-bit support on py37
# Pywin32 version 226 needs to be excluded, see issues #1946 and #1975.
# Issue #2675: Pywin32 version 225+ provides wheel files for py38, but does not
# advertise py38 on Pypi. That causes pywin32==225 to fail but pywin32>=225
# to work.
# Reported to pywin32 as https://github.com/mhammond/pywin32/issues/1448.
# Addressed by increasing the minimum version of pywin32 to >=227 on Python >=3.8.
# pywin32 version 302 added support for Python 3.10 (lower pywin32 versions could not be installed there)
# pywin32 version 303 added support for Python 3.11 (lower pywin32 versions could not be installed there)
# pywin32 version 306 added support for Python 3.12 (lower pywin32 versions could not be installed there)
pywin32>=222,!=226; sys_platform == 'win32' and python_version == '2.7'
pywin32>=222,!=226; sys_platform == 'win32' and python_version == '3.6'
pywin32>=223,!=226; sys_platform == 'win32' and python_version == '3.7'
pywin32>=227; sys_platform == 'win32' and python_version >= '3.8' and python_version <= '3.9'
pywin32>=306; sys_platform == 'win32' and python_version >= '3.10'
# The tornado package is used by ipykernel which is used by jupyter.
# Workaround: Tornado 5.0.0 and 5.0.1 rejects installation if the Python ssl module
# does not have certain symbols required by Tornado. This issue exists for
# example with Python 2.7.6 on Ubuntu 14.04, but not with Python 2.7.5 on
# RHEL 7.4. This can be checked with:
# python -c "import ssl; ssl.SSLContext; ssl.create_default_context; ssl.match_hostname"
# Other projects have the same issue:
# https://github.com/floydhub/dl-docker/issues/84
# There is no Tornado issue open for this and we do not expect it to be fixed
# since it only appears on Python 2.
# This issue has been circumvented by pinning the Tornado version to <5.0 on
# Python 2.
tornado>=4.4.2,<5.0; python_version == '2.7'
tornado>=6.1; python_version == '3.6'
tornado>=6.2; python_version == '3.7'
tornado>=6.3.3; python_version >= '3.8'
# Table output formatter used by the manual performance tests to display
# timing results
tabulate>=0.8.3
# Performance profiling tools
pyinstrument>=3.0.1; python_version <= '3.11'
pyinstrument-cext>=0.2.2; python_version <= '3.11' # from pyinstrument
pyinstrument>=4.5.3; python_version >= '3.12' # pyinstrument-cext integrated
# psutil on PyPy needs to be <=5.6.3 to avoid an installation error,
# see https://github.com/giampaolo/psutil/issues/1659.
# psutil on macos 11.6 needs to be >=5.8.0 to have support for the compiler.
# psutil on windows needs to be >=5.9.0 to have support for the MSVC++ 14.0 compiler.
psutil>=5.9.0; sys_platform != 'cygwin' and platform_python_implementation != 'PyPy'
psutil>=5.6.0,<=5.6.3; sys_platform != 'cygwin' and platform_python_implementation == 'PyPy'
# Package dependency management tools
pipdeptree>=2.2.0
# pip-check-reqs 2.1.1 removed support for Python 2.7 but does not declare that.
# pip-check-reqs 2.0.4 (last version with Python 2.7 support) still uses
# pip._internal.download which was removed in pip 20.0. That pip version does
# not yet have proper dependency handling, so we do not install pip-check-reqs
# on Python 2.7.
# pip-check-reqs 2.3.2 is needed to have proper support for pip>=21.3 and below.
# pip-check-reqs 2.4.3 fixes a speed issue on Python 3.11.
# pip-check-reqs 2.5.0 has issue https://github.com/r1chardj0n3s/pip-check-reqs/issues/143
pip-check-reqs>=2.3.2; python_version >= '3.6' and python_version <= '3.7'
pip-check-reqs>=2.4.3,!=2.5.0; python_version >= '3.8' and python_version <= '3.11'
pip-check-reqs>=2.5.1; python_version >= '3.12'
# notebook 6.4.10 depends on pyzmq>=17
pyzmq==17.0.0; python_version <= '3.6'
pyzmq>=24.0.0; python_version >= '3.7' and python_version <= '3.11'
pyzmq>=25.1.1; python_version >= '3.12'
# bleach is used by nbconvert and readme-renderer
# bleach 3.1.1 addressed safety issue 38546
# bleach 3.1.1 addressed safety issue 37910
# bleach 3.1.2 addressed safety issue 38076
# bleach 3.1.4 addressed safety issue 38107
# bleach 3.3.0 addressed dependabot issue GHSA-vv2x-vrpj-qqpq
bleach>=3.3.0; python_version == '2.7'
bleach>=3.3.0; python_version >= '3.6'
# pywinpty is used by terminado <- notebook <- jupyter
# pywinpty does not declare supported Pyrthon versions and 1.0 has removed support for py27.
pywinpty>=0.5; os_name == "nt" and python_version <= '3.6'
pywinpty>=2.0.3; os_name == "nt" and python_version >= '3.7'
# This version caused by notebook 6.4.10 depends on terminado>=0.8.3
# terminado 0.10.0 requires pywinpty>=1.1.0, see issue there
terminado>=0.6; python_version == '2.7'
terminado>=0.8.3,<0.10.0; python_version >= '3.6'
# Dependencies to reduce backtracking time (must be consistent with minimum-constraints.txt)
anyio>=3.1.0; python_version >= '3.7'
distlib>=0.3.4; python_version <= '3.11'
distlib>=0.3.7; python_version >= '3.12'
filelock>=3.0.0
# gitdb2 4.0.2 requires gitdb>=4.0.1 for installation, see https://github.com/gitpython-developers/gitdb/issues/86
gitdb2>=2.0.6,<4.0; python_version == '2.7'
gitdb2>=2.0.6,<4.0; python_version == '3.6'
gitdb>=4.0.8; python_version >= '3.7'
# jupyter-server 1.17.0 depends on traitlets>=5.1
traitlets>=4.3.1; python_version == '2.7'
traitlets>=4.3.1; python_version == '3.6'
traitlets>=5.6.0; python_version >= '3.7'