# This file was autogenerated by uv via the following command:
#    uv export --format requirements.txt --output-file requirements.txt --no-hashes
-e .
affine==2.4.0
    # via rasterio
anyio==4.12.0
    # via
    #   httpx
    #   jupyter-server
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
asttokens==3.0.1
    # via stack-data
async-lru==2.0.5
    # via jupyterlab
attrs==25.4.0
    # via
    #   jsonschema
    #   rasterio
    #   referencing
babel==2.17.0
    # via jupyterlab-server
beautifulsoup4==4.14.3
    # via nbconvert
black==25.11.0 ; python_full_version < '3.10'
black==25.12.0 ; python_full_version >= '3.10'
bleach==6.2.0 ; python_full_version < '3.10'
    # via nbconvert
bleach==6.3.0 ; python_full_version >= '3.10'
    # via nbconvert
cantera==3.0.1
cartopy==0.25.0 ; python_full_version >= '3.10'
    # via gasnetsim
certifi==2025.11.12
    # via
    #   httpcore
    #   httpx
    #   pyogrio
    #   pyproj
    #   rasterio
    #   requests
cffi==2.0.0
    # via
    #   argon2-cffi-bindings
    #   pyzmq
cfgv==3.4.0 ; python_full_version < '3.10'
    # via pre-commit
cfgv==3.5.0 ; python_full_version >= '3.10'
    # via pre-commit
charset-normalizer==3.4.4
    # via requests
click==8.1.8 ; python_full_version < '3.10'
    # via
    #   black
    #   click-plugins
    #   cligj
    #   mercantile
    #   rasterio
click==8.3.1 ; python_full_version >= '3.10'
    # via
    #   black
    #   click-plugins
    #   cligj
    #   mercantile
    #   rasterio
click-plugins==1.1.1.2
    # via rasterio
cligj==0.7.2
    # via rasterio
colorama==0.4.6 ; sys_platform == 'win32'
    # via
    #   click
    #   ipython
    #   pytest
    #   tqdm
comm==0.2.3
    # via
    #   ipykernel
    #   ipywidgets
contextily==1.6.2 ; python_full_version < '3.10'
    # via gasnetsim
contextily==1.7.0 ; python_full_version >= '3.10'
    # via gasnetsim
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
debugpy==1.8.19
    # via ipykernel
decorator==5.2.1
    # via ipython
defusedxml==0.7.1
    # via nbconvert
distlib==0.4.0
    # via virtualenv
et-xmlfile==2.0.0
    # via openpyxl
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
filelock==3.19.1 ; python_full_version < '3.10'
    # via virtualenv
filelock==3.20.1 ; python_full_version >= '3.10'
    # via virtualenv
fonttools==4.60.2 ; python_full_version < '3.10'
    # via matplotlib
fonttools==4.61.1 ; python_full_version >= '3.10'
    # via matplotlib
fqdn==1.5.1
    # via jsonschema
geographiclib==2.1
    # via geopy
geopandas==1.0.1 ; python_full_version < '3.10'
    # via gasnetsim
geopandas==1.1.2 ; python_full_version >= '3.10'
    # via gasnetsim
geopy==2.4.1
    # via contextily
h11==0.16.0
    # via httpcore
httpcore==1.0.9
    # via httpx
httpx==0.28.1
    # via jupyterlab
identify==2.6.15
    # via pre-commit
idna==3.11
    # via
    #   anyio
    #   httpx
    #   jsonschema
    #   requests
importlib-metadata==8.7.1 ; python_full_version < '3.10'
    # via
    #   jupyter-client
    #   jupyter-lsp
    #   jupyterlab
    #   jupyterlab-server
    #   nbconvert
    #   rasterio
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
ipykernel==6.31.0 ; python_full_version < '3.10'
    # via
    #   jupyter
    #   jupyter-console
    #   jupyterlab
ipykernel==7.1.0 ; python_full_version >= '3.10'
    # via
    #   jupyter
    #   jupyter-console
    #   jupyterlab
ipython==8.18.1 ; python_full_version < '3.10'
    # via
    #   ipykernel
    #   ipywidgets
    #   jupyter-console
ipython==8.37.0 ; python_full_version == '3.10.*'
    # via
    #   ipykernel
    #   ipywidgets
    #   jupyter-console
ipython==9.8.0 ; python_full_version >= '3.11'
    # via
    #   ipykernel
    #   ipywidgets
    #   jupyter-console
ipython-pygments-lexers==1.1.1 ; python_full_version >= '3.11'
    # via ipython
ipywidgets==8.1.8
    # via jupyter
isoduration==20.11.0
    # via jsonschema
jedi==0.19.2
    # via ipython
jinja2==3.1.6
    # via
    #   jupyter-server
    #   jupyterlab
    #   jupyterlab-server
    #   nbconvert
joblib==1.5.3
    # via contextily
json5==0.12.1
    # via jupyterlab-server
jsonpointer==3.0.0
    # via jsonschema
jsonschema==4.25.1
    # via
    #   jupyter-events
    #   jupyterlab-server
    #   nbformat
jsonschema-specifications==2025.9.1
    # via jsonschema
