Skip to content

The Workspace Packages

xrtoolz is a uv workspace of three packages. xrtoolz-ops (import xrops) carries the domain operator families, and the xrtoolz umbrella holds no code and installs the other two, so pip install xrtoolz gives you the whole stack — but each package also installs and works on its own.

Distribution Import Scope Standalone deps
xrtoolz-products xrproducts Authenticated archive readers (CMEMS, CDS, AEMET) numpy, pandas, xarray
xrtoolz-ops xrops geo, ocn, budgets, interpolate, transforms, metrics, viz, calculus (xrops.grad), … xrtoolz-products, pipekit-array, geotoolz-ops
xrtoolz xrtoolz the umbrella: no code, installs the family all of the above

Which import do I use?

Import each package under its own name — import xrops, from xrops import grad, from xrops import Operator, from xrops.learn import XarrayEstimator, from pipekit import Signature. There are no compatibility paths: the old xrtoolz.* modules (and the xrtoolz.calc, xrtoolz.einx, xrtoolz.utils.XarrayEstimator and xrtoolz.transforms.SklearnOp re-exports) were removed when the operators moved to xrops.

Dependency shape

xrops.Operator (in xrops._src) is how every xrops operator speaks pipekit's Operator protocol with xarray carriers. The calculus in xrops.grad runs on geoops's difference kernels, so no member pulls JAX. The main xrtoolz package consumes both — it depends on xrtoolz-products for the shared typed request vocabulary and CF Variable registry, whose service clients stay behind optional extras.