# This file was autogenerated by uv via the following command:
#    uv export --frozen --no-hashes --output-file=docs/requirements.txt
-e .
alabaster==0.7.16 ; python_full_version < '3.10'
    # via sphinx
alabaster==1.0.0 ; python_full_version >= '3.10'
    # via sphinx
anyio==4.12.1 ; python_full_version < '3.10'
    # via
    #   httpx
    #   jupyter-server
    #   starlette
    #   watchfiles
anyio==4.14.1 ; python_full_version >= '3.10'
    # via
    #   httpx
    #   jupyter-server
    #   starlette
    #   watchfiles
appnope==0.1.4 ; sys_platform == 'darwin'
    # via ipykernel
argon2-cffi==25.1.0
    # via jupyter-server
argon2-cffi-bindings==25.1.0
    # via argon2-cffi
arrow==1.4.0
    # via isoduration
astroid==3.3.11 ; python_full_version < '3.10'
    # via sphinx-autoapi
astroid==4.1.2 ; python_full_version >= '3.10'
    # via sphinx-autoapi
asttokens==3.0.1
    # via stack-data
async-lru==2.0.5 ; python_full_version < '3.10'
    # via jupyterlab
async-lru==2.3.0 ; python_full_version >= '3.10'
    # via jupyterlab
attrs==26.1.0
    # via
    #   joseki
    #   jsonschema
    #   referencing
autodocsumm==0.2.15
babel==2.18.0
    # via
    #   jupyterlab-server
    #   sphinx
beautifulsoup4==4.15.0
    # via nbconvert
bleach==6.2.0 ; python_full_version < '3.10'
    # via nbconvert
bleach==6.4.0 ; python_full_version >= '3.10'
    # via nbconvert
certifi==2026.6.17
    # via
    #   httpcore
    #   httpx
    #   netcdf4
    #   requests
cffi==2.0.0 ; python_full_version < '3.10'
    # via
    #   argon2-cffi-bindings
    #   pyzmq
cffi==2.1.0 ; python_full_version >= '3.10'
    # via
    #   argon2-cffi-bindings
    #   pyzmq
cftime==1.6.4.post1 ; python_full_version < '3.10'
    # via netcdf4
cftime==1.6.5 ; python_full_version >= '3.10'
    # via netcdf4
charset-normalizer==3.4.9
    # via requests
click==8.1.8 ; python_full_version < '3.10'
    # via
    #   joseki
    #   uvicorn
click==8.4.2 ; python_full_version >= '3.10'
    # via
    #   joseki
    #   uvicorn
colorama==0.4.6
    # via
    #   click
    #   ipython
    #   pytest
    #   sphinx
    #   sphinx-autobuild
    #   taskipy
comm==0.2.3
    # via ipykernel
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
coverage==7.10.7 ; python_full_version < '3.10'
coverage==7.15.0 ; python_full_version >= '3.10'
cycler==0.12.1
    # via matplotlib
debugpy==1.8.21
    # via ipykernel
decorator==5.3.1
    # via ipython
defusedxml==0.7.1
    # via nbconvert
docutils==0.21.2 ; python_full_version < '3.11'
    # via
    #   myst-parser
    #   pybtex-docutils
    #   sphinx
    #   sphinxcontrib-bibtex
docutils==0.22.4 ; python_full_version >= '3.11'
    # via
    #   myst-parser
    #   pybtex-docutils
    #   sphinx
    #   sphinxcontrib-bibtex
exceptiongroup==1.3.1 ; python_full_version < '3.11'
    # via
    #   anyio
    #   ipython
    #   pytest
executing==2.2.1
    # via stack-data
fastjsonschema==2.21.2
    # via nbformat
flexcache==0.3
    # via pint
flexparser==0.4
    # via pint
fonttools==4.60.2 ; python_full_version < '3.10'
    # via matplotlib
fonttools==4.63.0 ; python_full_version >= '3.10'
    # via matplotlib
fqdn==1.5.1
    # via jsonschema
h11==0.16.0
    # via
    #   httpcore
    #   uvicorn