jupyter==1.1.1
jupyter-client==8.6.3 ; python_full_version < '3.10'
    # via
    #   ipykernel
    #   jupyter-console
    #   jupyter-server
    #   nbclient
jupyter-client==8.7.0 ; python_full_version >= '3.10'
    # via
    #   ipykernel
    #   jupyter-console
    #   jupyter-server
    #   nbclient
jupyter-console==6.6.3
    # via jupyter
jupyter-core==5.8.1 ; python_full_version < '3.10'
    # via
    #   ipykernel
    #   jupyter-client
    #   jupyter-console
    #   jupyter-server
    #   jupyterlab
    #   nbclient
    #   nbconvert
    #   nbformat
jupyter-core==5.9.1 ; python_full_version >= '3.10'
    # via
    #   ipykernel
    #   jupyter-client
    #   jupyter-console
    #   jupyter-server
    #   jupyterlab
    #   nbclient
    #   nbconvert
    #   nbformat
jupyter-events==0.12.0
    # via jupyter-server
jupyter-lsp==2.3.0
    # via jupyterlab
jupyter-server==2.17.0
    # via
    #   jupyter-lsp
    #   jupyterlab
    #   jupyterlab-server
    #   notebook
    #   notebook-shim
jupyter-server-terminals==0.5.3
    # via jupyter-server
jupyterlab==4.5.1
    # via
    #   jupyter
    #   notebook
jupyterlab-pygments==0.3.0
    # via nbconvert
jupyterlab-server==2.28.0
    # via
    #   jupyterlab
    #   notebook
jupyterlab-widgets==3.0.16
    # via ipywidgets
kiwisolver==1.4.7 ; python_full_version < '3.10'
    # via matplotlib
kiwisolver==1.4.9 ; python_full_version >= '3.10'
    # via matplotlib
lark==1.3.1
    # via rfc3987-syntax
llvmlite==0.43.0 ; python_full_version < '3.10'
    # via numba
llvmlite==0.46.0 ; python_full_version >= '3.10'
    # via numba
markupsafe==3.0.3
    # via
    #   jinja2
    #   nbconvert
matplotlib==3.9.4 ; python_full_version < '3.10'
    # via
    #   contextily
    #   gasnetsim
    #   seaborn
matplotlib==3.10.8 ; python_full_version >= '3.10'
    # via
    #   cartopy
    #   contextily
    #   gasnetsim
    #   seaborn
matplotlib-inline==0.2.1
    # via
    #   ipykernel
    #   ipython
mercantile==1.2.1
    # via contextily
mistune==3.2.0
    # via nbconvert
mypy-extensions==1.1.0
    # via black
narwhals==2.14.0
    # via plotly
nbclient==0.10.2 ; python_full_version < '3.10'
    # via nbconvert
nbclient==0.10.4 ; python_full_version >= '3.10'
    # via nbconvert
nbconvert==7.16.6
    # via
    #   jupyter
    #   jupyter-server
nbformat==5.10.4
    # via
    #   jupyter-server
    #   nbclient
    #   nbconvert
nest-asyncio==1.6.0
    # via ipykernel
networkx==3.2.1
    # via gasnetsim
nodeenv==1.10.0
    # via pre-commit
notebook==7.5.1
    # via jupyter
notebook-shim==0.2.4
    # via
    #   jupyterlab
    #   notebook
numba==0.60.0 ; python_full_version < '3.10'
    # via gasnetsim
numba==0.63.1 ; python_full_version >= '3.10'
    # via gasnetsim
numpy==1.26.4
    # via
    #   cantera
    #   cartopy
    #   contourpy
    #   gasnetsim
    #   geopandas
    #   matplotlib
    #   numba
    #   pandas
    #   pyogrio
    #   rasterio
    #   scipy
    #   seaborn
    #   shapely
openpyxl==3.1.5
    # via gasnetsim
overrides==7.7.0 ; python_full_version < '3.12'
    # via jupyter-server
packaging==25.0
    # via
    #   black
    #   cartopy
    #   geopandas
    #   ipykernel
    #   jupyter-events
    #   jupyter-server
    #   jupyterlab
    #   jupyterlab-server
    #   matplotlib
    #   nbconvert
    #   plotly
    #   pyogrio
    #   pytest
pandas==2.3.3
    # via
    #   gasnetsim
    #   geopandas
    #   seaborn
pandocfilters==1.5.1
    # via nbconvert
parameterized==0.9.0
parso==0.8.5
    # via jedi
pathspec==0.12.1
    # via black
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
    #   contextily
    #   matplotlib
pillow==12.0.0 ; python_full_version >= '3.10'
    # via
    #   contextily
    #   matplotlib
platformdirs==4.4.0 ; python_full_version < '3.10'
    # via
    #   black
    #   jupyter-core
    #   virtualenv
platformdirs==4.5.1 ; python_full_version >= '3.10'
    # via
    #   black
    #   jupyter-core
    #   virtualenv
plotly==6.5.0
    # via gasnetsim
pluggy==1.6.0
    # via pytest
pre-commit==4.3.0 ; python_full_version < '3.10'
pre-commit==4.5.1 ; python_full_version >= '3.10'
prometheus-client==0.23.1
    # via jupyter-server
