# Requirements for tools used in the development of tornado.
-# Use virtualenv instead of venv; tox seems to get confused otherwise.
#
-# maint/requirements.txt contains the pinned versions of all direct and
-# indirect dependencies; this file only contains direct dependencies
-# and is useful for upgrading.
-
-# Tornado's optional dependencies
-Twisted
-pycares
-pycurl
+# This mainly contains tools that should be installed for editor integration.
+# Other tools we use are installed only via tox or CI scripts.
+#
+# This is a manual recreation of the lockfile pattern: maint/requirements.txt
+# is the lockfile, and maint/requirements.in is the input file containing only
+# direct dependencies.
-# Other useful tools
-Sphinx>1.8.2
-black
-coverage
+black==19.10b0
flake8
-mypy==0.630
-pep8
-pyflakes
-sphinxcontrib-asyncio
-sphinx-rtd-theme
+mypy==0.740
tox
-twine
-virtualenv
-alabaster==0.7.12
-appdirs==1.4.3
-attrs==19.1.0
-automat==0.7.0
-babel==2.6.0
-black==19.3b0
-bleach==3.1.1
-certifi==2019.3.9
-cffi==1.12.3
-chardet==3.0.4
-click==7.0
-constantly==15.1.0
-coverage==4.5.3
-docutils==0.14
-entrypoints==0.3
-filelock==3.0.10
-flake8==3.7.7
-hyperlink==19.0.0
-idna==2.8
-imagesize==1.1.0
-incremental==17.5.0
-jinja2==2.10.1
-markupsafe==1.1.1
+# Requirements for tools used in the development of tornado.
+#
+# This mainly contains tools that should be installed for editor integration.
+# Other tools we use are installed only via tox or CI scripts.
+# This is a manual recreation of the lockfile pattern: maint/requirements.txt
+# is the lockfile, and maint/requirements.in is the input file containing only
+# direct dependencies.
+
+black==19.10b0
+flake8==3.8.4
+mypy==0.740
+tox==3.20.1
+## The following requirements were added by pip freeze:
+appdirs==1.4.4
+attrs==20.2.0
+click==7.1.2
+colorama==0.4.4
+distlib==0.3.1
+filelock==3.0.12
mccabe==0.6.1
-mypy-extensions==0.4.1
-mypy==0.630
-packaging==19.0
-pep8==1.7.1
-pkginfo==1.5.0.1
-pluggy==0.9.0
-py==1.8.0
-pycares==3.0.0
-pycodestyle==2.5.0
-pycparser==2.19
-pycurl==7.43.0.2
-pyflakes==2.1.1
-pygments==2.3.1
-pyhamcrest==1.9.0
-pyparsing==2.4.0
-pytz==2019.1
-readme-renderer==24.0
-requests-toolbelt==0.9.1
-requests==2.21.0
-six==1.12.0
-snowballstemmer==1.2.1
-sphinx-rtd-theme==0.4.3
-sphinx==2.0.1
-sphinxcontrib-applehelp==1.0.1
-sphinxcontrib-asyncio==0.2.0
-sphinxcontrib-devhelp==1.0.1
-sphinxcontrib-htmlhelp==1.0.2
-sphinxcontrib-jsmath==1.0.1
-sphinxcontrib-qthelp==1.0.2
-sphinxcontrib-serializinghtml==1.1.3
-toml==0.10.0
-tox==3.9.0
-tqdm==4.31.1
-twine==1.13.0
-twisted==19.7.0
-typed-ast==1.1.2
-urllib3==1.24.3
-virtualenv==16.5.0
-webencodings==0.5.1
-zope.interface==4.6.0
+mypy-extensions==0.4.3
+packaging==20.4
+pathspec==0.8.0
+pluggy==0.13.1
+py==1.9.0
+pycodestyle==2.6.0
+pyflakes==2.2.0
+pyparsing==2.4.7
+regex==2020.10.28
+six==1.15.0
+toml==0.10.1
+typed-ast==1.4.1
+typing-extensions==3.7.4.3
+virtualenv==20.1.0
full: twisted
full: pycares
docs: -r{toxinidir}/docs/requirements.txt
- lint: flake8
- lint: black==19.10b0
- lint: mypy==0.740
+ lint: -r{toxinidir}/maint/requirements.txt
setenv =
# Treat the extension as mandatory in testing (but not on pypy)
commands =
flake8 {posargs:}
black --check --diff {posargs:tornado demos}
- mypy {posargs:tornado}
+ # Many syscalls are defined differently on linux and windows,
+ # so we have to typecheck both.
+ mypy --platform linux {posargs:tornado}
+ mypy --platform windows {posargs:tornado}
changedir = {toxinidir}