pydata / pydata/xarray

package `xarray` and `xarray-core` in conda-forge

Open
#9,149 5 comments 7 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

dependencies enhancement
Dominant language
Python
Stars
4.2k
Forks
1.4k
Avg merge
2d 15h
Merged PRs (30d)
14

Description

What is your issue?

The current set of Xarray dependencies is very minimal.
https://github.com/pydata/xarray/blob/3fd162e42bb309cfab03c2c18b037d1ad3cd3193/pyproject.toml#L25-L29

This is pretty unfriendly to a new user, and not a great out-of-the-box experience. You can't read any files (except npz, csv, parquet I guess), you can't access any tutorial datasets, you can't make plots, and you're missing a bunch of effectively free performance optimizations.

I think the current set of minimal dependencies is more appropriate to an xarray-core package.
Here are our optional dependencies for example:
https://github.com/pydata/xarray/blob/3fd162e42bb309cfab03c2c18b037d1ad3cd3193/pyproject.toml#L31-L48

Proposal

I suggest that we migrate to xarray-core and xarray packages in conda-forge.:

  1. xarray-core will have the current set of minimal dependencies.
  2. For xarray I propose the following dependencies:
    1. flox, opt_einsum, numbagg for accelerated computations
    2. fsspec, netcdf, zarr for reading common datasets & "cloud"
    3. matplotlib for plotting.
    4. pooch to read tutorial datasets

Related: dask packages dask-core and I think matplotlib packages matplotlib-base

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the linked dependency sections in pyproject.toml and the existing conda-forge packaging for xarray. Compare the current minimal dependencies with the proposed xarray-core and xarray sets, including flox, opt_einsum, numbagg, fsspec, netcdf, zarr, matplotlib, and pooch. Done means the two packages are defined with the intended dependency split and can be installed successfully.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.