# This file was autogenerated by uv via the following command:
#    uv export --no-hashes --only-dev --output-file dev-requirements.txt
alabaster==0.7.16 ; python_full_version < '3.10'
    # via sphinx
alabaster==1.0.0 ; python_full_version >= '3.10'
    # via sphinx
annotated-types==0.7.0
    # via pydantic
anyio==4.11.0 ; python_full_version >= '3.10'
    # via
    #   httpx
    #   mcp
    #   sse-starlette
    #   starlette
attrs==25.4.0
    # via
    #   glom
    #   jsonschema
    #   outcome
    #   referencing
    #   reuse
    #   semgrep
    #   trio
babel==2.17.0
    # via sphinx
binaryornot==0.4.4 ; python_full_version < '3.10'
    # via reuse
boltons==21.0.0
    # via
    #   face
    #   glom
    #   semgrep
boolean-py==5.0
    # via
    #   license-expression
    #   reuse
bracex==2.6
    # via wcmatch
certifi==2025.10.5
    # via
    #   httpcore
    #   httpx
    #   requests
    #   selenium
cffi==2.0.0 ; implementation_name != 'pypy' and os_name == 'nt'
    # via trio
cfgv==3.4.0
    # via pre-commit
chardet==5.2.0 ; python_full_version < '3.10'
    # via binaryornot
charset-normalizer==3.4.4
    # via
    #   python-debian
    #   requests
click==8.1.8
    # via
    #   click-option-group
    #   reuse
    #   semgrep
    #   typer
    #   uvicorn
click-option-group==0.5.9
    # via semgrep
codespell==2.4.1
colorama==0.4.6
    # via
    #   click
    #   pytest
    #   semgrep
    #   sphinx
contourpy==1.3.0 ; python_full_version < '3.10'
    # via matplotlib
contourpy==1.3.2 ; python_full_version == '3.10.*'
    # via matplotlib
contourpy==1.3.3 ; python_full_version >= '3.11'
    # via matplotlib
cycler==0.12.1
    # via matplotlib
defusedxml==0.7.1 ; python_full_version < '3.10'
    # via semgrep
deprecated==1.3.1 ; python_full_version < '3.10'
    # via
    #   opentelemetry-api
    #   opentelemetry-exporter-otlp-proto-http
distlib==0.4.0
    # via virtualenv
docutils==0.21.2
    # via
    #   rstcheck-core
    #   sphinx
    #   sphinx-rtd-theme
exceptiongroup==1.2.2
    # via
    #   anyio
    #   pytest
    #   semgrep
    #   trio
    #   trio-websocket
face==24.0.0
    # via glom
filelock==3.19.1 ; python_full_version < '3.10'
    # via virtualenv
filelock==3.20.0 ; python_full_version >= '3.10'
    # via virtualenv
fonttools==4.60.1
    # via matplotlib
glom==22.1.0
    # via semgrep
googleapis-common-protos==1.71.0
    # via opentelemetry-exporter-otlp-proto-http
gprof2dot==2025.4.14
h11==0.16.0
    # via
    #   httpcore
    #   uvicorn
    #   wsproto
httpcore==1.0.9 ; python_full_version >= '3.10'
    # via httpx
httpx==0.28.1 ; python_full_version >= '3.10'
    # via mcp
httpx-sse==0.4.3 ; python_full_version >= '3.10'
    # via mcp
identify==2.6.15
    # via pre-commit
idna==3.11
    # via
    #   anyio
    #   httpx
    #   requests
    #   trio
imagesize==1.4.1
    # via sphinx
importlib-metadata==7.1.0 ; python_full_version < '3.10'
    # via
    #   opentelemetry-api
    #   sphinx
importlib-metadata==8.7.0 ; python_full_version >= '3.10'
    # via opentelemetry-api
importlib-resources==6.5.2 ; python_full_version < '3.10'
    # via matplotlib
iniconfig==2.1.0 ; python_full_version < '3.10'
    # via pytest
iniconfig==2.3.0 ; python_full_version >= '3.10'
    # via pytest
jinja2==3.1.6
    # via
    #   reuse
    #   sphinx
jsonschema==4.25.1
    # via
    #   mcp
    #   semgrep
jsonschema-specifications==2025.9.1
    # via jsonschema
kiwisolver==1.4.7 ; python_full_version < '3.10'
    # via matplotlib
kiwisolver==1.4.9 ; python_full_version >= '3.10'
    # via matplotlib
license-expression==30.4.4
    # via reuse
markdown-it-py==3.0.0 ; python_full_version < '3.10'
    # via rich
markdown-it-py==4.0.0 ; python_full_version >= '3.10'
    # via rich
markupsafe==3.0.3
    # via jinja2
matplotlib==3.9.4 ; python_full_version < '3.10'
matplotlib==3.10.7 ; python_full_version >= '3.10'
mcp==1.16.0 ; python_full_version >= '3.10'
    # via semgrep
mdurl==0.1.2
    # via markdown-it-py
