# This file was autogenerated by uv via the following command:
#    uv export --no-hashes --only-dev --output-file dev-requirements.txt
alabaster==1.0.0
    # via sphinx
annotated-doc==0.0.5
    # via typer
annotated-types==0.8.0
    # via pydantic
anyio==4.14.2
    # via
    #   httpx
    #   mcp
    #   sse-starlette
    #   starlette
attrs==26.1.0
    # via
    #   glom
    #   jsonschema
    #   outcome
    #   referencing
    #   reuse
    #   semgrep
    #   trio
babel==2.18.0
    # via sphinx
boltons==21.0.0
    # via
    #   face
    #   glom
    #   semgrep
boolean-py==5.0
    # via license-expression
bracex==3.0.1
    # via wcmatch
certifi==2026.7.22
    # via
    #   httpcore
    #   httpx
    #   requests
    #   selenium
cffi==2.1.0 ; (implementation_name != 'pypy' and os_name == 'nt') or platform_python_implementation != 'PyPy'
    # via
    #   cryptography
    #   trio
cfgv==3.5.0
    # via pre-commit
charset-normalizer==3.4.9
    # via requests
click==8.4.2
    # via
    #   click-option-group
    #   reuse
    #   semgrep
    #   uvicorn
click-option-group==0.5.9
    # via semgrep
codespell==2.4.3
colorama==0.4.6
    # via
    #   click
    #   pytest
    #   semgrep
    #   sphinx
    #   typer
contourpy==1.3.2 ; python_full_version < '3.11'
    # via matplotlib
contourpy==1.3.3 ; python_full_version >= '3.11'
    # via matplotlib
cryptography==50.0.0
    # via pyjwt
cycler==0.12.1
    # via matplotlib
distlib==0.4.3
    # via virtualenv
docutils==0.21.2 ; python_full_version < '3.11'
    # via
    #   rstcheck-core
    #   sphinx
    #   sphinx-rtd-theme
docutils==0.22.4 ; python_full_version >= '3.11'
    # via
    #   rstcheck-core
    #   sphinx
    #   sphinx-rtd-theme
exceptiongroup==1.2.2
    # via
    #   anyio
    #   pytest
    #   semgrep
    #   trio
    #   trio-websocket
face==26.0.1
    # via glom
filelock==3.32.2
    # via
    #   python-discovery
    #   virtualenv
fonttools==4.63.0
    # via matplotlib
glom==25.12.0
    # via semgrep
googleapis-common-protos==1.75.0
    # via opentelemetry-exporter-otlp-proto-http
gprof2dot==2025.4.14
h11==0.16.0
    # via
    #   httpcore
    #   uvicorn
    #   wsproto
httpcore==1.0.9
    # via httpx
httpx==0.28.1
    # via mcp
httpx-sse==0.4.3
    # via mcp
identify==2.6.19
    # via pre-commit
idna==3.18
    # via
    #   anyio
    #   httpx
    #   requests
    #   trio
imagesize==2.0.0
    # via sphinx
importlib-metadata==8.7.1
    # via opentelemetry-api
iniconfig==2.3.0
    # via pytest
jinja2==3.1.6
    # via
    #   memray
    #   reuse
    #   sphinx
jsonschema==4.25.1
    # via
    #   mcp
    #   semgrep
jsonschema-specifications==2025.9.1
    # via jsonschema
kiwisolver==1.5.0
    # via matplotlib
license-expression==30.4.4
    # via reuse
linkify-it-py==2.1.0
    # via markdown-it-py
markdown-it-py==4.2.0
    # via
    #   mdit-py-plugins
    #   rich
    #   textual
markupsafe==3.0.3
    # via jinja2
matplotlib==3.10.9 ; python_full_version < '3.11'
matplotlib==3.11.1 ; python_full_version >= '3.11'
mcp==1.23.3
    # via semgrep
mdit-py-plugins==0.6.1 ; sys_platform != 'win32'
    # via textual
mdurl==0.1.2
    # via markdown-it-py
