# After editing this file, you MUST afterward run # /tools/update-locked-requirements to update requirements/dev.txt. # See requirements/README.md for more detail. -r pip.in -r prod.in -r docs.in # moto s3 mock moto[s3] # Needed for running tools/run-dev.py Twisted # Needed for documentation links test https://github.com/scrapy/scrapy/archive/c5b1ee810167266fcd259f263dbfc0fe0204761a.zip#egg=Scrapy==2.5.0+git # aioapns requires h2 ≥ 4.0: https://github.com/scrapy/scrapy/pull/5113 # Needed to compute test coverage coverage # fake for LDAP testing fakeldap # For testing mock http requests responses # For sorting imports isort # For doing highly usable Python profiling line-profiler # for pep8 linter pycodestyle # Python reformatter black # Needed to run pyflakes linter pyflakes # Needed for watching file changes pyinotify # Needed to run tests in parallel tblib # For linting Git commit messages gitlint-core # Needed for visualising cprofile reports snakeviz # Needed for creating DigitalOcean droplets python-digitalocean # Needed for updating the locked pip dependencies pip-tools<6.3.0 # https://github.com/jazzband/pip-tools/pull/1455 breaks our hack for installing specific commits from Git # zulip's linting framework - zulint https://github.com/zulip/zulint/archive/9908540b7734b51f86ccabab706befc2ff33212a.zip#egg=zulint==0.0.1 -r mypy.in # These modules are built into later versions of Python and will # generate different locked files if executed with Python ≥ 3.8, so # despite being dependent packages, they have to be added separately. importlib-metadata;python_version<"3.10" # for jsonpickle, jsonschema # Needed for using integration logo svg files as bot avatars cairosvg # Needed for tools/check-thirdparty python-debian # Pattern-based lint tool semgrep # Contains Pysa, a security-focused static analyzer pyre-check libcst<0.4.0 # https://github.com/Instagram/LibCST/pull/604 # For sorting versions when uploading releases natsort # For spell check linter codespell