memory-profiler==0.61.0
nodeenv==1.9.1
    # via
    #   pre-commit
    #   pyright
numpy==2.0.2 ; python_full_version < '3.10'
    # via
    #   contourpy
    #   matplotlib
numpy==2.2.6 ; python_full_version == '3.10.*'
    # via
    #   contourpy
    #   matplotlib
numpy==2.3.4 ; python_full_version >= '3.11'
    # via
    #   contourpy
    #   matplotlib
opentelemetry-api==1.25.0 ; python_full_version < '3.10'
    # via
    #   opentelemetry-exporter-otlp-proto-http
    #   opentelemetry-instrumentation
    #   opentelemetry-instrumentation-requests
    #   opentelemetry-sdk
    #   opentelemetry-semantic-conventions
    #   semgrep
opentelemetry-api==1.37.0 ; python_full_version >= '3.10'
    # via
    #   opentelemetry-exporter-otlp-proto-http
    #   opentelemetry-instrumentation
    #   opentelemetry-instrumentation-requests
    #   opentelemetry-sdk
    #   opentelemetry-semantic-conventions
    #   semgrep
opentelemetry-exporter-otlp-proto-common==1.25.0 ; python_full_version < '3.10'
    # via opentelemetry-exporter-otlp-proto-http
opentelemetry-exporter-otlp-proto-common==1.37.0 ; python_full_version >= '3.10'
    # via opentelemetry-exporter-otlp-proto-http
opentelemetry-exporter-otlp-proto-http==1.25.0 ; python_full_version < '3.10'
    # via semgrep
opentelemetry-exporter-otlp-proto-http==1.37.0 ; python_full_version >= '3.10'
    # via semgrep
opentelemetry-instrumentation==0.46b0 ; python_full_version < '3.10'
    # via opentelemetry-instrumentation-requests
opentelemetry-instrumentation==0.58b0 ; python_full_version >= '3.10'
    # via opentelemetry-instrumentation-requests
opentelemetry-instrumentation-requests==0.46b0 ; python_full_version < '3.10'
    # via semgrep
opentelemetry-instrumentation-requests==0.58b0 ; python_full_version >= '3.10'
    # via semgrep
opentelemetry-proto==1.25.0 ; python_full_version < '3.10'
    # via
    #   opentelemetry-exporter-otlp-proto-common
    #   opentelemetry-exporter-otlp-proto-http
opentelemetry-proto==1.37.0 ; python_full_version >= '3.10'
    # via
    #   opentelemetry-exporter-otlp-proto-common
    #   opentelemetry-exporter-otlp-proto-http
opentelemetry-sdk==1.25.0 ; python_full_version < '3.10'
    # via
    #   opentelemetry-exporter-otlp-proto-http
    #   semgrep
opentelemetry-sdk==1.37.0 ; python_full_version >= '3.10'
    # via
    #   opentelemetry-exporter-otlp-proto-http
    #   semgrep
opentelemetry-semantic-conventions==0.46b0 ; python_full_version < '3.10'
    # via
    #   opentelemetry-instrumentation-requests
    #   opentelemetry-sdk
opentelemetry-semantic-conventions==0.58b0 ; python_full_version >= '3.10'
    # via
    #   opentelemetry-instrumentation
    #   opentelemetry-instrumentation-requests
    #   opentelemetry-sdk
opentelemetry-util-http==0.46b0 ; python_full_version < '3.10'
    # via opentelemetry-instrumentation-requests
opentelemetry-util-http==0.58b0 ; python_full_version >= '3.10'
    # via opentelemetry-instrumentation-requests
outcome==1.3.0.post0
    # via
    #   trio
    #   trio-websocket
packaging==25.0
    # via
    #   matplotlib
    #   opentelemetry-instrumentation
    #   pytest
    #   requirements-parser
    #   semgrep
    #   sphinx
    #   webdriver-manager
peewee==3.18.2
    # via semgrep
pillow==11.3.0 ; python_full_version < '3.10'
    # via matplotlib
pillow==12.0.0 ; python_full_version >= '3.10'
    # via matplotlib
platformdirs==4.4.0 ; python_full_version < '3.10'
    # via virtualenv
platformdirs==4.5.0 ; python_full_version >= '3.10'
    # via virtualenv
pluggy==1.6.0
    # via pytest
pre-commit==4.3.0
    # via
    #   googleapis-common-protos
    #   opentelemetry-proto
protobuf==6.33.0 ; python_full_version >= '3.10'
protobuf==4.25.8 ; python_full_version < '3.10'
    # via
    #   googleapis-common-protos
    #   opentelemetry-proto
psutil==7.1.2
    # via memory-profiler
py-spy==0.4.1
pycparser==2.23 ; implementation_name != 'PyPy' and implementation_name != 'pypy' and os_name == 'nt'
    # via cffi
pydantic==2.12.3
    # via
    #   mcp
    #   pydantic-settings
    #   rstcheck-core
pydantic-core==2.41.4
    # via pydantic
pydantic-settings==2.11.0 ; python_full_version >= '3.10'
    # via mcp