memory-profiler==0.61.0
memray==1.19.3 ; sys_platform != 'win32'
nodeenv==1.10.0
    # via
    #   pre-commit
    #   pyright
numpy==2.2.6 ; python_full_version < '3.11'
    # via
    #   contourpy
    #   matplotlib
numpy==2.4.6 ; python_full_version == '3.11.*'
    # via
    #   contourpy
    #   matplotlib
numpy==2.5.1 ; python_full_version >= '3.12'
    # via
    #   contourpy
    #   matplotlib
opentelemetry-api==1.37.0
    # via
    #   opentelemetry-exporter-otlp-proto-http
    #   opentelemetry-instrumentation
    #   opentelemetry-instrumentation-requests
    #   opentelemetry-instrumentation-threading
    #   opentelemetry-sdk
    #   opentelemetry-semantic-conventions
    #   semgrep
opentelemetry-exporter-otlp-proto-common==1.37.0
    # via opentelemetry-exporter-otlp-proto-http
opentelemetry-exporter-otlp-proto-http==1.37.0
    # via semgrep
opentelemetry-instrumentation==0.58b0
    # via
    #   opentelemetry-instrumentation-requests
    #   opentelemetry-instrumentation-threading
opentelemetry-instrumentation-requests==0.58b0
    # via semgrep
opentelemetry-instrumentation-threading==0.58b0
    # via semgrep
opentelemetry-proto==1.37.0
    # via
    #   opentelemetry-exporter-otlp-proto-common
    #   opentelemetry-exporter-otlp-proto-http
opentelemetry-sdk==1.37.0
    # via
    #   opentelemetry-exporter-otlp-proto-http
    #   semgrep
opentelemetry-semantic-conventions==0.58b0
    # via
    #   opentelemetry-instrumentation
    #   opentelemetry-instrumentation-requests
    #   opentelemetry-sdk
opentelemetry-util-http==0.58b0
    # via opentelemetry-instrumentation-requests
outcome==1.3.0.post0
    # via
    #   trio
    #   trio-websocket
packaging==26.2
    # via
    #   matplotlib
    #   opentelemetry-instrumentation
    #   pytest
    #   requirements-parser
    #   semgrep
    #   sphinx
    #   webdriver-manager
peewee==3.19.0
    # via semgrep
pillow==12.3.0
    # via matplotlib
platformdirs==4.11.0
    # via
    #   textual
    #   virtualenv
pluggy==1.6.0
    # via pytest
pre-commit==4.6.1
protobuf==6.33.6
    # via
    #   googleapis-common-protos
    #   opentelemetry-proto
psutil==7.2.2
    # via memory-profiler
pycparser==3.0 ; (implementation_name != 'PyPy' and implementation_name != 'pypy' and os_name == 'nt') or (implementation_name != 'PyPy' and platform_python_implementation != 'PyPy')
    # via cffi
pydantic==2.13.4
    # via
    #   mcp
    #   pydantic-settings
    #   rstcheck-core
pydantic-core==2.46.4
    # via pydantic
pydantic-settings==2.14.2
    # via mcp
pygments==2.20.0
    # via
    #   pytest
    #   rich
    #   sphinx
    #   textual
pyinstrument==5.1.3
pyjwt==2.13.0
    # via
    #   mcp
    #   semgrep
pyparsing==3.3.2
    # via matplotlib
pyright==1.1.411
pysocks==1.7.1
    # via urllib3
pytest==9.1.1
python-dateutil==2.9.0.post0
    # via matplotlib
python-debian==1.1.1
    # via reuse
python-discovery==1.5.1
    # via virtualenv
python-dotenv==1.2.2
    # via
    #   pydantic-settings
    #   webdriver-manager
python-magic==0.4.27
    # via reuse
python-multipart==0.0.32
    # via mcp
pywin32==311 ; sys_platform == 'win32'
    # via
    #   mcp
    #   semgrep
pyyaml==6.0.3
    # via pre-commit
referencing==0.37.0
    # via
    #   jsonschema
    #   jsonschema-specifications
