#
# This file is autogenerated by pip-compile with Python 3.12
# by the following command:
#
#    pip-compile requirements.ini
#
beautifulsoup4==4.13.4
    # via -r requirements.ini
black==25.1.0
    # via -r requirements.ini
certifi==2025.7.14
    # via requests
charset-normalizer==3.4.2
    # via requests
click==8.2.1
    # via black
coverage==7.9.2
    # via -r requirements.ini
docutils==0.21.2
    # via readme-renderer
id==1.5.0
    # via twine
idna==3.10
    # via requests
jaraco-classes==3.4.0
    # via keyring
jaraco-context==6.0.1
    # via keyring
jaraco-functools==4.2.1
    # via keyring
jinja2==3.1.6
    # via -r requirements.ini
keyring==25.6.0
    # via twine
markdown==3.8.2
    # via
    #   -r requirements.ini
    #   markdown-full-yaml-metadata
markdown-full-yaml-metadata==2.2.1
    # via -r requirements.ini
markdown-it-py==3.0.0
    # via rich
markupsafe==3.0.2
    # via
    #   jinja2
    #   werkzeug
mdurl==0.1.2
    # via markdown-it-py
more-itertools==10.7.0
    # via
    #   jaraco-classes
    #   jaraco-functools
mypy-extensions==1.1.0
    # via black
nh3==0.2.21
    # via readme-renderer
packaging==25.0
    # via
    #   black
    #   twine
pathspec==0.12.1
    # via black
platformdirs==4.3.8
    # via black
pygments==2.19.2
    # via
    #   readme-renderer
    #   rich
pyyaml==6.0.2
    # via markdown-full-yaml-metadata
readme-renderer==44.0
    # via twine
requests==2.32.4
    # via
    #   id
    #   requests-toolbelt
    #   twine
requests-toolbelt==1.0.0
    # via twine
rfc3986==2.0.0
    # via twine
rich==14.0.0
    # via twine
soupsieve==2.7
    # via beautifulsoup4
twine==6.1.0
    # via -r requirements.ini
typing-extensions==4.14.1
    # via beautifulsoup4
urllib3==2.5.0
    # via
    #   requests
    #   twine
watchdog==6.0.0
    # via werkzeug
werkzeug[watchdog]==3.1.3
    # via -r requirements.ini
