#
# 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==24.2.0
    # via
    #   outcome
    #   trio
certifi==2024.8.30
    # via
    #   requests
    #   selenium
charset-normalizer==3.3.2
    # via requests
confusable-homoglyphs==3.3.1
    # via django-registration
django==5.1.1
    # via
    #   -r requirements.in
    #   django-anymail
    #   django-bootstrap5
    #   django-extensions
    #   django-htmx
    #   django-linear-migrations
    #   django-registration
django-anymail==12.0
    # via -r requirements.in
django-bootstrap5==24.3
    # via -r requirements.in
django-cleanup==9.0.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.19.0
    # via -r requirements.in
django-linear-migrations==2.13.0
    # via -r requirements.in
django-registration==3.4
    # via -r requirements.in
gunicorn==23.0.0
    # via -r requirements.in
h11==0.14.0
    # via wsproto
idna==3.10
    # via
    #   requests
    #   trio
markdown==3.7
    # via -r requirements.in
outcome==1.3.0.post0
    # via trio
packaging==24.1
    # via gunicorn
pillow==10.4.0
    # via -r requirements.in
pysocks==1.7.1
    # via urllib3
requests==2.32.3
    # via
    #   -r requirements.in
    #   django-anymail
selenium==4.25.0
    # via -r requirements.in
sniffio==1.3.1
    # via trio
sortedcontainers==2.4.0
    # via trio
sqlparse==0.5.1
    # via django
trio==0.26.2
    # via
    #   selenium
    #   trio-websocket
trio-websocket==0.11.1
    # via selenium
typing-extensions==4.12.2
    # via selenium
urllib3==2.2.3
    # via
    #   django-anymail
    #   requests
    #   selenium
websocket-client==1.8.0
    # via selenium
whitenoise==6.7.0
    # via -r requirements.in
wsproto==1.2.0
    # via trio-websocket