pygments==2.19.2
    # via
    #   pytest
    #   rich
    #   sphinx
pyinstrument==5.1.1
pyparsing==3.2.5
    # via matplotlib
pyright==1.1.407
pysocks==1.7.1
    # via urllib3
pytest==8.4.2
python-dateutil==2.9.0.post0
    # via matplotlib
python-debian==1.0.1
    # via reuse
python-dotenv==1.2.1
    # via
    #   pydantic-settings
    #   webdriver-manager
python-magic==0.4.27 ; python_full_version >= '3.10'
    # via reuse
python-multipart==0.0.20 ; python_full_version >= '3.10'
    # via mcp
pywin32==311 ; python_full_version >= '3.10' and sys_platform == 'win32'
    # via
    #   mcp
    #   semgrep
pyyaml==6.0.3
    # via pre-commit
referencing==0.36.2 ; python_full_version < '3.10'
    # via
    #   jsonschema
    #   jsonschema-specifications
referencing==0.37.0 ; python_full_version >= '3.10'
    # via
    #   jsonschema
    #   jsonschema-specifications
requests==2.32.5
    # via
    #   opentelemetry-exporter-otlp-proto-http
    #   semgrep
    #   sphinx
    #   webdriver-manager
requirements-parser==0.13.0
reuse==5.1.1 ; python_full_version < '3.10'
reuse==6.2.0 ; python_full_version >= '3.10'
rich==13.5.3
    # via
    #   semgrep
    #   typer
roman-numerals-py==3.1.0 ; python_full_version >= '3.11'
    # via sphinx
rpds-py==0.27.1 ; python_full_version < '3.10'
    # via
    #   jsonschema
    #   referencing
rpds-py==0.28.0 ; python_full_version >= '3.10'
    # via
    #   jsonschema
    #   referencing
rstcheck==6.2.5
rstcheck-core==1.2.2
    # via rstcheck
ruamel-yaml==0.18.16
    # via semgrep
ruamel-yaml-clib==0.2.14 ; python_full_version >= '3.10' or platform_python_implementation == 'CPython'
    # via
    #   ruamel-yaml
    #   semgrep
ruff==0.14.3
selenium==4.36.0 ; python_full_version < '3.10'
selenium==4.38.0 ; python_full_version >= '3.10'
semgrep==1.136.0 ; python_full_version < '3.10'
semgrep==1.142.0 ; python_full_version >= '3.10'
setuptools==80.9.0
    # via opentelemetry-instrumentation
shellingham==1.5.4
    # via typer
six==1.17.0
    # via python-dateutil
sniffio==1.3.1
    # via
    #   anyio
    #   trio
snowballstemmer==3.0.1
    # via sphinx
sortedcontainers==2.4.0
    # via trio
sphinx==7.4.7 ; python_full_version < '3.10'
    # via
    #   sphinx-rtd-theme
    #   sphinxcontrib-jquery
sphinx==8.1.3 ; python_full_version == '3.10.*'
    # via
    #   sphinx-rtd-theme
    #   sphinxcontrib-jquery
sphinx==8.2.3 ; python_full_version >= '3.11'
    # via
    #   sphinx-rtd-theme
    #   sphinxcontrib-jquery
sphinx-rtd-theme==3.0.2
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.0.3 ; python_full_version >= '3.10'
    # via mcp
starlette==0.49.2 ; python_full_version >= '3.10'
    # via mcp
tomli==2.0.2
    # via
    #   pytest
    #   semgrep
    #   sphinx
tomlkit==0.13.3
    # via reuse
trio==0.31.0 ; python_full_version < '3.10'
    # via
    #   selenium
    #   trio-websocket
trio==0.32.0 ; python_full_version >= '3.10'
    # via
    #   selenium
    #   trio-websocket
trio-websocket==0.12.2
    # via selenium
typer==0.20.0
    # via rstcheck
typing-extensions==4.15.0
    # via
    #   anyio
    #   opentelemetry-api
    #   opentelemetry-exporter-otlp-proto-http
    #   opentelemetry-sdk
    #   opentelemetry-semantic-conventions
    #   pydantic
    #   pydantic-core
    #   pyright
    #   referencing
    #   selenium
    #   semgrep
    #   starlette
    #   typer
    #   typing-inspection
    #   uvicorn
    #   virtualenv
typing-inspection==0.4.2
    # via
    #   pydantic
    #   pydantic-settings
urllib3==2.5.0
    # via
    #   requests
    #   selenium
    #   semgrep
uvicorn==0.38.0 ; python_full_version >= '3.10' and sys_platform != 'emscripten'
    # via mcp
virtualenv==20.35.4
    # via pre-commit
wcmatch==8.5.2
    # via semgrep
webdriver-manager==4.0.2
websocket-client==1.9.0
    # via selenium
wrapt==1.17.3
    # via
    #   deprecated
    #   opentelemetry-instrumentation
wsproto==1.2.0
    # via trio-websocket
zipp==3.23.0
    # via
    #   importlib-metadata
    #   importlib-resources
