Dependencies
Dependency tree¶
These diagrams are generated at build time. They reflect the
installed pvgis package and its resolved dependencies in that environment
(pipdeptree is required).
Left–right layout¶
Easier to scan on wide screens.
flowchart LR
classDef missing stroke-dasharray: 5
annotated-doc["annotated-doc<br/>0.0.5"]
annotated-types["annotated-types<br/>0.8.0"]
asttokens["asttokens<br/>2.4.1"]
bottleneck["Bottleneck<br/>1.6.0"]
cachetools["cachetools<br/>7.1.7"]
certifi["certifi<br/>2026.7.22"]
charset-normalizer["charset-normalizer<br/>3.4.9"]
click_0["click<br/>8.1.7"]
cloudpickle["cloudpickle<br/>3.1.2"]
compress-pickle["compress-pickle<br/>2.1.0"]
contourpy["contourpy<br/>1.3.3"]
crc32c["crc32c<br/>2.8"]
cycler["cycler<br/>0.12.1"]
dask["dask<br/>2026.7.1"]
devtools["devtools<br/>0.12.2"]
distributed["distributed<br/>2026.7.1"]
donfig["donfig<br/>0.8.1.post1"]
ephem["ephem<br/>4.2.1"]
executing["executing<br/>2.2.1"]
fonttools["fonttools<br/>4.63.0"]
fsspec["fsspec<br/>2026.7.0"]
geopandas["geopandas<br/>1.1.4"]
h5netcdf["h5netcdf<br/>1.8.1"]
h5py["h5py<br/>3.16.0"]
idna["idna<br/>3.18"]
importlib-metadata["importlib_metadata<br/>9.0.0"]
jinja2["Jinja2<br/>3.1.6"]
jplephem["jplephem<br/>2.24"]
kiwisolver["kiwisolver<br/>1.5.0"]
llvmlite["llvmlite<br/>0.48.0"]
locket["locket<br/>1.0.0"]
loguru["loguru<br/>0.7.3"]
lz4["lz4<br/>4.4.5"]
markdown-it-py["markdown-it-py<br/>4.2.0"]
markupsafe["MarkupSafe<br/>3.0.3"]
matplotlib["matplotlib<br/>3.11.1"]
mdurl["mdurl<br/>0.1.2"]
msgpack["msgpack<br/>1.2.1"]
numba["numba<br/>0.66.0"]
numcodecs["numcodecs<br/>0.16.5"]
numpy["numpy<br/>2.4.6"]
orjson["orjson<br/>3.11.9"]
packaging["packaging<br/>26.3"]
pandas["pandas<br/>3.0.5"]
partd["partd<br/>1.4.2"]
pillow["pillow<br/>12.3.0"]
polars-runtime-32["polars-runtime-32<br/>1.43.2"]
polars["polars<br/>1.43.2"]
psutil["psutil<br/>7.2.2"]
pvgis["pvgis<br/>0.1.dev150+ge2ee93156"]
pvlib["pvlib<br/>0.15.2"]
pyarrow["pyarrow<br/>25.0.0"]
pydantic-core["pydantic_core<br/>2.41.5"]
pydantic-numpy["pydantic-numpy<br/>9.0.2"]
pydantic-settings["pydantic-settings<br/>2.15.0"]
pydantic["pydantic<br/>2.12.5"]
pygments["Pygments<br/>2.20.0"]
pyogrio["pyogrio<br/>0.13.0"]
pyparsing["pyparsing<br/>3.3.2"]
pyproj["pyproj<br/>3.7.2"]
pysolar["pysolar<br/>0.13"]
python-dateutil["python-dateutil<br/>2.9.0.post0"]
python-dotenv["python-dotenv<br/>1.2.2"]
pytz["pytz<br/>2026.3.post1"]
pyyaml["PyYAML<br/>6.0.3"]
qrcode["qrcode<br/>8.2"]
readchar["readchar<br/>4.2.2"]
requests["requests<br/>2.34.2"]
rich["rich<br/>15.0.0"]
richuru["richuru<br/>0.1.1"]
ruamel-yaml-clib["ruamel.yaml.clib<br/>0.2.15"]
ruamel-yaml["ruamel.yaml<br/>0.18.0"]
scipy["scipy<br/>1.17.1"]
seaborn["seaborn<br/>0.13.2"]
semver["semver<br/>3.0.4"]
sgp4["sgp4<br/>2.27"]
shapely["shapely<br/>2.1.2"]
shellingham["shellingham<br/>1.5.4"]
six["six<br/>1.17.0"]
skyfield["skyfield<br/>1.54"]
sortedcontainers["sortedcontainers<br/>2.4.0"]
sparklines["sparklines<br/>1.0.0"]
suncalc["suncalc<br/>0.1.3"]
tblib["tblib<br/>3.2.2"]
termcolor["termcolor<br/>3.3.0"]
toolz["toolz<br/>1.1.0"]
tornado["tornado<br/>6.5.8"]
typer["typer<br/>0.27.1"]
typing-extensions["typing_extensions<br/>4.16.0"]
typing-inspection["typing-inspection<br/>0.4.2"]
uniplot["uniplot<br/>0.23.2"]
urllib3["urllib3<br/>2.7.0"]
xarray-extras["xarray_extras<br/>0.6.0"]
xarray["xarray<br/>2025.4.0"]
zarr["zarr<br/>3.0.10"]
zict["zict<br/>3.0.0"]
zipp["zipp<br/>4.1.0"]
asttokens -- ">=1.12.0" --> six
bottleneck -- "any" --> numpy
compress-pickle -- "[lz4] any" --> lz4
contourpy -- ">=1.25" --> numpy
dask -- ">=0.12.0" --> toolz
dask -- ">=1.4.0" --> partd
dask -- ">=20.0" --> packaging
dask -- ">=2021.9.0" --> fsspec
dask -- ">=3.0.0" --> cloudpickle
dask -- ">=4.13.0" --> importlib-metadata
dask -- ">=5.4.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 -- ">=0.12.0" --> toolz
distributed -- ">=1.0.0" --> locket
distributed -- ">=1.0.2" --> msgpack
distributed -- ">=1.6.0,!=3.2.0,!=3.2.1" --> tblib
distributed -- ">=2.0.5" --> sortedcontainers
distributed -- ">=2.10.3" --> jinja2
distributed -- ">=20.0" --> packaging
distributed -- ">=2026.7.1,<2026.7.2" --> dask
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
geopandas -- ">=0.7.2" --> pyogrio
geopandas -- ">=1.24" --> numpy
geopandas -- ">=2.0.0" --> pandas
geopandas -- ">=2.0.0" --> shapely
geopandas -- ">=3.5.0" --> pyproj
geopandas -- "any" --> packaging
h5netcdf -- "any" --> numpy
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.25" --> numpy
matplotlib -- ">=1.3.1" --> kiwisolver
matplotlib -- ">=2.7" --> python-dateutil
matplotlib -- ">=20.0" --> packaging
matplotlib -- ">=3" --> pyparsing
matplotlib -- ">=4.28.2" --> fonttools
matplotlib -- ">=9" --> pillow
numba -- ">=0.48.0.dev0,<0.49" --> llvmlite
numba -- ">=1.22,<2.5" --> numpy
numcodecs -- ">=1.24" --> numpy
numcodecs -- "[crc32c] >=2.7" --> crc32c
numcodecs -- "any" --> typing-extensions
pandas -- ">=1.26.0" --> numpy
pandas -- ">=2.8.2" --> python-dateutil
partd -- "any" --> locket
partd -- "any" --> toolz
polars -- "==1.43.2" --> polars-runtime-32
pvgis -- "==2025.4.0" --> xarray
pvgis -- "==3.0.10" --> zarr
pvgis -- "==8.1.7" --> click_0
pvgis -- ">=0.13.2" --> seaborn
pvgis -- ">=0.14.0" --> geopandas
pvgis -- ">=1.9.0" --> polars
pvgis -- ">=2.0.0" --> shapely
pvgis -- ">=2.5.2" --> pydantic-settings
pvgis -- "any" --> bottleneck
pvgis -- "any" --> cachetools
pvgis -- "any" --> devtools
pvgis -- "any" --> distributed
pvgis -- "any" --> ephem
pvgis -- "any" --> h5netcdf
pvgis -- "any" --> llvmlite
pvgis -- "any" --> loguru
pvgis -- "any" --> matplotlib
pvgis -- "any" --> numpy
pvgis -- "any" --> orjson
pvgis -- "any" --> pandas
pvgis -- "any" --> pvlib
pvgis -- "any" --> pyarrow
pvgis -- "any" --> pydantic
pvgis -- "any" --> pydantic-numpy
pvgis -- "any" --> pysolar
pvgis -- "any" --> qrcode
pvgis -- "any" --> rich
pvgis -- "any" --> richuru
pvgis -- "any" --> skyfield
pvgis -- "any" --> sparklines
pvgis -- "any" --> suncalc
pvgis -- "any" --> typer
pvgis -- "any" --> uniplot
pvgis -- "any" --> xarray-extras
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" --> ruamel-yaml
pydantic-numpy -- ">=2.3.5,<3" --> numpy
pydantic-numpy -- "any" --> compress-pickle
pydantic-numpy -- "~=2.12.5" --> pydantic
pydantic-numpy -- "~=3.0.4" --> semver
pydantic-settings -- ">=0.21.0" --> python-dotenv
pydantic-settings -- ">=0.4.0" --> typing-inspection
pydantic-settings -- ">=2.7.0" --> pydantic
pyogrio -- "any" --> certifi
pyogrio -- "any" --> numpy
pyogrio -- "any" --> packaging
pyproj -- "any" --> certifi
pysolar -- "any" --> numpy
python-dateutil -- ">=1.5" --> six
requests -- ">=1.26,<3" --> urllib3
requests -- ">=2,<4" --> charset-normalizer
requests -- ">=2.5,<4" --> idna
requests -- ">=2023.5.7" --> 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.26.4,<2.7" --> numpy
seaborn -- ">=1.2" --> pandas
seaborn -- ">=1.20,!=1.24.0" --> numpy
seaborn -- ">=3.4,!=3.6.1" --> matplotlib
shapely -- ">=1.21" --> numpy
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 -- ">=0.0.2" --> annotated-doc
typer -- ">=1.3.0" --> shellingham
typer -- ">=13.8.0" --> rich
typing-inspection -- ">=4.12.0" --> typing-extensions
uniplot -- ">=1.22.0" --> numpy
uniplot -- ">=4.2.1" --> readchar
xarray -- ">=1.24" --> numpy
xarray -- ">=2.1" --> pandas
xarray -- ">=23.2" --> 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.25" --> numpy
zarr -- ">=22.0" --> packaging
zarr -- ">=4.9" --> typing-extensions
Top–down layout¶
flowchart TD
classDef missing stroke-dasharray: 5
annotated-doc["annotated-doc<br/>0.0.5"]
annotated-types["annotated-types<br/>0.8.0"]
asttokens["asttokens<br/>2.4.1"]
bottleneck["Bottleneck<br/>1.6.0"]
cachetools["cachetools<br/>7.1.7"]
certifi["certifi<br/>2026.7.22"]
charset-normalizer["charset-normalizer<br/>3.4.9"]
click_0["click<br/>8.1.7"]
cloudpickle["cloudpickle<br/>3.1.2"]
compress-pickle["compress-pickle<br/>2.1.0"]
contourpy["contourpy<br/>1.3.3"]
crc32c["crc32c<br/>2.8"]
cycler["cycler<br/>0.12.1"]
dask["dask<br/>2026.7.1"]
devtools["devtools<br/>0.12.2"]
distributed["distributed<br/>2026.7.1"]
donfig["donfig<br/>0.8.1.post1"]
ephem["ephem<br/>4.2.1"]
executing["executing<br/>2.2.1"]
fonttools["fonttools<br/>4.63.0"]
fsspec["fsspec<br/>2026.7.0"]
geopandas["geopandas<br/>1.1.4"]
h5netcdf["h5netcdf<br/>1.8.1"]
h5py["h5py<br/>3.16.0"]
idna["idna<br/>3.18"]
importlib-metadata["importlib_metadata<br/>9.0.0"]
jinja2["Jinja2<br/>3.1.6"]
jplephem["jplephem<br/>2.24"]
kiwisolver["kiwisolver<br/>1.5.0"]
llvmlite["llvmlite<br/>0.48.0"]
locket["locket<br/>1.0.0"]
loguru["loguru<br/>0.7.3"]
lz4["lz4<br/>4.4.5"]
markdown-it-py["markdown-it-py<br/>4.2.0"]
markupsafe["MarkupSafe<br/>3.0.3"]
matplotlib["matplotlib<br/>3.11.1"]
mdurl["mdurl<br/>0.1.2"]
msgpack["msgpack<br/>1.2.1"]
numba["numba<br/>0.66.0"]
numcodecs["numcodecs<br/>0.16.5"]
numpy["numpy<br/>2.4.6"]
orjson["orjson<br/>3.11.9"]
packaging["packaging<br/>26.3"]
pandas["pandas<br/>3.0.5"]
partd["partd<br/>1.4.2"]
pillow["pillow<br/>12.3.0"]
polars-runtime-32["polars-runtime-32<br/>1.43.2"]
polars["polars<br/>1.43.2"]
psutil["psutil<br/>7.2.2"]
pvgis["pvgis<br/>0.1.dev150+ge2ee93156"]
pvlib["pvlib<br/>0.15.2"]
pyarrow["pyarrow<br/>25.0.0"]
pydantic-core["pydantic_core<br/>2.41.5"]
pydantic-numpy["pydantic-numpy<br/>9.0.2"]
pydantic-settings["pydantic-settings<br/>2.15.0"]
pydantic["pydantic<br/>2.12.5"]
pygments["Pygments<br/>2.20.0"]
pyogrio["pyogrio<br/>0.13.0"]
pyparsing["pyparsing<br/>3.3.2"]
pyproj["pyproj<br/>3.7.2"]
pysolar["pysolar<br/>0.13"]
python-dateutil["python-dateutil<br/>2.9.0.post0"]
python-dotenv["python-dotenv<br/>1.2.2"]
pytz["pytz<br/>2026.3.post1"]
pyyaml["PyYAML<br/>6.0.3"]
qrcode["qrcode<br/>8.2"]
readchar["readchar<br/>4.2.2"]
requests["requests<br/>2.34.2"]
rich["rich<br/>15.0.0"]
richuru["richuru<br/>0.1.1"]
ruamel-yaml-clib["ruamel.yaml.clib<br/>0.2.15"]
ruamel-yaml["ruamel.yaml<br/>0.18.0"]
scipy["scipy<br/>1.17.1"]
seaborn["seaborn<br/>0.13.2"]
semver["semver<br/>3.0.4"]
sgp4["sgp4<br/>2.27"]
shapely["shapely<br/>2.1.2"]
shellingham["shellingham<br/>1.5.4"]
six["six<br/>1.17.0"]
skyfield["skyfield<br/>1.54"]
sortedcontainers["sortedcontainers<br/>2.4.0"]
sparklines["sparklines<br/>1.0.0"]
suncalc["suncalc<br/>0.1.3"]
tblib["tblib<br/>3.2.2"]
termcolor["termcolor<br/>3.3.0"]
toolz["toolz<br/>1.1.0"]
tornado["tornado<br/>6.5.8"]
typer["typer<br/>0.27.1"]
typing-extensions["typing_extensions<br/>4.16.0"]
typing-inspection["typing-inspection<br/>0.4.2"]
uniplot["uniplot<br/>0.23.2"]
urllib3["urllib3<br/>2.7.0"]
xarray-extras["xarray_extras<br/>0.6.0"]
xarray["xarray<br/>2025.4.0"]
zarr["zarr<br/>3.0.10"]
zict["zict<br/>3.0.0"]
zipp["zipp<br/>4.1.0"]
asttokens -- ">=1.12.0" --> six
bottleneck -- "any" --> numpy
compress-pickle -- "[lz4] any" --> lz4
contourpy -- ">=1.25" --> numpy
dask -- ">=0.12.0" --> toolz
dask -- ">=1.4.0" --> partd
dask -- ">=20.0" --> packaging
dask -- ">=2021.9.0" --> fsspec
dask -- ">=3.0.0" --> cloudpickle
dask -- ">=4.13.0" --> importlib-metadata
dask -- ">=5.4.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 -- ">=0.12.0" --> toolz
distributed -- ">=1.0.0" --> locket
distributed -- ">=1.0.2" --> msgpack
distributed -- ">=1.6.0,!=3.2.0,!=3.2.1" --> tblib
distributed -- ">=2.0.5" --> sortedcontainers
distributed -- ">=2.10.3" --> jinja2
distributed -- ">=20.0" --> packaging
distributed -- ">=2026.7.1,<2026.7.2" --> dask
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
geopandas -- ">=0.7.2" --> pyogrio
geopandas -- ">=1.24" --> numpy
geopandas -- ">=2.0.0" --> pandas
geopandas -- ">=2.0.0" --> shapely
geopandas -- ">=3.5.0" --> pyproj
geopandas -- "any" --> packaging
h5netcdf -- "any" --> numpy
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.25" --> numpy
matplotlib -- ">=1.3.1" --> kiwisolver
matplotlib -- ">=2.7" --> python-dateutil
matplotlib -- ">=20.0" --> packaging
matplotlib -- ">=3" --> pyparsing
matplotlib -- ">=4.28.2" --> fonttools
matplotlib -- ">=9" --> pillow
numba -- ">=0.48.0.dev0,<0.49" --> llvmlite
numba -- ">=1.22,<2.5" --> numpy
numcodecs -- ">=1.24" --> numpy
numcodecs -- "[crc32c] >=2.7" --> crc32c
numcodecs -- "any" --> typing-extensions
pandas -- ">=1.26.0" --> numpy
pandas -- ">=2.8.2" --> python-dateutil
partd -- "any" --> locket
partd -- "any" --> toolz
polars -- "==1.43.2" --> polars-runtime-32
pvgis -- "==2025.4.0" --> xarray
pvgis -- "==3.0.10" --> zarr
pvgis -- "==8.1.7" --> click_0
pvgis -- ">=0.13.2" --> seaborn
pvgis -- ">=0.14.0" --> geopandas
pvgis -- ">=1.9.0" --> polars
pvgis -- ">=2.0.0" --> shapely
pvgis -- ">=2.5.2" --> pydantic-settings
pvgis -- "any" --> bottleneck
pvgis -- "any" --> cachetools
pvgis -- "any" --> devtools
pvgis -- "any" --> distributed
pvgis -- "any" --> ephem
pvgis -- "any" --> h5netcdf
pvgis -- "any" --> llvmlite
pvgis -- "any" --> loguru
pvgis -- "any" --> matplotlib
pvgis -- "any" --> numpy
pvgis -- "any" --> orjson
pvgis -- "any" --> pandas
pvgis -- "any" --> pvlib
pvgis -- "any" --> pyarrow
pvgis -- "any" --> pydantic
pvgis -- "any" --> pydantic-numpy
pvgis -- "any" --> pysolar
pvgis -- "any" --> qrcode
pvgis -- "any" --> rich
pvgis -- "any" --> richuru
pvgis -- "any" --> skyfield
pvgis -- "any" --> sparklines
pvgis -- "any" --> suncalc
pvgis -- "any" --> typer
pvgis -- "any" --> uniplot
pvgis -- "any" --> xarray-extras
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" --> ruamel-yaml
pydantic-numpy -- ">=2.3.5,<3" --> numpy
pydantic-numpy -- "any" --> compress-pickle
pydantic-numpy -- "~=2.12.5" --> pydantic
pydantic-numpy -- "~=3.0.4" --> semver
pydantic-settings -- ">=0.21.0" --> python-dotenv
pydantic-settings -- ">=0.4.0" --> typing-inspection
pydantic-settings -- ">=2.7.0" --> pydantic
pyogrio -- "any" --> certifi
pyogrio -- "any" --> numpy
pyogrio -- "any" --> packaging
pyproj -- "any" --> certifi
pysolar -- "any" --> numpy
python-dateutil -- ">=1.5" --> six
requests -- ">=1.26,<3" --> urllib3
requests -- ">=2,<4" --> charset-normalizer
requests -- ">=2.5,<4" --> idna
requests -- ">=2023.5.7" --> 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.26.4,<2.7" --> numpy
seaborn -- ">=1.2" --> pandas
seaborn -- ">=1.20,!=1.24.0" --> numpy
seaborn -- ">=3.4,!=3.6.1" --> matplotlib
shapely -- ">=1.21" --> numpy
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 -- ">=0.0.2" --> annotated-doc
typer -- ">=1.3.0" --> shellingham
typer -- ">=13.8.0" --> rich
typing-inspection -- ">=4.12.0" --> typing-extensions
uniplot -- ">=1.22.0" --> numpy
uniplot -- ">=4.2.1" --> readchar
xarray -- ">=1.24" --> numpy
xarray -- ">=2.1" --> pandas
xarray -- ">=23.2" --> 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.25" --> numpy
zarr -- ">=22.0" --> packaging
zarr -- ">=4.9" --> typing-extensions