httpcore==1.0.9
    # via httpx
httpx==0.28.1
    # via jupyterlab
idna==3.18
    # via
    #   anyio
    #   httpx
    #   jsonschema
    #   requests
imagesize==1.5.0 ; python_full_version < '3.10'
    # via sphinx
imagesize==2.0.0 ; python_full_version >= '3.10'
    # via sphinx
importlib-metadata==8.7.1 ; python_full_version < '3.10'
    # via
    #   jupyter-client
    #   jupyter-lsp
    #   jupyterlab
    #   jupyterlab-server
    #   nbconvert
    #   pybtex
    #   sphinx
    #   sphinxcontrib-bibtex
importlib-resources==6.5.2 ; python_full_version < '3.10'
    # via
    #   joseki
    #   matplotlib
importlib-resources==7.1.0 ; python_full_version >= '3.10'
    # via joseki
iniconfig==2.1.0 ; python_full_version < '3.10'
    # via pytest
iniconfig==2.3.0 ; python_full_version >= '3.10'
    # via pytest
ipykernel==6.31.0 ; python_full_version < '3.10'
    # via jupyterlab
ipykernel==7.3.0 ; python_full_version >= '3.10'
    # via jupyterlab
ipython==8.18.1 ; python_full_version < '3.10'
    # via ipykernel
ipython==8.39.0 ; python_full_version == '3.10.*'
    # via ipykernel
ipython==9.10.1 ; python_full_version == '3.11.*'
    # via ipykernel
ipython==9.12.0 ; python_full_version >= '3.12'
    # via ipykernel
ipython-pygments-lexers==1.1.1 ; python_full_version >= '3.11'
    # via ipython
isoduration==20.11.0
    # via jsonschema
jedi==0.19.2 ; python_full_version < '3.10'
    # via ipython
jedi==0.20.0 ; python_full_version >= '3.10'
    # via ipython
jinja2==3.1.6
    # via
    #   jupyter-server
    #   jupyterlab
    #   jupyterlab-server
    #   myst-parser
    #   nbconvert
    #   sphinx
    #   sphinx-autoapi
json5==0.15.0
    # via jupyterlab-server
jsonpointer==3.0.0 ; python_full_version < '3.10'
    # via jsonschema
jsonpointer==3.1.1 ; python_full_version >= '3.10'
    # via jsonschema
jsonschema==4.25.1 ; python_full_version < '3.10'
    # via
    #   jupyter-events
    #   jupyterlab-server
    #   nbformat
jsonschema==4.26.0 ; python_full_version >= '3.10'
    # via
    #   jupyter-events
    #   jupyterlab-server
    #   nbformat
jsonschema-specifications==2025.9.1
    # via jsonschema
jupyter-builder==1.0.2 ; python_full_version >= '3.10'
    # via jupyterlab
jupyter-client==8.6.3 ; python_full_version < '3.10'
    # via
    #   ipykernel
    #   jupyter-server
    #   nbclient
jupyter-client==8.9.1 ; python_full_version >= '3.10'
    # via
    #   ipykernel
    #   jupyter-server
    #   nbclient
jupyter-core==5.8.1 ; python_full_version < '3.10'
    # via
    #   ipykernel
    #   jupyter-client
    #   jupyter-server
    #   jupyterlab
    #   nbclient
    #   nbconvert
    #   nbformat
jupyter-core==5.9.1 ; python_full_version >= '3.10'
    # via
    #   ipykernel
    #   jupyter-builder
    #   jupyter-client
    #   jupyter-server
    #   jupyterlab
    #   nbclient
    #   nbconvert
    #   nbformat
jupyter-events==0.12.1
    # via jupyter-server
jupyter-lsp==2.3.1
    # via jupyterlab
jupyter-server==2.18.2 ; python_full_version < '3.10'
    # via
    #   jupyter-lsp
    #   jupyterlab
    #   jupyterlab-server
    #   notebook-shim
jupyter-server==2.20.0 ; python_full_version >= '3.10'
    # via
    #   jupyter-lsp
    #   jupyterlab
    #   jupyterlab-server
    #   notebook-shim
