boto3
celery[redis]
click
cryptography
flask == 2.2.4
flask-apispec != 0.11.1  # version 0.11.1 breaks swagger-ui (https://github.com/jmcarp/flask-apispec/issues/235)
flask-caching
flask-limiter
flask-mail
flask-restful
flask_sqlalchemy < 3.0  # version 3 raises "RuntimeError: Working outside of application context."
flask-cors
gunicorn
marshmallow-enum
moto[s3,server] >= 1.3.17.dev248, < 5.0.0 # previous versions don't replace `${filename}` in pre-signed POST requests:
                                          # - https://github.com/spulec/moto/issues/3667)
                                          # In v5.0.0, all decorators are replaced with `mock_aws` (including `mock_s3`)
pillow
platformdirs
pyjwt
pymysql
python-dateutil
pyyaml
requests~=2.28.1
responses != 0.12.1 # `moto` + `responses 0.12.1` raises "TypeError: cannot unpack non-iterable CallbackResponse object"
                    # - https://codeberg.org/neunzehnachtneun/snakemake/src/branch/master/test-environment.yml
                    # - https://github.com/getsentry/responses/issues/364
                    # - https://github.com/getsentry/responses/issues/358
sqlalchemy < 2.0
