Dependencies
Tree
flowchart LR
classDef missing stroke-dasharray: 5
annotated-types["annotated-types\n0.7.0"]
asttokens["asttokens\n2.4.1"]
bottleneck["Bottleneck\n1.6.0"]
cachetools["cachetools\n6.2.2"]
certifi["certifi\n2025.11.12"]
charset-normalizer["charset-normalizer\n3.4.4"]
click_0["click\n8.1.8"]
cloudpickle["cloudpickle\n3.1.1"]
colorama["colorama\n0.4.6"]
compress-pickle["compress-pickle\n2.1.0"]
contourpy["contourpy\n1.3.3"]
cycler["cycler\n0.12.1"]
dask["dask\n2025.11.0"]
devtools["devtools\n0.12.2"]
distributed["distributed\n2025.11.0"]
donfig["donfig\n0.8.1.post1"]
ephem["ephem\n4.2"]
executing["executing\n2.2.1"]
fonttools["fonttools\n4.61.0"]
fsspec["fsspec\n2025.7.0"]
google-crc32c["google-crc32c\n1.7.1"]
gravis["gravis\n0.1.1"]
h5netcdf["h5netcdf\n1.4.0"]
h5py["h5py\n3.15.1"]
idna["idna\n3.11"]
importlib-metadata["importlib_metadata\n8.7.0"]
jinja2["Jinja2\n3.1.6"]
jplephem["jplephem\n2.23"]
kiwisolver["kiwisolver\n1.4.9"]
llvmlite["llvmlite\n0.43.0"]
locket["locket\n1.0.0"]
loguru["loguru\n0.7.3"]
markdown-it-py["markdown-it-py\n4.0.0"]
markupsafe["MarkupSafe\n3.0.3"]
matplotlib["matplotlib\n3.10.7"]
mdurl["mdurl\n0.1.2"]
msgpack["msgpack\n1.1.2"]
networkx["networkx\n3.6"]
numba["numba\n0.60.0"]
numcodecs["numcodecs\n0.16.5"]
numpy["numpy\n2.0.2"]
orjson["orjson\n3.11.4"]
packaging["packaging\n25.0"]
pandas["pandas\n2.3.3"]
partd["partd\n1.4.2"]
pillow["pillow\n12.0.0"]
polars-runtime-32["polars-runtime-32\n1.35.2"]
polars["polars\n1.35.2"]
psutil["psutil\n7.1.3"]
pvgisprototype["pvgisprototype\n0.1.dev93+g63d51f564.d20251201"]
pvlib["pvlib\n0.13.1"]
pyarrow["pyarrow\n21.0.0"]
pydantic-core["pydantic_core\n2.41.5"]
pydantic-numpy["pydantic_numpy\n6.0.1"]
pydantic-settings["pydantic-settings\n2.12.0"]
pydantic["pydantic\n2.12.5"]
pygments["Pygments\n2.19.2"]
pyparsing["pyparsing\n3.2.5"]
pysolar["pysolar\n0.13"]
python-dateutil["python-dateutil\n2.9.0.post0"]
python-dotenv["python-dotenv\n1.2.1"]
pytz["pytz\n2025.2"]
pyyaml["PyYAML\n6.0.3"]
qrcode["qrcode\n8.2"]
readchar["readchar\n4.2.1"]
requests["requests\n2.32.5"]
rich["rich\n14.2.0"]
richuru["richuru\n0.1.1"]
ruamel-yaml-clib["ruamel.yaml.clib\n0.2.15"]
ruamel-yaml["ruamel.yaml\n0.18.16"]
scipy["scipy\n1.16.3"]
seaborn["seaborn\n0.13.2"]
semver["semver\n3.0.4"]
setuptools["setuptools\n80.9.0"]
sgp4["sgp4\n2.25"]
shellingham["shellingham\n1.5.4"]
simpleeval["simpleeval\n1.0.3"]
six["six\n1.17.0"]
skyfield["skyfield\n1.53"]
sortedcontainers["sortedcontainers\n2.4.0"]
sparklines["sparklines\n0.7.0"]
suncalc["suncalc\n0.1.3"]
tblib["tblib\n3.2.2"]
termcolor["termcolor\n3.2.0"]
toolz["toolz\n1.1.0"]
tornado["tornado\n6.5.2"]
typer["typer\n0.15.1"]
typing-extensions["typing_extensions\n4.15.0"]
typing-inspection["typing-inspection\n0.4.2"]
tzdata["tzdata\n2025.2"]
uniplot["uniplot\n0.21.4"]
urllib3["urllib3\n2.5.0"]
xarray-extras["xarray_extras\n0.6.0"]
xarray["xarray\n2025.8.0"]
zarr["zarr\n3.1.1"]
zict["zict\n3.0.0"]
zipp["zipp\n3.23.0"]
asttokens -- ">=1.12.0" --> six
bottleneck -- "any" --> numpy
contourpy -- ">=1.25" --> numpy
dask -- ">=0.10.0" --> toolz
dask -- ">=1.4.0" --> partd
dask -- ">=20.0" --> packaging
dask -- ">=2021.09.0" --> fsspec
dask -- ">=3.0.0" --> cloudpickle
dask -- ">=4.13.0" --> importlib-metadata
dask -- ">=5.3.1" --> pyyaml
dask -- ">=8.1" --> click_0
devtools -- ">=1.1.1" --> executing
devtools -- ">=2.0.0,<3.0.0" --> asttokens
devtools -- ">=2.15.0" --> pygments
distributed -- "==2025.11.0" --> dask
distributed -- ">=0.11.2" --> toolz
distributed -- ">=1.0.0" --> locket
distributed -- ">=1.0.2" --> msgpack
distributed -- ">=1.26.5" --> urllib3
distributed -- ">=1.6.0" --> tblib
distributed -- ">=2.0.5" --> sortedcontainers
distributed -- ">=2.10.3" --> jinja2
distributed -- ">=20.0" --> packaging
distributed -- ">=3.0.0" --> cloudpickle
distributed -- ">=3.0.0" --> zict
distributed -- ">=5.4.1" --> pyyaml
distributed -- ">=5.8.0" --> psutil
distributed -- ">=6.2.0" --> tornado
distributed -- ">=8.0" --> click_0
donfig -- "any" --> pyyaml
gravis -- ">=40.0" --> setuptools
h5netcdf -- "any" --> h5py
h5netcdf -- "any" --> packaging
h5py -- ">=1.21.2" --> numpy
importlib-metadata -- ">=3.20" --> zipp
jinja2 -- ">=2.0" --> markupsafe
jplephem -- "any" --> numpy
markdown-it-py -- "~=0.1" --> mdurl
matplotlib -- ">=0.10" --> cycler
matplotlib -- ">=1.0.1" --> contourpy
matplotlib -- ">=1.23" --> numpy
matplotlib -- ">=1.3.1" --> kiwisolver
matplotlib -- ">=2.7" --> python-dateutil
matplotlib -- ">=20.0" --> packaging
matplotlib -- ">=3" --> pyparsing
matplotlib -- ">=4.22.0" --> fonttools
matplotlib -- ">=8" --> pillow
numba -- ">=0.43.0dev0,<0.44" --> llvmlite
numba -- ">=1.22,<2.1" --> numpy
numcodecs -- ">=1.24" --> numpy
numcodecs -- "any" --> typing-extensions
pandas -- ">=1.23.2" --> numpy
pandas -- ">=2.8.2" --> python-dateutil
pandas -- ">=2020.1" --> pytz
pandas -- ">=2022.7" --> tzdata
partd -- "any" --> locket
partd -- "any" --> toolz
polars -- "==1.35.2" --> polars-runtime-32
pvgisprototype -- "==0.15.1" --> typer
pvgisprototype -- "==0.21.4" --> uniplot
pvgisprototype -- "==0.6.0" --> xarray-extras
pvgisprototype -- "==0.60.0" --> numba
pvgisprototype -- "==0.7.0" --> sparklines
pvgisprototype -- "==1.4.0" --> h5netcdf
pvgisprototype -- "==2025.7.0" --> fsspec
pvgisprototype -- "==2025.8.0" --> xarray
pvgisprototype -- "==21.0.0" --> pyarrow
pvgisprototype -- "==3.1.1" --> cloudpickle
pvgisprototype -- "==3.1.1" --> zarr
pvgisprototype -- "==3.23.0" --> zipp
pvgisprototype -- "==6.0.1" --> pydantic-numpy
pvgisprototype -- "==8.1.8" --> click_0
pvgisprototype -- ">0.7.2" --> loguru
pvgisprototype -- ">6.4" --> tornado
pvgisprototype -- ">=0.12.2" --> devtools
pvgisprototype -- ">=0.13.2" --> seaborn
pvgisprototype -- ">=0.4.6" --> colorama
pvgisprototype -- ">=0.43.0" --> llvmlite
pvgisprototype -- ">=1.0.3" --> simpleeval
pvgisprototype -- ">=1.4.0" --> bottleneck
pvgisprototype -- ">=1.9.0" --> polars
pvgisprototype -- ">=2.5.2" --> pydantic-settings
pvgisprototype -- ">=2025.8.3" --> certifi
pvgisprototype -- ">=3.5" --> networkx
pvgisprototype -- ">=80" --> setuptools
pvgisprototype -- "any" --> cachetools
pvgisprototype -- "any" --> distributed
pvgisprototype -- "any" --> ephem
pvgisprototype -- "any" --> google-crc32c
pvgisprototype -- "any" --> gravis
pvgisprototype -- "any" --> matplotlib
pvgisprototype -- "any" --> orjson
pvgisprototype -- "any" --> pandas
pvgisprototype -- "any" --> pvlib
pvgisprototype -- "any" --> pydantic
pvgisprototype -- "any" --> pysolar
pvgisprototype -- "any" --> qrcode
pvgisprototype -- "any" --> rich
pvgisprototype -- "any" --> richuru
pvgisprototype -- "any" --> skyfield
pvgisprototype -- "any" --> suncalc
pvlib -- ">=1.21.2" --> numpy
pvlib -- ">=1.3.3" --> pandas
pvlib -- ">=1.7.2" --> scipy
pvlib -- "any" --> h5py
pvlib -- "any" --> pytz
pvlib -- "any" --> requests
pydantic -- "==2.41.5" --> pydantic-core
pydantic -- ">=0.4.2" --> typing-inspection
pydantic -- ">=0.6.0" --> annotated-types
pydantic -- ">=4.14.1" --> typing-extensions
pydantic-core -- ">=4.14.1" --> typing-extensions
pydantic-numpy -- ">=0.18.5,<0.19.0" --> ruamel-yaml
pydantic-numpy -- ">=2.0,<3.0" --> pydantic
pydantic-numpy -- ">=2.0.0" --> numpy
pydantic-numpy -- ">=3.0.1,<4.0.0" --> semver
pydantic-numpy -- "any" --> compress-pickle
pydantic-settings -- ">=0.21.0" --> python-dotenv
pydantic-settings -- ">=0.4.0" --> typing-inspection
pydantic-settings -- ">=2.7.0" --> pydantic
pysolar -- "any" --> numpy
python-dateutil -- ">=1.5" --> six
requests -- ">=1.21.1,<3" --> urllib3
requests -- ">=2,<4" --> charset-normalizer
requests -- ">=2.5,<4" --> idna
requests -- ">=2017.4.17" --> certifi
rich -- ">=2.13.0,<3.0.0" --> pygments
rich -- ">=2.2.0" --> markdown-it-py
richuru -- ">=0.6.0" --> loguru
richuru -- ">=12.4.4" --> rich
ruamel-yaml -- ">=0.2.7" --> ruamel-yaml-clib
scipy -- ">=1.25.2,<2.6" --> numpy
seaborn -- ">=1.2" --> pandas
seaborn -- ">=1.20,!=1.24.0" --> numpy
seaborn -- ">=3.4,!=3.6.1" --> matplotlib
skyfield -- ">=2.13" --> jplephem
skyfield -- ">=2.13" --> sgp4
skyfield -- ">=2017.4.17" --> certifi
skyfield -- "any" --> numpy
sparklines -- ">=2.4.0" --> termcolor
suncalc -- "any" --> numpy
typer -- ">=1.3.0" --> shellingham
typer -- ">=10.11.0" --> rich
typer -- ">=3.7.4.3" --> typing-extensions
typer -- ">=8.0.0" --> click_0
typing-inspection -- ">=4.12.0" --> typing-extensions
uniplot -- ">=1.22.0" --> numpy
uniplot -- ">=4.2.1" --> readchar
xarray -- ">=1.26" --> numpy
xarray -- ">=2.2" --> pandas
xarray -- ">=24.1" --> packaging
xarray-extras -- ">=0.56" --> numba
xarray-extras -- ">=1.23" --> numpy
xarray-extras -- ">=1.5" --> pandas
xarray-extras -- ">=1.9" --> scipy
xarray-extras -- ">=2022.11.0" --> xarray
xarray-extras -- ">=2022.6.0" --> dask
zarr -- ">=0.14" --> numcodecs
zarr -- ">=0.8" --> donfig
zarr -- ">=1.26" --> numpy
zarr -- ">=22.0" --> packaging
zarr -- ">=4.9" --> typing-extensions
flowchart TD
classDef missing stroke-dasharray: 5
annotated-types["annotated-types\n0.7.0"]
asttokens["asttokens\n2.4.1"]
bottleneck["Bottleneck\n1.6.0"]
cachetools["cachetools\n6.2.2"]
certifi["certifi\n2025.11.12"]
charset-normalizer["charset-normalizer\n3.4.4"]
click_0["click\n8.1.8"]
cloudpickle["cloudpickle\n3.1.1"]
colorama["colorama\n0.4.6"]
compress-pickle["compress-pickle\n2.1.0"]
contourpy["contourpy\n1.3.3"]
cycler["cycler\n0.12.1"]
dask["dask\n2025.11.0"]
devtools["devtools\n0.12.2"]
distributed["distributed\n2025.11.0"]
donfig["donfig\n0.8.1.post1"]
ephem["ephem\n4.2"]
executing["executing\n2.2.1"]
fonttools["fonttools\n4.61.0"]
fsspec["fsspec\n2025.7.0"]
google-crc32c["google-crc32c\n1.7.1"]
gravis["gravis\n0.1.1"]
h5netcdf["h5netcdf\n1.4.0"]
h5py["h5py\n3.15.1"]
idna["idna\n3.11"]
importlib-metadata["importlib_metadata\n8.7.0"]
jinja2["Jinja2\n3.1.6"]
jplephem["jplephem\n2.23"]
kiwisolver["kiwisolver\n1.4.9"]
llvmlite["llvmlite\n0.43.0"]
locket["locket\n1.0.0"]
loguru["loguru\n0.7.3"]
markdown-it-py["markdown-it-py\n4.0.0"]
markupsafe["MarkupSafe\n3.0.3"]
matplotlib["matplotlib\n3.10.7"]
mdurl["mdurl\n0.1.2"]
msgpack["msgpack\n1.1.2"]
networkx["networkx\n3.6"]
numba["numba\n0.60.0"]
numcodecs["numcodecs\n0.16.5"]
numpy["numpy\n2.0.2"]
orjson["orjson\n3.11.4"]
packaging["packaging\n25.0"]
pandas["pandas\n2.3.3"]
partd["partd\n1.4.2"]
pillow["pillow\n12.0.0"]
polars-runtime-32["polars-runtime-32\n1.35.2"]
polars["polars\n1.35.2"]
psutil["psutil\n7.1.3"]
pvgisprototype["pvgisprototype\n0.1.dev93+g63d51f564.d20251201"]
pvlib["pvlib\n0.13.1"]
pyarrow["pyarrow\n21.0.0"]
pydantic-core["pydantic_core\n2.41.5"]
pydantic-numpy["pydantic_numpy\n6.0.1"]
pydantic-settings["pydantic-settings\n2.12.0"]
pydantic["pydantic\n2.12.5"]
pygments["Pygments\n2.19.2"]
pyparsing["pyparsing\n3.2.5"]
pysolar["pysolar\n0.13"]
python-dateutil["python-dateutil\n2.9.0.post0"]
python-dotenv["python-dotenv\n1.2.1"]
pytz["pytz\n2025.2"]
pyyaml["PyYAML\n6.0.3"]
qrcode["qrcode\n8.2"]
readchar["readchar\n4.2.1"]
requests["requests\n2.32.5"]
rich["rich\n14.2.0"]
richuru["richuru\n0.1.1"]
ruamel-yaml-clib["ruamel.yaml.clib\n0.2.15"]
ruamel-yaml["ruamel.yaml\n0.18.16"]
scipy["scipy\n1.16.3"]
seaborn["seaborn\n0.13.2"]
semver["semver\n3.0.4"]
setuptools["setuptools\n80.9.0"]
sgp4["sgp4\n2.25"]
shellingham["shellingham\n1.5.4"]
simpleeval["simpleeval\n1.0.3"]
six["six\n1.17.0"]
skyfield["skyfield\n1.53"]
sortedcontainers["sortedcontainers\n2.4.0"]
sparklines["sparklines\n0.7.0"]
suncalc["suncalc\n0.1.3"]
tblib["tblib\n3.2.2"]
termcolor["termcolor\n3.2.0"]
toolz["toolz\n1.1.0"]
tornado["tornado\n6.5.2"]
typer["typer\n0.15.1"]
typing-extensions["typing_extensions\n4.15.0"]
typing-inspection["typing-inspection\n0.4.2"]
tzdata["tzdata\n2025.2"]
uniplot["uniplot\n0.21.4"]
urllib3["urllib3\n2.5.0"]
xarray-extras["xarray_extras\n0.6.0"]
xarray["xarray\n2025.8.0"]
zarr["zarr\n3.1.1"]
zict["zict\n3.0.0"]
zipp["zipp\n3.23.0"]
asttokens -- ">=1.12.0" --> six
bottleneck -- "any" --> numpy
contourpy -- ">=1.25" --> numpy
dask -- ">=0.10.0" --> toolz
dask -- ">=1.4.0" --> partd
dask -- ">=20.0" --> packaging
dask -- ">=2021.09.0" --> fsspec
dask -- ">=3.0.0" --> cloudpickle
dask -- ">=4.13.0" --> importlib-metadata
dask -- ">=5.3.1" --> pyyaml
dask -- ">=8.1" --> click_0
devtools -- ">=1.1.1" --> executing
devtools -- ">=2.0.0,<3.0.0" --> asttokens
devtools -- ">=2.15.0" --> pygments
distributed -- "==2025.11.0" --> dask
distributed -- ">=0.11.2" --> toolz
distributed -- ">=1.0.0" --> locket
distributed -- ">=1.0.2" --> msgpack
distributed -- ">=1.26.5" --> urllib3
distributed -- ">=1.6.0" --> tblib
distributed -- ">=2.0.5" --> sortedcontainers
distributed -- ">=2.10.3" --> jinja2
distributed -- ">=20.0" --> packaging
distributed -- ">=3.0.0" --> cloudpickle
distributed -- ">=3.0.0" --> zict
distributed -- ">=5.4.1" --> pyyaml
distributed -- ">=5.8.0" --> psutil
distributed -- ">=6.2.0" --> tornado
distributed -- ">=8.0" --> click_0
donfig -- "any" --> pyyaml
gravis -- ">=40.0" --> setuptools
h5netcdf -- "any" --> h5py
h5netcdf -- "any" --> packaging
h5py -- ">=1.21.2" --> numpy
importlib-metadata -- ">=3.20" --> zipp
jinja2 -- ">=2.0" --> markupsafe
jplephem -- "any" --> numpy
markdown-it-py -- "~=0.1" --> mdurl
matplotlib -- ">=0.10" --> cycler
matplotlib -- ">=1.0.1" --> contourpy
matplotlib -- ">=1.23" --> numpy
matplotlib -- ">=1.3.1" --> kiwisolver
matplotlib -- ">=2.7" --> python-dateutil
matplotlib -- ">=20.0" --> packaging
matplotlib -- ">=3" --> pyparsing
matplotlib -- ">=4.22.0" --> fonttools
matplotlib -- ">=8" --> pillow
numba -- ">=0.43.0dev0,<0.44" --> llvmlite
numba -- ">=1.22,<2.1" --> numpy
numcodecs -- ">=1.24" --> numpy
numcodecs -- "any" --> typing-extensions
pandas -- ">=1.23.2" --> numpy
pandas -- ">=2.8.2" --> python-dateutil
pandas -- ">=2020.1" --> pytz
pandas -- ">=2022.7" --> tzdata
partd -- "any" --> locket
partd -- "any" --> toolz
polars -- "==1.35.2" --> polars-runtime-32
pvgisprototype -- "==0.15.1" --> typer
pvgisprototype -- "==0.21.4" --> uniplot
pvgisprototype -- "==0.6.0" --> xarray-extras
pvgisprototype -- "==0.60.0" --> numba
pvgisprototype -- "==0.7.0" --> sparklines
pvgisprototype -- "==1.4.0" --> h5netcdf
pvgisprototype -- "==2025.7.0" --> fsspec
pvgisprototype -- "==2025.8.0" --> xarray
pvgisprototype -- "==21.0.0" --> pyarrow
pvgisprototype -- "==3.1.1" --> cloudpickle
pvgisprototype -- "==3.1.1" --> zarr
pvgisprototype -- "==3.23.0" --> zipp
pvgisprototype -- "==6.0.1" --> pydantic-numpy
pvgisprototype -- "==8.1.8" --> click_0
pvgisprototype -- ">0.7.2" --> loguru
pvgisprototype -- ">6.4" --> tornado
pvgisprototype -- ">=0.12.2" --> devtools
pvgisprototype -- ">=0.13.2" --> seaborn
pvgisprototype -- ">=0.4.6" --> colorama
pvgisprototype -- ">=0.43.0" --> llvmlite
pvgisprototype -- ">=1.0.3" --> simpleeval
pvgisprototype -- ">=1.4.0" --> bottleneck
pvgisprototype -- ">=1.9.0" --> polars
pvgisprototype -- ">=2.5.2" --> pydantic-settings
pvgisprototype -- ">=2025.8.3" --> certifi
pvgisprototype -- ">=3.5" --> networkx
pvgisprototype -- ">=80" --> setuptools
pvgisprototype -- "any" --> cachetools
pvgisprototype -- "any" --> distributed
pvgisprototype -- "any" --> ephem
pvgisprototype -- "any" --> google-crc32c
pvgisprototype -- "any" --> gravis
pvgisprototype -- "any" --> matplotlib
pvgisprototype -- "any" --> orjson
pvgisprototype -- "any" --> pandas
pvgisprototype -- "any" --> pvlib
pvgisprototype -- "any" --> pydantic
pvgisprototype -- "any" --> pysolar
pvgisprototype -- "any" --> qrcode
pvgisprototype -- "any" --> rich
pvgisprototype -- "any" --> richuru
pvgisprototype -- "any" --> skyfield
pvgisprototype -- "any" --> suncalc
pvlib -- ">=1.21.2" --> numpy
pvlib -- ">=1.3.3" --> pandas
pvlib -- ">=1.7.2" --> scipy
pvlib -- "any" --> h5py
pvlib -- "any" --> pytz
pvlib -- "any" --> requests
pydantic -- "==2.41.5" --> pydantic-core
pydantic -- ">=0.4.2" --> typing-inspection
pydantic -- ">=0.6.0" --> annotated-types
pydantic -- ">=4.14.1" --> typing-extensions
pydantic-core -- ">=4.14.1" --> typing-extensions
pydantic-numpy -- ">=0.18.5,<0.19.0" --> ruamel-yaml
pydantic-numpy -- ">=2.0,<3.0" --> pydantic
pydantic-numpy -- ">=2.0.0" --> numpy
pydantic-numpy -- ">=3.0.1,<4.0.0" --> semver
pydantic-numpy -- "any" --> compress-pickle
pydantic-settings -- ">=0.21.0" --> python-dotenv
pydantic-settings -- ">=0.4.0" --> typing-inspection
pydantic-settings -- ">=2.7.0" --> pydantic
pysolar -- "any" --> numpy
python-dateutil -- ">=1.5" --> six
requests -- ">=1.21.1,<3" --> urllib3
requests -- ">=2,<4" --> charset-normalizer
requests -- ">=2.5,<4" --> idna
requests -- ">=2017.4.17" --> certifi
rich -- ">=2.13.0,<3.0.0" --> pygments
rich -- ">=2.2.0" --> markdown-it-py
richuru -- ">=0.6.0" --> loguru
richuru -- ">=12.4.4" --> rich
ruamel-yaml -- ">=0.2.7" --> ruamel-yaml-clib
scipy -- ">=1.25.2,<2.6" --> numpy
seaborn -- ">=1.2" --> pandas
seaborn -- ">=1.20,!=1.24.0" --> numpy
seaborn -- ">=3.4,!=3.6.1" --> matplotlib
skyfield -- ">=2.13" --> jplephem
skyfield -- ">=2.13" --> sgp4
skyfield -- ">=2017.4.17" --> certifi
skyfield -- "any" --> numpy
sparklines -- ">=2.4.0" --> termcolor
suncalc -- "any" --> numpy
typer -- ">=1.3.0" --> shellingham
typer -- ">=10.11.0" --> rich
typer -- ">=3.7.4.3" --> typing-extensions
typer -- ">=8.0.0" --> click_0
typing-inspection -- ">=4.12.0" --> typing-extensions
uniplot -- ">=1.22.0" --> numpy
uniplot -- ">=4.2.1" --> readchar
xarray -- ">=1.26" --> numpy
xarray -- ">=2.2" --> pandas
xarray -- ">=24.1" --> packaging
xarray-extras -- ">=0.56" --> numba
xarray-extras -- ">=1.23" --> numpy
xarray-extras -- ">=1.5" --> pandas
xarray-extras -- ">=1.9" --> scipy
xarray-extras -- ">=2022.11.0" --> xarray
xarray-extras -- ">=2022.6.0" --> dask
zarr -- ">=0.14" --> numcodecs
zarr -- ">=0.8" --> donfig
zarr -- ">=1.26" --> numpy
zarr -- ">=22.0" --> packaging
zarr -- ">=4.9" --> typing-extensions