jupyter-server-terminals==0.5.4
    # via jupyter-server
jupyterlab==4.5.9 ; python_full_version < '3.10'
jupyterlab==4.6.1 ; python_full_version >= '3.10'
jupyterlab-pygments==0.3.0
    # via nbconvert
jupyterlab-server==2.28.0
    # via jupyterlab
kiwisolver==1.4.7 ; python_full_version < '3.10'
    # via matplotlib
kiwisolver==1.5.0 ; python_full_version >= '3.10'
    # via matplotlib
lark==1.3.1
    # via rfc3987-syntax
latexcodec==3.0.1
    # via pybtex
linkify-it-py==2.0.3 ; python_full_version < '3.10'
linkify-it-py==2.1.0 ; python_full_version >= '3.10'
markdown-it-py==3.0.0 ; python_full_version < '3.11'
    # via
    #   mdit-py-plugins
    #   myst-parser
markdown-it-py==4.2.0 ; python_full_version >= '3.11'
    # via
    #   mdit-py-plugins
    #   myst-parser
markupsafe==3.0.3
    # via
    #   jinja2
    #   nbconvert
matplotlib==3.9.4 ; python_full_version < '3.10'
    # via seaborn
matplotlib==3.10.9 ; python_full_version == '3.10.*'
    # via seaborn
matplotlib==3.11.0 ; python_full_version >= '3.11'
    # via seaborn
matplotlib-inline==0.2.2
    # via
    #   ipykernel
    #   ipython
mdit-py-plugins==0.4.2 ; python_full_version < '3.10'
    # via myst-parser
mdit-py-plugins==0.6.1 ; python_full_version >= '3.10'
    # via myst-parser
mdurl==0.1.2
    # via markdown-it-py
mistune==3.3.2
    # via nbconvert
mslex==1.3.0 ; sys_platform == 'win32'
    # via taskipy
myst-parser==3.0.1 ; python_full_version < '3.10'
myst-parser==4.0.1 ; python_full_version == '3.10.*'
myst-parser==5.1.0 ; python_full_version >= '3.11'
nbclient==0.10.2 ; python_full_version < '3.10'
    # via nbconvert
nbclient==0.11.0 ; python_full_version >= '3.10'
    # via nbconvert
nbconvert==7.17.1
    # via jupyter-server
nbformat==5.10.4
    # via
    #   jupyter-server
    #   nbclient
    #   nbconvert
    #   nbstripout
nbstripout==0.8.2 ; python_full_version < '3.10'
nbstripout==0.9.1 ; python_full_version >= '3.10'
nest-asyncio==1.6.0 ; python_full_version < '3.10'
    # via ipykernel
nest-asyncio2==1.7.2 ; python_full_version >= '3.10'
    # via ipykernel
netcdf4==1.7.2 ; python_full_version < '3.10'
    # via joseki
netcdf4==1.7.3 ; python_full_version == '3.10.*' and platform_machine == 'ARM64' and sys_platform == 'win32'
    # via joseki
netcdf4==1.7.4 ; (python_full_version >= '3.10' and platform_machine != 'ARM64') or (python_full_version >= '3.11' and platform_machine == 'ARM64' and sys_platform == 'win32') or (python_full_version >= '3.10' and sys_platform != 'win32')
    # via joseki
notebook-shim==0.2.4
    # via jupyterlab
numpy==2.0.2 ; python_full_version < '3.10'
    # via
    #   cftime
    #   contourpy
    #   joseki
    #   matplotlib
    #   netcdf4
    #   pandas
    #   scipy
    #   seaborn
    #   xarray
numpy==2.2.6 ; python_full_version == '3.10.*'
    # via
    #   cftime
    #   contourpy
    #   joseki
    #   matplotlib
    #   netcdf4
    #   pandas
    #   scipy
    #   seaborn
    #   xarray
numpy==2.4.6 ; python_full_version == '3.11.*'
    # via
    #   cftime
    #   contourpy
    #   joseki
    #   matplotlib
    #   netcdf4
    #   pandas
    #   scipy
    #   seaborn
    #   xarray
