# 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 # Needed for running tools/run-dev.py Twisted # Needed for documentation links test Scrapy<2.5.0 # 2.5.0 needs h2 3.0: https://github.com/Pr0Ger/PyAPNs2/issues/126 # 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 # Needed to lint Git commit messages gitlint # Needed for visualising cprofile reports snakeviz # Needed for creating DigitalOcean droplets python-digitalocean # Needed for updating the locked pip dependencies pip-tools==5.* # 6.0.0 requires pip>=20.3 # zulip's linting framework - zulint https://github.com/zulip/zulint/archive/6cc46d23906757895e917cc75e231f81f824a31d.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.7, so # despite being dependent packages, they have to be added separately. importlib-metadata;python_version<"3.8" # 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