Skip to content

Upgrading xarray 0.17 to 0.18

Review needed0.17.0 → 0.18.2New1Changed1Fixed2Other2

Review neededUpgrade verdict

1 behavior change.

  • This patch lets xarray work with the newest version of the dask.distributed package.
Nothing to change

No breaking, platform, security or deprecated items in this range.

Nothing in this upgrade needs a code or configuration change.

Generated by DepDelta from published Python source. Not mixed with prose notes.

  • added: export BackendArray
  • added: export BackendEntrypoint
  • changed: function open_dataarray(filename_or_obj, group=…, decode_cf=…, mask_and_scale=…, decode_times=…, concat_characters=…, decode_coords=…, engine=…, chunks=…, lock=…, cache=…, drop_variables=…, backend_kwargs=…, use_cftime=…, decode_timedelta=…) → function open_dataarray(filename_or_obj, *args, engine=…, chunks=…, cache=…, decode_cf=…, mask_and_scale=…, decode_times=…, decode_timedelta=…, use_cftime=…, concat_characters=…, decode_coords=…, drop_variables=…, backend_kwargs=…, **kwargs)
  • changed: function open_dataset(filename_or_obj, group=…, decode_cf=…, mask_and_scale=…, decode_times=…, concat_characters=…, decode_coords=…, engine=…, chunks=…, lock=…, cache=…, drop_variables=…, backend_kwargs=…, use_cftime=…, decode_timedelta=…) → function open_dataset(filename_or_obj, *args, engine=…, chunks=…, cache=…, decode_cf=…, mask_and_scale=…, decode_times=…, decode_timedelta=…, use_cftime=…, concat_characters=…, decode_coords=…, drop_variables=…, backend_kwargs=…, **kwargs)
  • changed: function open_mfdataset(paths, chunks=…, concat_dim=…, compat=…, preprocess=…, engine=…, lock=…, data_vars=…, coords=…, combine=…, parallel=…, join=…, attrs_file=…, **kwargs) → function open_mfdataset(paths, chunks=…, concat_dim=…, compat=…, preprocess=…, engine=…, data_vars=…, coords=…, combine=…, parallel=…, join=…, attrs_file=…, combine_attrs=…, **kwargs)
  • changed: function to_zarr(dataset: Dataset, store: Union[MutableMapping, str, Path]=…, chunk_store=…, mode: str=…, synchronizer=…, group: str=…, encoding: Mapping=…, compute: bool=…, consolidated: bool=…, append_dim: Hashable=…, region: Mapping[str, slice]=…) → function to_zarr(dataset: Dataset, store: Union[MutableMapping, str, Path]=…, chunk_store=…, mode: str=…, synchronizer=…, group: str=…, encoding: Mapping=…, compute: bool=…, consolidated: bool=…, append_dim: Hashable=…, region: Mapping[str, slice]=…, safe_chunks: bool=…)
  • removed: function open_dataset(filename_or_obj, *, engine=…, chunks=…, cache=…, decode_cf=…, mask_and_scale=…, decode_times=…, decode_timedelta=…, use_cftime=…, concat_characters=…, decode_coords=…, drop_variables=…, backend_kwargs=…, **kwargs)
  • changed: method CfgribfBackendEntrypoint.guess_can_open(store_spec) → method CfgribfBackendEntrypoint.guess_can_open(filename_or_obj)
  • changed: method BackendEntrypoint.guess_can_open(store_spec) → method BackendEntrypoint.guess_can_open(filename_or_obj)
  • changed: method BackendEntrypoint.open_dataset() → method BackendEntrypoint.open_dataset(filename_or_obj: str, drop_variables: Tuple[str]=…, **kwargs: Any)
  • changed: method H5netcdfBackendEntrypoint.guess_can_open(store_spec) → method H5netcdfBackendEntrypoint.guess_can_open(filename_or_obj)
  • changed: method NetCDF4BackendEntrypoint.guess_can_open(store_spec) → method NetCDF4BackendEntrypoint.guess_can_open(filename_or_obj)
  • changed: method PydapBackendEntrypoint.guess_can_open(store_spec) → method PydapBackendEntrypoint.guess_can_open(filename_or_obj)
  • changed: method PydapBackendEntrypoint.open_dataset(filename_or_obj, mask_and_scale=…, decode_times=…, concat_characters=…, decode_coords=…, drop_variables=…, use_cftime=…, decode_timedelta=…, session=…) → method PydapBackendEntrypoint.open_dataset(filename_or_obj, mask_and_scale=…, decode_times=…, concat_characters=…, decode_coords=…, drop_variables=…, use_cftime=…, decode_timedelta=…, session=…, lock=…)
  • changed: method PynioBackendEntrypoint.open_dataset(mask_and_scale=…, decode_times=…, concat_characters=…, decode_coords=…, drop_variables=…, use_cftime=…, decode_timedelta=…, mode=…, lock=…) → method PynioBackendEntrypoint.open_dataset(filename_or_obj, mask_and_scale=…, decode_times=…, concat_characters=…, decode_coords=…, drop_variables=…, use_cftime=…, decode_timedelta=…, mode=…, lock=…)
  • changed: method ScipyBackendEntrypoint.guess_can_open(store_spec) → method ScipyBackendEntrypoint.guess_can_open(filename_or_obj)
  • changed: method StoreBackendEntrypoint.guess_can_open(store_spec) → method StoreBackendEntrypoint.guess_can_open(filename_or_obj)
  • changed: constructor ZarrStore(zarr_group, consolidate_on_close=…, append_dim=…, write_region=…) → constructor ZarrStore(zarr_group, consolidate_on_close=…, append_dim=…, write_region=…, safe_chunks=…)
  • changed: function extract_zarr_variable_encoding(variable, raise_on_invalid=…, name=…) → function extract_zarr_variable_encoding(variable, raise_on_invalid=…, name=…, safe_chunks=…)
  • changed: method ZarrBackendEntrypoint.open_dataset(filename_or_obj, mask_and_scale=…, decode_times=…, concat_characters=…, decode_coords=…, drop_variables=…, use_cftime=…, decode_timedelta=…, group=…, mode=…, synchronizer=…, consolidated=…, consolidate_on_close=…, chunk_store=…, storage_options=…) → method ZarrBackendEntrypoint.open_dataset(filename_or_obj, mask_and_scale=…, decode_times=…, concat_characters=…, decode_coords=…, drop_variables=…, use_cftime=…, decode_timedelta=…, group=…, mode=…, synchronizer=…, consolidated=…, consolidate_on_close=…, chunk_store=…, storage_options=…, lock=…)
  • changed: static method ZarrStore.open_group(store, mode=…, synchronizer=…, group=…, consolidated=…, consolidate_on_close=…, chunk_store=…, storage_options=…, append_dim=…, write_region=…) → static method ZarrStore.open_group(store, mode=…, synchronizer=…, group=…, consolidated=…, consolidate_on_close=…, chunk_store=…, storage_options=…, append_dim=…, write_region=…, safe_chunks=…)
  • added: variable OUT_OF_BOUNDS_TIMEDELTA_ERRORS
  • added: variable OUT_OF_BOUNDS_TIMEDELTA_ERRORS: Tuple[Type[Exception], ...]
  • added: field DatetimeAccessor.date
  • changed: method StringAccessor.capitalize() → method StringAccessor.capitalize() -> Any
  • changed: method StringAccessor.center(width, fillchar=…) → method StringAccessor.center(width: Union[int, Any], fillchar: Union[str, bytes, Any]=…) -> Any
  • changed: method StringAccessor.contains(pat, case=…, flags=…, regex=…) → method StringAccessor.contains(pat: Union[str, bytes, Pattern, Any], case: bool=…, flags: int=…, regex: bool=…) -> Any
  • changed: method StringAccessor.count(pat, flags=…) → method StringAccessor.count(pat: Union[str, bytes, Pattern, Any], flags: int=…, case: bool=…) -> Any
  • changed: method StringAccessor.decode(encoding, errors=…) → method StringAccessor.decode(encoding: str, errors: str=…) -> Any
  • changed: method StringAccessor.encode(encoding, errors=…) → method StringAccessor.encode(encoding: str, errors: str=…) -> Any
  • changed: method StringAccessor.endswith(pat) → method StringAccessor.endswith(pat: Union[str, bytes, Any]) -> Any
  • changed: method StringAccessor.find(sub, start=…, end=…, side=…) → method StringAccessor.find(sub: Union[str, bytes, Any], start: Union[int, Any]=…, end: Union[int, Any]=…, side: str=…) -> Any
  • changed: method StringAccessor.get(i, default=…) → method StringAccessor.get(i: Union[int, Any], default: Union[str, bytes]=…) -> Any
  • changed: method StringAccessor.index(sub, start=…, end=…, side=…) → method StringAccessor.index(sub: Union[str, bytes, Any], start: Union[int, Any]=…, end: Union[int, Any]=…, side: str=…) -> Any
  • changed: method StringAccessor.isalnum() → method StringAccessor.isalnum() -> Any
  • changed: method StringAccessor.isalpha() → method StringAccessor.isalpha() -> Any
  • changed: method StringAccessor.isdecimal() → method StringAccessor.isdecimal() -> Any
  • changed: method StringAccessor.isdigit() → method StringAccessor.isdigit() -> Any
  • changed: method StringAccessor.islower() → method StringAccessor.islower() -> Any
  • changed: method StringAccessor.isnumeric() → method StringAccessor.isnumeric() -> Any
  • changed: method StringAccessor.isspace() → method StringAccessor.isspace() -> Any
  • changed: method StringAccessor.istitle() → method StringAccessor.istitle() -> Any
  • changed: method StringAccessor.isupper() → method StringAccessor.isupper() -> Any
  • changed: method StringAccessor.len() → method StringAccessor.len() -> Any
  • changed: method StringAccessor.ljust(width, fillchar=…) → method StringAccessor.ljust(width: Union[int, Any], fillchar: Union[str, bytes, Any]=…) -> Any
  • changed: method StringAccessor.lower() → method StringAccessor.lower() -> Any
  • changed: method StringAccessor.lstrip(to_strip=…) → method StringAccessor.lstrip(to_strip: Union[str, bytes, Any]=…) -> Any
  • changed: method StringAccessor.match(pat, case=…, flags=…) → method StringAccessor.match(pat: Union[str, bytes, Pattern, Any], case: bool=…, flags: int=…) -> Any
  • changed: method StringAccessor.pad(width, side=…, fillchar=…) → method StringAccessor.pad(width: Union[int, Any], side: str=…, fillchar: Union[str, bytes, Any]=…) -> Any
  • changed: method StringAccessor.repeat(repeats) → method StringAccessor.repeat(repeats: Union[int, Any]) -> Any
  • changed: method StringAccessor.replace(pat, repl, n=…, case=…, flags=…, regex=…) → method StringAccessor.replace(pat: Union[str, bytes, Pattern, Any], repl: Union[str, bytes, Callable, Any], n: Union[int, Any]=…, case: bool=…, flags: int=…, regex: bool=…) -> Any
  • changed: method StringAccessor.rfind(sub, start=…, end=…) → method StringAccessor.rfind(sub: Union[str, bytes, Any], start: Union[int, Any]=…, end: Union[int, Any]=…) -> Any
  • changed: method StringAccessor.rindex(sub, start=…, end=…) → method StringAccessor.rindex(sub: Union[str, bytes, Any], start: Union[int, Any]=…, end: Union[int, Any]=…) -> Any
  • changed: method StringAccessor.rjust(width, fillchar=…) → method StringAccessor.rjust(width: Union[int, Any], fillchar: Union[str, bytes, Any]=…) -> Any
  • changed: method StringAccessor.rstrip(to_strip=…) → method StringAccessor.rstrip(to_strip: Union[str, bytes, Any]=…) -> Any
  • changed: method StringAccessor.slice(start=…, stop=…, step=…) → method StringAccessor.slice(start: Union[int, Any]=…, stop: Union[int, Any]=…, step: Union[int, Any]=…) -> Any
  • changed: method StringAccessor.slice_replace(start=…, stop=…, repl=…) → method StringAccessor.slice_replace(start: Union[int, Any]=…, stop: Union[int, Any]=…, repl: Union[str, bytes, Any]=…) -> Any
  • changed: method StringAccessor.startswith(pat) → method StringAccessor.startswith(pat: Union[str, bytes, Any]) -> Any
  • changed: method StringAccessor.strip(to_strip=…, side=…) → method StringAccessor.strip(to_strip: Union[str, bytes, Any]=…, side: str=…) -> Any
  • changed: method StringAccessor.swapcase() → method StringAccessor.swapcase() -> Any
  • changed: method StringAccessor.title() → method StringAccessor.title() -> Any
  • changed: method StringAccessor.translate(table) → method StringAccessor.translate(table: Mapping[Union[str, bytes], Union[str, bytes]]) -> Any
  • changed: method StringAccessor.upper() → method StringAccessor.upper() -> Any
  • changed: method StringAccessor.wrap(width, **kwargs) → method StringAccessor.wrap(width: Union[int, Any], **kwargs) -> Any
  • changed: method StringAccessor.zfill(width) → method StringAccessor.zfill(width: Union[int, Any]) -> Any
  • added: method StringAccessor.casefold() -> Any
  • added: method StringAccessor.cat(*others, sep: Union[str, bytes, Any]=…) -> Any
  • added: method StringAccessor.extract(pat: Union[str, bytes, Pattern, Any], dim: Hashable, case: bool=…, flags: int=…) -> Any
  • added: method StringAccessor.extractall(pat: Union[str, bytes, Pattern, Any], group_dim: Hashable, match_dim: Hashable, case: bool=…, flags: int=…) -> Any
  • added: method StringAccessor.findall(pat: Union[str, bytes, Pattern, Any], case: bool=…, flags: int=…) -> Any
  • added: method StringAccessor.format(*args: Any, **kwargs: Any) -> Any
  • added: method StringAccessor.get_dummies(dim: Hashable, sep: Union[str, bytes, Any]=…) -> Any
  • added: method StringAccessor.join(dim: Hashable=…, sep: Union[str, bytes, Any]=…) -> Any
  • added: method StringAccessor.normalize(form: str) -> Any
  • added: method StringAccessor.partition(dim: Optional[Hashable], sep: Union[str, bytes, Any]=…) -> Any
  • added: method StringAccessor.rpartition(dim: Optional[Hashable], sep: Union[str, bytes, Any]=…) -> Any
  • added: method StringAccessor.rsplit(dim: Optional[Hashable], sep: Union[str, bytes, Any]=…, maxsplit: Union[int, Any]=…) -> Any
  • added: method StringAccessor.split(dim: Optional[Hashable], sep: Union[str, bytes, Any]=…, maxsplit: int=…) -> Any
  • changed: function reindex_variables(variables: Mapping[Any, Variable], sizes: Mapping[Any, int], indexes: Mapping[Any, pd.Index], indexers: Mapping, method: Optional[str]=…, tolerance: Any=…, copy: bool=…, fill_value: Optional[Any]=…, sparse: bool=…) -> Tuple[Dict[Hashable, Variable], Dict[Hashable, pd.Index]] → function reindex_variables(variables: Mapping[Any, Variable], sizes: Mapping[Any, int], indexes: Mapping[Any, Index], indexers: Mapping, method: Optional[str]=…, tolerance: Any=…, copy: bool=…, fill_value: Optional[Any]=…, sparse: bool=…) -> Tuple[Dict[Hashable, Variable], Dict[Hashable, Index]]
  • added: class CoarsenArithmetic(IncludeReduceMethods)
  • added: class DataArrayArithmetic(ImplementsArrayReduce, IncludeReduceMethods, IncludeCumMethods, IncludeNumpySameMethods, SupportsArithmetic, DataArrayOpsMixin)
  • added: class DataArrayGroupbyArithmetic(ImplementsArrayReduce, IncludeReduceMethods, SupportsArithmetic, DataArrayGroupByOpsMixin)
  • added: class DatasetArithmetic(ImplementsDatasetReduce, IncludeReduceMethods, IncludeCumMethods, SupportsArithmetic, DatasetOpsMixin)
  • added: class DatasetGroupbyArithmetic(ImplementsDatasetReduce, IncludeReduceMethods, SupportsArithmetic, DatasetGroupByOpsMixin)
  • added: class VariableArithmetic(ImplementsArrayReduce, IncludeReduceMethods, IncludeCumMethods, IncludeNumpySameMethods, SupportsArithmetic, VariableOpsMixin)
  • changed: class AbstractArray(ImplementsArrayReduce) → class AbstractArray
  • changed: class DataWithCoords(SupportsArithmetic, AttrAccessMixin) → class DataWithCoords(AttrAccessMixin)
  • added: method DataWithCoords.clip(min=…, max=…, *, keep_attrs: bool=…)
  • changed: function apply_ufunc(func: Callable, *args: Any, input_core_dims: Sequence[Sequence]=…, output_core_dims: Optional[Sequence[Sequence]]=…, exclude_dims: AbstractSet=…, vectorize: bool=…, join: str=…, dataset_join: str=…, dataset_fill_value: object=…, keep_attrs: bool=…, kwargs: Mapping=…, dask: str=…, output_dtypes: Sequence=…, output_sizes: Mapping[Any, int]=…, meta: Any=…, dask_gufunc_kwargs: Di… → function apply_ufunc(func: Callable, *args: Any, input_core_dims: Sequence[Sequence]=…, output_core_dims: Optional[Sequence[Sequence]]=…, exclude_dims: AbstractSet=…, vectorize: bool=…, join: str=…, dataset_join: str=…, dataset_fill_value: object=…, keep_attrs: Union[bool, str]=…, kwargs: Mapping=…, dask: str=…, output_dtypes: Sequence=…, output_sizes: Mapping[Any, int]=…, meta: Any=…, dask_gufun…
  • changed: function build_output_coords(args: list, signature: _UFuncSignature, exclude_dims: AbstractSet=…) -> List[Dict[Any, Variable]] → function build_output_coords(args: list, signature: _UFuncSignature, exclude_dims: AbstractSet=…, combine_attrs: str=…) -> List[Dict[Any, Variable]]
  • added: property Coordinates.xindexes -> Indexes
  • removed: function nanmedian(a, axis=…, keepdims=…)
  • removed: variable dask_version
  • removed: variable nanmedian
  • added: function ensure_minimum_chunksize(size, chunks)
  • added: function sliding_window_view(x, window_shape, axis=…)
  • added: variable ensure_minimum_chunksize
  • added: variable sliding_window_view
  • removed: function rolling_window(a, axis, window, center, fill_value)
  • added: function push(array, n, axis)
  • changed: class DataArray(AbstractArray, DataWithCoords) → class DataArray(AbstractArray, DataWithCoords, DataArrayArithmetic)
  • added: method DataArray.cumulative_integrate(coord: Union[Hashable, Sequence[Hashable]]=…, datetime_unit: str=…) -> DataArray
  • added: method DataArray.curvefit(coords: Union[Union[str, DataArray], Iterable[Union[str, DataArray]]], func: Callable[..., Any], reduce_dims: Union[Hashable, Iterable[Hashable]]=…, skipna: bool=…, p0: Dict[str, Any]=…, bounds: Dict[str, Any]=…, param_names: Sequence[str]=…, kwargs: Dict[str, Any]=…)
  • added: method DataArray.drop_duplicates(dim: Hashable, keep: Union[str, bool]=…)
  • added: method DataArray.query(queries: Mapping[Hashable, Any]=…, parser: str=…, engine: str=…, missing_dims: str=…, **queries_kwargs: Any) -> DataArray
  • added: property DataArray.xindexes -> Indexes
  • added: variable T_DataArray
  • changed: class Dataset(Mapping, ImplementsDatasetReduce, DataWithCoords) → class Dataset(DataWithCoords, DatasetArithmetic, Mapping)
  • changed: method Dataset.argmax(dim=…, axis=…, **kwargs) → method Dataset.argmax(dim=…, **kwargs)
  • changed: method Dataset.argmin(dim=…, axis=…, **kwargs) → method Dataset.argmin(dim=…, **kwargs)
  • changed: method Dataset.interp(coords: Mapping[Hashable, Any]=…, method: str=…, assume_sorted: bool=…, kwargs: Mapping[str, Any]=…, **coords_kwargs: Any) -> Dataset → method Dataset.interp(coords: Mapping[Hashable, Any]=…, method: str=…, assume_sorted: bool=…, kwargs: Mapping[str, Any]=…, method_non_numeric: str=…, **coords_kwargs: Any) -> Dataset
  • changed: method Dataset.interp_like(other: Union[Dataset, DataArray], method: str=…, assume_sorted: bool=…, kwargs: Mapping[str, Any]=…) -> Dataset → method Dataset.interp_like(other: Union[Dataset, DataArray], method: str=…, assume_sorted: bool=…, kwargs: Mapping[str, Any]=…, method_non_numeric: str=…) -> Dataset
  • changed: method Dataset.merge(other: Union[CoercibleMapping, DataArray], overwrite_vars: Union[Hashable, Iterable[Hashable]]=…, compat: str=…, join: str=…, fill_value: Any=…) -> Dataset → method Dataset.merge(other: Union[CoercibleMapping, DataArray], overwrite_vars: Union[Hashable, Iterable[Hashable]]=…, compat: str=…, join: str=…, fill_value: Any=…, combine_attrs: str=…) -> Dataset
  • changed: method Dataset.to_zarr(store: Union[MutableMapping, str, Path]=…, chunk_store: Union[MutableMapping, str, Path]=…, mode: str=…, synchronizer=…, group: str=…, encoding: Mapping=…, compute: bool=…, consolidated: bool=…, append_dim: Hashable=…, region: Mapping[str, slice]=…) -> ZarrStore → method Dataset.to_zarr(store: Union[MutableMapping, str, Path]=…, chunk_store: Union[MutableMapping, str, Path]=…, mode: str=…, synchronizer=…, group: str=…, encoding: Mapping=…, compute: bool=…, consolidated: bool=…, append_dim: Hashable=…, region: Mapping[str, slice]=…, safe_chunks: bool=…) -> ZarrStore
  • added: method Dataset.cumulative_integrate(coord: Union[Hashable, Sequence[Hashable]], datetime_unit: str=…) -> Dataset
  • added: method Dataset.curvefit(coords: Union[Union[str, DataArray], Iterable[Union[str, DataArray]]], func: Callable[..., Any], reduce_dims: Union[Hashable, Iterable[Hashable]]=…, skipna: bool=…, p0: Dict[str, Any]=…, bounds: Dict[str, Any]=…, param_names: Sequence[str]=…, kwargs: Dict[str, Any]=…)
  • added: method Dataset.query(queries: Mapping[Hashable, Any]=…, parser: str=…, engine: str=…, missing_dims: str=…, **queries_kwargs: Any) -> Dataset
  • added: method Dataset.to_pandas() -> Union[pd.Series, pd.DataFrame]
  • added: property Dataset.xindexes -> Indexes
  • removed: function rolling_window(array, axis, window, center, fill_value)
  • added: function cumulative_trapezoid(y, x, axis)
  • added: function push(array, n, axis)
  • added: function sliding_window_view(array, window_shape, axis)
  • changed: class DataArrayGroupBy(GroupBy, ImplementsArrayReduce) → class DataArrayGroupBy(GroupBy, DataArrayGroupbyArithmetic)
  • changed: class DatasetGroupBy(GroupBy, ImplementsDatasetReduce) → class DatasetGroupBy(GroupBy, DatasetGroupbyArithmetic)
  • changed: class GroupBy(SupportsArithmetic) → class GroupBy
  • changed: function default_indexes(coords: Mapping[Any, Variable], dims: Iterable) -> Dict[Hashable, pd.Index] → function default_indexes(coords: Mapping[Any, Variable], dims: Iterable) -> Dict[Hashable, Index]
  • changed: function isel_variable_and_index(name: Hashable, variable: Variable, index: pd.Index, indexers: Mapping[Hashable, Union[int, slice, np.ndarray, Variable]]) -> Tuple[Variable, Optional[pd.Index]] → function isel_variable_and_index(name: Hashable, variable: Variable, index: Index, indexers: Mapping[Hashable, Union[int, slice, np.ndarray, Variable]]) -> Tuple[Variable, Optional[Index]]
  • changed: function propagate_indexes(indexes: Optional[Dict[Hashable, pd.Index]], exclude: Optional[Any]=…) -> Optional[Dict[Hashable, pd.Index]] → function propagate_indexes(indexes: Optional[Dict[Hashable, Index]], exclude: Optional[Any]=…) -> Optional[Dict[Hashable, Index]]
  • changed: function roll_index(index: pd.Index, count: int, axis: int=…) -> pd.Index → function roll_index(index: PandasIndex, count: int, axis: int=…) -> PandasIndex
  • added: class Index
  • added: class PandasIndex(Index, ExplicitlyIndexedNDArrayMixin)
  • added: constructor Index(coord_names: Union[Hashable, Iterable[Hashable]])
  • added: constructor PandasIndex(array: Any, dtype: DTypeLike=…, coord_name: Optional[Hashable]=…)
  • added: method Index.equals(other)
  • added: method Index.intersection(other)
  • added: method Index.to_pandas_index() -> pd.Index
  • added: method Index.union(other)
  • added: method PandasIndex.copy(deep: bool=…) -> PandasIndex
  • added: method PandasIndex.equals(other)
  • added: method PandasIndex.intersection(other)
  • added: method PandasIndex.to_pandas_index() -> pd.Index
  • added: method PandasIndex.transpose(order) -> pd.Index
  • added: method PandasIndex.union(other)
  • added: property PandasIndex.dtype -> np.dtype
  • added: property PandasIndex.shape -> Tuple[int]
  • added: static method Index.from_variables(variables: Dict[Hashable, Variable], **kwargs)
  • added: static method PandasIndex.from_variables(variables: Dict[Hashable, Variable], **kwargs)
  • removed: class LazilyOuterIndexedArray(ExplicitlyIndexedNDArrayMixin)
  • removed: class PandasIndexAdapter(ExplicitlyIndexedNDArrayMixin)
  • removed: constructor LazilyOuterIndexedArray(array, key=…)
  • removed: constructor PandasIndexAdapter(array: Any, dtype: DTypeLike=…)
  • removed: method LazilyOuterIndexedArray.transpose(order)
  • removed: method PandasIndexAdapter.copy(deep: bool=…) -> PandasIndexAdapter
  • removed: method PandasIndexAdapter.transpose(order) -> pd.Index
  • removed: property LazilyOuterIndexedArray.shape
  • removed: property PandasIndexAdapter.dtype -> np.dtype
  • removed: property PandasIndexAdapter.shape -> Tuple[int]
  • added: class LazilyIndexedArray(ExplicitlyIndexedNDArrayMixin)
  • added: constructor LazilyIndexedArray(array, key=…)
  • added: method LazilyIndexedArray.transpose(order)
  • added: property LazilyIndexedArray.shape
  • added: variable LazilyOuterIndexedArray
  • changed: function dataset_merge_method(dataset: Dataset, other: CoercibleMapping, overwrite_vars: Union[Hashable, Iterable[Hashable]], compat: str, join: str, fill_value: Any) -> _MergeResult → function dataset_merge_method(dataset: Dataset, other: CoercibleMapping, overwrite_vars: Union[Hashable, Iterable[Hashable]], compat: str, join: str, fill_value: Any, combine_attrs: str) -> _MergeResult
  • changed: function merge_collected(grouped: Dict[Hashable, List[MergeElement]], prioritized: Mapping[Hashable, MergeElement]=…, compat: str=…) -> Tuple[Dict[Hashable, Variable], Dict[Hashable, pd.Index]] → function merge_collected(grouped: Dict[Hashable, List[MergeElement]], prioritized: Mapping[Hashable, MergeElement]=…, compat: str=…, combine_attrs=…) -> Tuple[Dict[Hashable, Variable], Dict[Hashable, Index]]
  • changed: function merge_coordinates_without_align(objects: List[Coordinates], prioritized: Mapping[Hashable, MergeElement]=…, exclude_dims: AbstractSet=…) -> Tuple[Dict[Hashable, Variable], Dict[Hashable, pd.Index]] → function merge_coordinates_without_align(objects: List[Coordinates], prioritized: Mapping[Hashable, MergeElement]=…, exclude_dims: AbstractSet=…, combine_attrs: str=…) -> Tuple[Dict[Hashable, Variable], Dict[Hashable, Index]]
  • changed: function merge_coords(objects: Iterable[CoercibleMapping], compat: str=…, join: str=…, priority_arg: Optional[int]=…, indexes: Optional[Mapping[Hashable, pd.Index]]=…, fill_value: object=…) -> Tuple[Dict[Hashable, Variable], Dict[Hashable, pd.Index]] → function merge_coords(objects: Iterable[CoercibleMapping], compat: str=…, join: str=…, priority_arg: Optional[int]=…, indexes: Optional[Mapping[Hashable, Index]]=…, fill_value: object=…) -> Tuple[Dict[Hashable, Variable], Dict[Hashable, Index]]
  • changed: function merge_core(objects: Iterable[CoercibleMapping], compat: str=…, join: str=…, combine_attrs: Optional[str]=…, priority_arg: Optional[int]=…, explicit_coords: Optional[Sequence]=…, indexes: Optional[Mapping[Hashable, pd.Index]]=…, fill_value: object=…) -> _MergeResult → function merge_core(objects: Iterable[CoercibleMapping], compat: str=…, join: str=…, combine_attrs: Optional[str]=…, priority_arg: Optional[int]=…, explicit_coords: Optional[Sequence]=…, indexes: Optional[Mapping[Hashable, Index]]=…, fill_value: object=…) -> _MergeResult
  • removed: variable IS_NEP18_ACTIVE
  • added: function sliding_window_view(x, window_shape, axis=…, *, subok=…, writeable=…)
  • added: variable ArrayLike
  • added: variable HAVE_PROTOCOL
  • added: variable sliding_window_view
  • removed: function rolling_window(a, axis, window, center, fill_value)
  • removed: function inject_all_ops_and_reduce_methods(cls, priority=…, array_only=…)
  • removed: function inject_binary_ops(cls, inplace=…)
  • removed: variable CMP_BINARY_OPS
  • removed: variable NUMPY_UNARY_METHODS
  • removed: variable UNARY_OPS
  • added: class IncludeCumMethods
  • added: class IncludeNumpySameMethods
  • added: class IncludeReduceMethods
  • added: function inject_numpy_same(cls)
  • added: variable argsort
  • added: variable conj
  • added: variable conjugate
  • added: variable round_
  • added: variable DISPLAY_EXPAND_ATTRS
  • added: variable DISPLAY_EXPAND_COORDS
  • added: variable DISPLAY_EXPAND_DATA
  • added: variable DISPLAY_EXPAND_DATA_VARS
  • added: variable cupy_version
  • added: variable dask_version
  • added: variable sparse_version
  • changed: class Coarsen → class Coarsen(CoarsenArithmetic)
  • changed: method DataArrayCoarsen.reduce(func: Callable, **kwargs) → method DataArrayCoarsen.reduce(func: Callable, keep_attrs: bool=…, **kwargs)
  • changed: method DatasetCoarsen.reduce(func: Callable, **kwargs) → method DatasetCoarsen.reduce(func: Callable, keep_attrs=…, **kwargs)
  • changed: constructor RollingExp(obj: T_DSorDA, windows: Mapping[Hashable, int], window_type: str=…) → constructor RollingExp(obj: T_DSorDA, windows: Mapping[Hashable, Union[int, float]], window_type: str=…)
  • removed: function is_grib_path(path: str) -> bool
  • removed: function not_implemented(*args, **kwargs)
  • removed: function read_magic_number(filename_or_obj, count=…)
  • added: function read_magic_number_from_file(filename_or_obj, count=…) -> bytes
  • added: function try_read_magic_number_from_file_or_path(filename_or_obj, count=…) -> Optional[bytes]
  • added: function try_read_magic_number_from_path(pathlike, count=…) -> Optional[bytes]
  • changed: class Variable(common.AbstractArray, arithmetic.SupportsArithmetic, utils.NdimSizeLenMixin) → class Variable(AbstractArray, NdimSizeLenMixin, VariableArithmetic)
  • changed: function concat(variables, dim=…, positions=…, shortcut=…) → function concat(variables, dim=…, positions=…, shortcut=…, combine_attrs=…)
  • changed: static method IndexVariable.concat(variables, dim=…, positions=…, shortcut=…) → static method IndexVariable.concat(variables, dim=…, positions=…, shortcut=…, combine_attrs=…)
  • changed: static method Variable.concat(variables, dim=…, positions=…, shortcut=…) → static method Variable.concat(variables, dim=…, positions=…, shortcut=…, combine_attrs=…)
  • added: method Variable.clip(min=…, max=…)
  • added: export surface
  • changed: function scatter(ds, x, y, ax, u, v, **kwargs) → function scatter(ds, x, y, ax, **kwargs)
  • added: function streamplot(ds, x, y, ax, u, v, **kwargs)
  • added: function surface(x, y, z, ax, **kwargs)
  • removed: function file_md5_checksum(fname)
  • changed: function open_dataset(name, cache=…, cache_dir=…, github_url=…, branch=…, **kws) → function open_dataset(name, cache=…, cache_dir=…, *, engine=…, **kws)
  • added: function open_rasterio(name, engine=…, cache=…, cache_dir=…, **kws)
  • added: variable base_url
  • added: variable external_rasterio_urls
  • added: variable external_urls
  • added: variable file_formats
  • added: variable version
  • added: function binops(stub=…)
  • added: function inplace()
  • added: function render(ops_info, is_module)
  • added: function unops(self_type)
  • added: variable BINOPS_CMP
  • added: variable BINOPS_EQNE
  • added: variable BINOPS_INPLACE
  • added: variable BINOPS_NUM
  • added: variable BINOPS_REFLEXIVE
  • added: variable CLASS_PREAMBLE
  • added: variable COPY_DOCSTRING
  • added: variable MODULE_PREAMBLE
  • added: variable NO_OVERRIDE
  • added: variable OTHER_UNARY_METHODS
  • added: variable OVERRIDE_TYPESHED
  • added: variable STUBFILE_PREAMBLE
  • added: variable UNARY_OPS
  • added: variable is_module
  • added: variable ops_info
  • added: variable option
  • added: variable required_method_binary
  • added: variable required_method_inplace
  • added: variable required_method_unary
  • added: variable stub_da
  • added: variable stub_dagb
  • added: variable stub_ds
  • added: variable stub_dsgb
  • added: variable stub_other_unary
  • added: variable stub_required_binary
  • added: variable stub_required_inplace
  • added: variable stub_required_unary
  • added: variable stub_unary
  • added: variable stub_var
  • added: variable template_binop
  • added: variable template_inplace
  • added: variable template_other_unary
  • added: variable template_reflexive
  • added: variable template_unary