numpy==2.5.1 ; python_full_version >= '3.12'
    # via
    #   cftime
    #   contourpy
    #   joseki
    #   matplotlib
    #   netcdf4
    #   pandas
    #   scipy
    #   seaborn
    #   xarray
overrides==7.7.0 ; python_full_version < '3.12'
    # via jupyter-server
packaging==26.2
    # via
    #   ipykernel
    #   jupyter-events
    #   jupyter-server
    #   jupyterlab
    #   jupyterlab-server
    #   matplotlib
    #   nbconvert
    #   pytest
    #   sphinx
    #   xarray
pandas==2.3.3 ; python_full_version < '3.11'
    # via
    #   joseki
    #   seaborn
    #   xarray
pandas==3.0.3 ; python_full_version >= '3.11'
    # via
    #   joseki
    #   seaborn
    #   xarray
pandocfilters==1.5.1
    # via nbconvert
parso==0.8.7
    # via jedi
pexpect==4.9.0 ; (python_full_version < '3.10' and sys_platform == 'emscripten') or (sys_platform != 'emscripten' and sys_platform != 'win32')
    # via ipython
pillow==11.3.0 ; python_full_version < '3.10'
    # via matplotlib
pillow==12.3.0 ; python_full_version >= '3.10'
    # via matplotlib
pint==0.24.4 ; python_full_version < '3.11'
    # via joseki
pint==0.25.3 ; python_full_version >= '3.11'
    # via joseki
platformdirs==4.4.0 ; python_full_version < '3.10'
    # via
    #   jupyter-core
    #   pint
platformdirs==4.10.0 ; python_full_version >= '3.10'
    # via
    #   jupyter-core
    #   pint
pluggy==1.6.0
    # via pytest
prometheus-client==0.25.0
    # via jupyter-server
prompt-toolkit==3.0.52
    # via ipython
psutil==6.1.1
    # via
    #   ipykernel
    #   taskipy
ptyprocess==0.7.0 ; (python_full_version < '3.10' and sys_platform == 'emscripten') or os_name != 'nt' or (sys_platform != 'emscripten' and sys_platform != 'win32')
    # via
    #   pexpect
    #   terminado
pure-eval==0.2.3
    # via stack-data
pybtex==0.26.1
    # via
    #   pybtex-docutils
    #   sphinxcontrib-bibtex
pybtex-docutils==1.0.3
    # via sphinxcontrib-bibtex
pycparser==2.23 ; python_full_version < '3.10' and implementation_name != 'PyPy'
    # via cffi
pycparser==3.0 ; python_full_version >= '3.10' and implementation_name != 'PyPy'
    # via cffi
pygments==2.20.0
    # via
    #   ipython
    #   ipython-pygments-lexers
    #   nbconvert
    #   pygments-styles
    #   pytest
    #   sphinx
pygments-styles==0.3.0
    # via shibuya
pyparsing==3.3.2
    # via matplotlib
pytest==8.4.2 ; python_full_version < '3.10'
pytest==9.1.1 ; python_full_version >= '3.10'
python-dateutil==2.9.0.post0
    # via
    #   arrow
    #   jupyter-client
    #   matplotlib
    #   pandas
python-json-logger==4.0.0 ; python_full_version < '3.10'
    # via jupyter-events
python-json-logger==4.1.0 ; python_full_version >= '3.10'
    # via jupyter-events
pytz==2026.2 ; python_full_version < '3.11'
    # via pandas
pywin32==312 ; python_full_version < '3.10' and platform_python_implementation != 'PyPy' and sys_platform == 'win32'
    # via jupyter-core
pywinpty==3.0.3 ; python_full_version < '3.10' and os_name == 'nt'
    # via
    #   jupyter-server
    #   jupyter-server-terminals
    #   terminado
pywinpty==3.0.5 ; python_full_version >= '3.10' and os_name == 'nt'
    # via
    #   jupyter-server
    #   jupyter-server-terminals
    #   terminado
