#
# This file is autogenerated by pip-compile with Python 3.12
# by the following command:
#
#    pip-compile --allow-unsafe --output-file=constraints.txt --strip-extras requirements.in
#
asgiref==3.8.1
    # via
    #   django
    #   django-htmx
attrs==23.2.0
    # via
    #   outcome
    #   trio
certifi==2024.2.2
    # via
    #   requests
    #   selenium
charset-normalizer==3.3.2
    # via requests
confusable-homoglyphs==3.3.1
    # via django-registration
django==5.0.4
    # via
    #   -r requirements.in
    #   django-anymail
    #   django-bootstrap5
    #   django-extensions
    #   django-htmx
    #   django-linear-migrations
    #   django-registration
django-anymail==10.3
    # via -r requirements.in
django-bootstrap5==23.4
    # via -r requirements.in
django-cleanup==8.1.0
    # via -r requirements.in
django-environ==0.11.2
    # via -r requirements.in
django-extensions==3.2.3
    # via -r requirements.in
django-htmx==1.17.3
    # via -r requirements.in
django-linear-migrations==2.12.0
    # via -r requirements.in
django-registration==3.4
    # via -r requirements.in
gunicorn==21.2.0
    # via -r requirements.in
h11==0.14.0
    # via wsproto
idna==3.6
    # via
    #   requests
    #   trio
markdown==3.6
    # via -r requirements.in
outcome==1.3.0.post0
    # via trio
packaging==24.0
    # via gunicorn
pillow==10.3.0
    # via -r requirements.in
pysocks==1.7.1
    # via urllib3
requests==2.31.0
    # via
    #   -r requirements.in
    #   django-anymail
selenium==4.19.0
    # via -r requirements.in
sniffio==1.3.1
    # via trio
sortedcontainers==2.4.0
    # via trio
sqlparse==0.4.4
    # via django
trio==0.25.0
    # via
    #   selenium
    #   trio-websocket
trio-websocket==0.11.1
    # via selenium
typing-extensions==4.11.0
    # via selenium
urllib3==2.2.1
    # via
    #   django-anymail
    #   requests
    #   selenium
whitenoise==6.6.0
    # via -r requirements.in
wsproto==1.2.0
    # via trio-websocket
