diff --git a/docs/getting-started/installation.rst b/docs/getting-started/installation.rst index 5b2caa943..030c3c504 100644 --- a/docs/getting-started/installation.rst +++ b/docs/getting-started/installation.rst @@ -23,8 +23,8 @@ To install UXarray with its recommended dependencies using the conda command lin .. note:: - Conda automatically installs Xarray and every other required - dependency (including non‑Python libraries). + Conda automatically installs Xarray, all other required depdencies, + and all optional dependencies too (including non‑Python libraries). Installing with pip ------------------- @@ -37,11 +37,16 @@ This installs the *minimal* required dependencies. UXarray also provides optiona .. code-block:: bash pip install "uxarray[dev]" # development tools + pip install "uxarray[geo]" # geospatial tools (e.g. geopandas, healpix) + pip install "uxarray[viz]" # plotting tools (e.g. matplotlib, hvplot) pip install "uxarray[complete]" # all optional features -A complete list of extras lives in the ``[project.optional-dependencies]`` +A complete list of optional dependencies lives in the ``[project.optional-dependencies]`` section of our `pyproject.toml `_ +Optional extras can also be combined, e.g. ``pip install "uxarray[geo,viz]"`` installs with +all required dependencies plus all optional dependencies for geospatial and plotting tools. + Installing from source ---------------------- @@ -67,7 +72,7 @@ Installing from source is intended mainly for developers. .. code-block:: bash - pip install . + pip install ".[complete]" # test suite relies on optional dependencies #. **Run the test suite** diff --git a/pyproject.toml b/pyproject.toml index 0596956c6..e143f4be1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,35 +23,43 @@ requires-python = ">=3.10" # minimal dependencies start dependencies = [ "antimeridian", - "cartopy", "dask[dataframe]", - "datashader", - "geoviews", - "holoviews", - "matplotlib<3.11", # matplotlib 3.11.0 breaks some plots but <3.11 is fine; see issue #1542. - "matplotlib-inline", "netcdf4", "numba>=0.63", # 0.63 is the first release supporting Python 3.14 (3.10 <= py < 3.15). See #1561. "numpy", "pandas", - "pyarrow", - "requests", "scikit-learn", "scipy", "shapely", - "spatialpandas", - "geopandas", "xarray", - "hvplot", - "healpix", "polars", - "pyproj" ] # minimal dependencies end [project.optional-dependencies] -complete = ["uxarray[dev]"] -dev = ['pre_commit', 'pytest', 'pytest-cov', 'ruff', 'asv'] +all = ["uxarray[dev,geo,viz]"] +complete = ["uxarray[dev,geo,viz]"] # alias to "all" +dev = [ + 'asv', + 'pooch', + 'pre_commit', + 'pytest', + 'pytest-cov', + 'ruff', +] +geo = [ + "geopandas", + "healpix", + "pyproj", + "spatialpandas", +] +viz = [ + "cartopy", + "matplotlib<3.11", # matplotlib 3.11.0 breaks some plots but <3.11 is fine; see issue #1542. + "geoviews", + "holoviews", + "hvplot", +] [project.urls] Documentation = "https://uxarray.readthedocs.io/"