pyyaml==6.0.3
    # via
    #   jupyter-events
    #   myst-parser
    #   pybtex
    #   sphinx-autoapi
pyzmq==27.1.0
    # via
    #   ipykernel
    #   jupyter-client
    #   jupyter-server
referencing==0.36.2 ; python_full_version < '3.10'
    # via
    #   jsonschema
    #   jsonschema-specifications
    #   jupyter-events
referencing==0.37.0 ; python_full_version >= '3.10'
    # via
    #   jsonschema
    #   jsonschema-specifications
    #   jupyter-events
requests==2.32.5 ; python_full_version < '3.10'
    # via
    #   jupyterlab-server
    #   sphinx
requests==2.34.2 ; python_full_version >= '3.10'
    # via
    #   jupyterlab-server
    #   sphinx
rfc3339-validator==0.1.4
    # via
    #   jsonschema
    #   jupyter-events
rfc3986-validator==0.1.1
    # via
    #   jsonschema
    #   jupyter-events
rfc3987-syntax==1.1.0
    # via jsonschema
roman-numerals==4.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.30.0 ; python_full_version == '3.10.*'
    # via
    #   jsonschema
    #   referencing
rpds-py==2026.6.3 ; python_full_version >= '3.11'
    # via
    #   jsonschema
    #   referencing
scipy==1.13.1 ; python_full_version < '3.10'
    # via joseki
scipy==1.15.3 ; python_full_version == '3.10.*'
    # via joseki
scipy==1.17.1 ; python_full_version == '3.11.*'
    # via joseki
scipy==1.18.0 ; python_full_version >= '3.12'
    # via joseki
seaborn==0.13.2
send2trash==2.1.0
    # via jupyter-server
setuptools==82.0.1 ; python_full_version < '3.10'
    # via jupyterlab
shibuya==2025.10.21 ; python_full_version < '3.10'
shibuya==2026.5.19 ; python_full_version >= '3.10'
six==1.17.0
    # via
    #   python-dateutil
    #   rfc3339-validator
snowballstemmer==3.1.1
    # via sphinx
soupsieve==2.8.4
    # via beautifulsoup4
sphinx==7.4.7 ; python_full_version < '3.10'
    # via
    #   autodocsumm
    #   myst-parser
    #   shibuya
    #   sphinx-autoapi
    #   sphinx-autobuild
    #   sphinx-autodoc-typehints
    #   sphinx-copybutton
    #   sphinxcontrib-bibtex
sphinx==8.1.3 ; python_full_version == '3.10.*'
    # via
    #   autodocsumm
    #   myst-parser
    #   shibuya
    #   sphinx-autoapi
    #   sphinx-autobuild
    #   sphinx-autodoc-typehints
    #   sphinx-copybutton
    #   sphinxcontrib-bibtex
sphinx==9.0.4 ; python_full_version == '3.11.*'
    # via
    #   autodocsumm
    #   myst-parser
    #   shibuya
    #   sphinx-autoapi
    #   sphinx-autobuild
    #   sphinx-autodoc-typehints
    #   sphinx-copybutton
    #   sphinxcontrib-bibtex
sphinx==9.1.0 ; python_full_version >= '3.12'
    # via
    #   autodocsumm
    #   myst-parser
    #   shibuya
    #   sphinx-autoapi
    #   sphinx-autobuild
    #   sphinx-autodoc-typehints
    #   sphinx-copybutton
    #   sphinxcontrib-bibtex
sphinx-autoapi==3.6.1 ; python_full_version < '3.10'
sphinx-autoapi==3.8.0 ; python_full_version >= '3.10'
sphinx-autobuild==2024.10.3 ; python_full_version < '3.11'
sphinx-autobuild==2025.8.25 ; python_full_version >= '3.11'
sphinx-autodoc-typehints==2.3.0 ; python_full_version < '3.10'
sphinx-autodoc-typehints==3.0.1 ; python_full_version == '3.10.*'
sphinx-autodoc-typehints==3.6.1 ; python_full_version == '3.11.*'
sphinx-autodoc-typehints==3.12.1 ; python_full_version >= '3.12'
sphinx-copybutton==0.5.2
sphinxcontrib-applehelp==2.0.0
    # via sphinx