prompt-toolkit==3.0.52
    # via
    #   ipython
    #   jupyter-console
psutil==7.2.0
    # via ipykernel
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
pyarrow==21.0.0 ; python_full_version < '3.10'
    # via gasnetsim
pyarrow==22.0.0 ; python_full_version >= '3.10'
    # via gasnetsim
pycparser==2.23 ; implementation_name != 'PyPy'
    # via cffi
pygments==2.19.2
    # via
    #   ipython
    #   ipython-pygments-lexers
    #   jupyter-console
    #   nbconvert
    #   pytest
pyogrio==0.11.1 ; python_full_version < '3.10'
    # via geopandas
pyogrio==0.12.1 ; python_full_version >= '3.10'
    # via geopandas
pyparsing==3.0.9
    # via
    #   gasnetsim
    #   matplotlib
    #   rasterio
pyproj==3.6.1 ; python_full_version < '3.10'
    # via geopandas
pyproj==3.7.1 ; python_full_version == '3.10.*'
    # via
    #   cartopy
    #   geopandas
pyproj==3.7.2 ; python_full_version >= '3.11'
    # via
    #   cartopy
    #   geopandas
pyshp==3.0.3 ; python_full_version >= '3.10'
    # via cartopy
pytest==8.4.2 ; python_full_version < '3.10'
pytest==9.0.2 ; python_full_version >= '3.10'
python-dateutil==2.9.0.post0
    # via
    #   arrow
    #   jupyter-client
    #   matplotlib
    #   pandas
python-json-logger==4.0.0
    # via jupyter-events
pytokens==0.3.0
    # via black
pytz==2025.2
    # via pandas
pywin32==311 ; python_full_version < '3.10' and platform_python_implementation != 'PyPy' and sys_platform == 'win32'
    # via jupyter-core
pywinpty==3.0.2 ; os_name == 'nt'
    # via
    #   jupyter-server
    #   jupyter-server-terminals
    #   terminado
pyyaml==6.0.3
    # via
    #   jupyter-events
    #   pre-commit
pyzmq==27.1.0
    # via
    #   ipykernel
    #   jupyter-client
    #   jupyter-console
    #   jupyter-server
rasterio==1.4.3 ; python_full_version < '3.10'
    # via contextily
rasterio==1.4.4 ; python_full_version >= '3.10'
    # via contextily
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
    # via
    #   contextily
    #   gasnetsim
    #   jupyterlab-server
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
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
ruamel-yaml==0.18.17
    # via cantera
ruamel-yaml-clib==0.2.15 ; platform_python_implementation == 'CPython'
    # via ruamel-yaml
scipy==1.13.1 ; python_full_version < '3.10'
    # via gasnetsim
scipy==1.15.3 ; python_full_version == '3.10.*'
    # via gasnetsim
scipy==1.16.3 ; python_full_version >= '3.11'
    # via gasnetsim
seaborn==0.13.2
    # via gasnetsim
send2trash==1.8.3
    # via jupyter-server
setuptools==80.9.0
    # via jupyterlab
shapely==2.0.7 ; python_full_version < '3.10'
    # via
    #   gasnetsim
    #   geopandas
shapely==2.1.2 ; python_full_version >= '3.10'
    # via
    #   cartopy
    #   gasnetsim
    #   geopandas
six==1.17.0
    # via
    #   python-dateutil
    #   rfc3339-validator
soupsieve==2.8.1
    # via beautifulsoup4
stack-data==0.6.3
    # via ipython
terminado==0.18.1
    # via
    #   jupyter-server
    #   jupyter-server-terminals
tinycss2==1.4.0
    # via bleach
tomli==2.3.0 ; python_full_version < '3.11'
    # via
    #   black
    #   jupyterlab
    #   pytest
tornado==6.5.4
    # via
    #   ipykernel
    #   jupyter-client
    #   jupyter-server
    #   jupyterlab
    #   notebook
    #   terminado
tqdm==4.67.1
    # via gasnetsim
traitlets==5.14.3
    # via
    #   ipykernel
    #   ipython
    #   ipywidgets
    #   jupyter-client
    #   jupyter-console
    #   jupyter-core
    #   jupyter-events
    #   jupyter-server
    #   jupyterlab
    #   matplotlib-inline
    #   nbclient
    #   nbconvert
    #   nbformat
typing-extensions==4.15.0
    # via
    #   anyio
    #   async-lru
    #   beautifulsoup4
    #   black
    #   exceptiongroup
    #   ipython
    #   mistune
    #   python-json-logger
    #   referencing
    #   virtualenv
tzdata==2025.3
    # via
    #   arrow
    #   pandas
uri-template==1.3.0
    # via jsonschema
urllib3==2.6.2
    # via requests
virtualenv==20.35.4
    # via pre-commit
wcwidth==0.2.14
    # 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
widgetsnbextension==4.0.15
    # via ipywidgets
xyzservices==2025.11.0
    # via contextily
zipp==3.23.0 ; python_full_version < '3.10'
    # via
    #   importlib-metadata
    #   importlib-resources
