Skip to content

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


Wide format

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