sphinxcontrib-bibtex==2.6.5 ; python_full_version < '3.10'
sphinxcontrib-bibtex==2.7.0 ; python_full_version >= '3.10'
sphinxcontrib-devhelp==2.0.0
    # via sphinx
sphinxcontrib-htmlhelp==2.1.0
    # via sphinx
sphinxcontrib-jsmath==1.0.1
    # via sphinx
sphinxcontrib-qthelp==2.0.0
    # via sphinx
sphinxcontrib-serializinghtml==2.0.0
    # via sphinx
stack-data==0.6.3
    # via ipython
starlette==0.49.3 ; python_full_version < '3.10'
    # via sphinx-autobuild
starlette==1.3.1 ; python_full_version >= '3.10'
    # via sphinx-autobuild
stdlib-list==0.12.0 ; python_full_version < '3.10'
    # via sphinx-autoapi
taskipy==1.14.1
terminado==0.18.1
    # via
    #   jupyter-server
    #   jupyter-server-terminals
tinycss2==1.4.0 ; python_full_version < '3.10'
    # via bleach
tinycss2==1.5.1 ; python_full_version >= '3.10'
    # via bleach
tomli==2.4.1 ; python_full_version < '4'
    # via
    #   jupyter-builder
    #   jupyterlab
    #   pytest
    #   sphinx
    #   taskipy
tornado==6.5.7
    # via
    #   ipykernel
    #   jupyter-client
    #   jupyter-server
    #   jupyterlab
    #   terminado
traitlets==5.15.1
    # via
    #   ipykernel
    #   ipython
    #   jupyter-builder
    #   jupyter-client
    #   jupyter-core
    #   jupyter-events
    #   jupyter-server
    #   jupyterlab
    #   matplotlib-inline
    #   nbclient
    #   nbconvert
    #   nbformat
typing-extensions==4.16.0
    # via
    #   anyio
    #   astroid
    #   async-lru
    #   beautifulsoup4
    #   exceptiongroup
    #   flexcache
    #   flexparser
    #   ipython
    #   jupyter-client
    #   mistune
    #   pint
    #   python-json-logger
    #   referencing
    #   starlette
    #   uvicorn
tzdata==2026.2
    # via
    #   arrow
    #   pandas
uc-micro-py==1.0.3 ; python_full_version < '3.10'
    # via linkify-it-py
uc-micro-py==2.0.0 ; python_full_version >= '3.10'
    # via linkify-it-py
uri-template==1.3.0
    # via jsonschema
urllib3==2.6.3 ; python_full_version < '3.10'
    # via requests
urllib3==2.7.0 ; python_full_version >= '3.10'
    # via requests
uvicorn==0.39.0 ; python_full_version < '3.10'
    # via sphinx-autobuild
uvicorn==0.50.2 ; python_full_version >= '3.10'
    # via sphinx-autobuild
watchfiles==1.1.1 ; python_full_version < '3.10'
    # via sphinx-autobuild
watchfiles==1.2.0 ; python_full_version >= '3.10'
    # via sphinx-autobuild
wcwidth==0.8.2
    # via prompt-toolkit
webcolors==24.11.1 ; python_full_version < '3.10'
    # via jsonschema
webcolors==25.10.0 ; python_full_version >= '3.10'
    # via jsonschema
webencodings==0.5.1
    # via
    #   bleach
    #   tinycss2
websocket-client==1.9.0
    # via jupyter-server
websockets==15.0.1 ; python_full_version < '3.10'
    # via sphinx-autobuild
websockets==16.0 ; python_full_version >= '3.10'
    # via sphinx-autobuild
xarray==2024.7.0 ; python_full_version < '3.10'
    # via joseki
xarray==2025.6.1 ; python_full_version == '3.10.*'
    # via joseki
xarray==2026.4.0 ; python_full_version >= '3.11'
    # via joseki
zipp==3.23.1 ; python_full_version < '3.10'
    # via
    #   importlib-metadata
    #   importlib-resources