requests==2.34.2
    # via
    #   opentelemetry-exporter-otlp-proto-http
    #   semgrep
    #   sphinx
    #   webdriver-manager
requirements-parser==0.13.1
reuse==6.2.0
rich==15.0.0
    # via
    #   memray
    #   semgrep
    #   textual
    #   typer
roman-numerals==4.1.0 ; python_full_version >= '3.11'
    # via sphinx
rpds-py==0.30.0 ; python_full_version < '3.11'
    # via
    #   jsonschema
    #   referencing
rpds-py==2026.6.3 ; python_full_version >= '3.11'
    # via
    #   jsonschema
    #   referencing
rstcheck==6.3.0
rstcheck-core==1.3.1
    # via rstcheck
ruamel-yaml==0.19.1
    # via semgrep
ruamel-yaml-clib==0.2.15
    # via semgrep
ruff==0.16.1
selenium==4.46.0
semantic-version==2.10.0
    # via semgrep
semgrep==1.172.0
setuptools==83.0.0
shellingham==1.5.4
    # via typer
six==1.17.0
    # via python-dateutil
sniffio==1.3.1
    # via trio
snowballstemmer==3.1.1
    # via sphinx
sortedcontainers==2.4.0
    # via trio
sphinx==8.1.3 ; python_full_version < '3.11'
    # via
    #   sphinx-rtd-theme
    #   sphinxcontrib-jquery
sphinx==9.0.4 ; python_full_version == '3.11.*'
    # via
    #   sphinx-rtd-theme
    #   sphinxcontrib-jquery
sphinx==9.1.0 ; python_full_version >= '3.12'
    # via
    #   sphinx-rtd-theme
    #   sphinxcontrib-jquery
sphinx-rtd-theme==3.1.0
sphinxcontrib-applehelp==2.0.0
    # via sphinx
sphinxcontrib-devhelp==2.0.0
    # via sphinx
sphinxcontrib-htmlhelp==2.1.0
    # via sphinx
sphinxcontrib-jquery==4.1
    # via sphinx-rtd-theme
sphinxcontrib-jsmath==1.0.1
    # via sphinx
sphinxcontrib-qthelp==2.0.0
    # via sphinx
sphinxcontrib-serializinghtml==2.0.0
    # via sphinx
sse-starlette==3.4.6
    # via mcp
starlette==1.3.1
    # via
    #   mcp
    #   sse-starlette
textual==8.2.8 ; sys_platform != 'win32'
    # via memray
tomli==2.4.1
    # via
    #   pytest
    #   semgrep
    #   sphinx
tomlkit==0.15.1
    # via reuse
trio==0.33.0
    # via
    #   selenium
    #   trio-websocket
trio-websocket==0.12.2
    # via selenium
typer==0.27.0
    # via rstcheck
typing-extensions==4.16.0
    # via
    #   anyio
    #   cryptography
    #   mcp
    #   opentelemetry-api
    #   opentelemetry-exporter-otlp-proto-http
    #   opentelemetry-sdk
    #   opentelemetry-semantic-conventions
    #   pydantic
    #   pydantic-core
    #   pyjwt
    #   pyright
    #   referencing
    #   selenium
    #   semgrep
    #   starlette
    #   textual
    #   typing-inspection
    #   uvicorn
    #   virtualenv
typing-inspection==0.4.2
    # via
    #   mcp
    #   pydantic
    #   pydantic-settings
uc-micro-py==2.0.0
    # via linkify-it-py
urllib3==2.7.0
    # via
    #   requests
    #   selenium
    #   semgrep
uvicorn==0.52.0 ; sys_platform != 'emscripten'
    # via mcp
virtualenv==21.7.1
    # via pre-commit
wcmatch==8.5.2
    # via semgrep
webdriver-manager==4.1.2
websocket-client==1.9.0
    # via selenium
wrapt==1.17.3
    # via
    #   opentelemetry-instrumentation
    #   opentelemetry-instrumentation-threading
wsproto==1.3.2
    # via trio-websocket
zipp==4.1.0
    # via importlib-metadata
