Skip to content

Commit 284cff3

Browse files
committed
Merge branch 'main' into groupby-save-codes-new
* main: absolufy-imports - No relative imports - PEP8 (pydata#7204) [skip-ci] whats-new for dev (pydata#7351) Whats-new: 2022.12.0 (pydata#7345) Fix assign_coords resetting all dimension coords to default index (pydata#7347)
2 parents 1ca5b90 + 6e77f5e commit 284cff3

File tree

121 files changed

+961
-817
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

121 files changed

+961
-817
lines changed

.pre-commit-config.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@ repos:
88
- id: check-yaml
99
- id: debug-statements
1010
- id: mixed-line-ending
11+
- repo: https://github.com/MarcoGorelli/absolufy-imports
12+
rev: v0.3.1
13+
hooks:
14+
- id: absolufy-imports
15+
name: absolufy-imports
1116
# This wants to go before isort & flake8
1217
- repo: https://github.com/PyCQA/autoflake
1318
rev: "v2.0.0"

asv_bench/benchmarks/dataarray_missing.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import pandas as pd
22

33
import xarray as xr
4-
5-
from . import parameterized, randn, requires_dask
4+
from asv_bench.benchmarks import parameterized, randn, requires_dask
65

76

87
def make_bench_data(shape, frac_nan, chunks):

asv_bench/benchmarks/dataset_io.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
import pandas as pd
55

66
import xarray as xr
7-
8-
from . import _skip_slow, randint, randn, requires_dask
7+
from asv_bench.benchmarks import _skip_slow, randint, randn, requires_dask
98

109
try:
1110
import dask

asv_bench/benchmarks/groupby.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22
import pandas as pd
33

44
import xarray as xr
5-
6-
from . import _skip_slow, parameterized, requires_dask
5+
from asv_bench.benchmarks import _skip_slow, parameterized, requires_dask
76

87

98
class GroupBy:

asv_bench/benchmarks/indexing.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
import pandas as pd
55

66
import xarray as xr
7-
8-
from . import parameterized, randint, randn, requires_dask
7+
from asv_bench.benchmarks import parameterized, randint, randn, requires_dask
98

109
nx = 2000
1110
ny = 1000

asv_bench/benchmarks/interp.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22
import pandas as pd
33

44
import xarray as xr
5-
6-
from . import parameterized, randn, requires_dask
5+
from asv_bench.benchmarks import parameterized, randn, requires_dask
76

87
nx = 1500
98
ny = 1000

asv_bench/benchmarks/pandas.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22
import pandas as pd
33

44
import xarray as xr
5-
6-
from . import parameterized
5+
from asv_bench.benchmarks import parameterized
76

87

98
class MultiIndexSeries:

asv_bench/benchmarks/polyfit.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import numpy as np
22

33
import xarray as xr
4-
5-
from . import parameterized, randn, requires_dask
4+
from asv_bench.benchmarks import parameterized, randn, requires_dask
65

76
NDEGS = (2, 5, 20)
87
NX = (10**2, 10**6)

asv_bench/benchmarks/reindexing.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import numpy as np
22

33
import xarray as xr
4-
5-
from . import requires_dask
4+
from asv_bench.benchmarks import requires_dask
65

76
ntime = 500
87
nx = 50

asv_bench/benchmarks/rolling.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22
import pandas as pd
33

44
import xarray as xr
5-
6-
from . import parameterized, randn, requires_dask
5+
from asv_bench.benchmarks import parameterized, randn, requires_dask
76

87
nx = 300
98
long_nx = 30000

asv_bench/benchmarks/unstacking.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22
import pandas as pd
33

44
import xarray as xr
5-
6-
from . import requires_dask, requires_sparse
5+
from asv_bench.benchmarks import requires_dask, requires_sparse
76

87

98
class Unstacking:

doc/whats-new.rst

Lines changed: 42 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,48 @@ What's New
1414
1515
np.random.seed(123456)
1616
17-
.. _whats-new.2022.11.1:
1817
19-
v2022.11.1 (unreleased)
18+
.. _whats-new.2022.12.1:
19+
20+
v2022.12.1 (unreleased)
21+
-----------------------
22+
23+
New Features
24+
~~~~~~~~~~~~
25+
26+
27+
Breaking changes
28+
~~~~~~~~~~~~~~~~
29+
30+
31+
Deprecations
32+
~~~~~~~~~~~~
33+
34+
35+
Bug fixes
36+
~~~~~~~~~
37+
38+
39+
Documentation
40+
~~~~~~~~~~~~~
41+
42+
43+
Internal Changes
44+
~~~~~~~~~~~~~~~~
45+
- Add the pre-commit hook `absolufy-imports` to convert relative xarray imports to
46+
absolute imports (:pull:`7204`).
47+
By `Jimmy Westling <https://github.com/illviljan>`_.
48+
49+
.. _whats-new.2022.12.0:
50+
51+
v2022.12.0 (2022 Dec 2)
2052
-----------------------
2153

54+
This release includes a number of bug fixes and experimental support for Zarr V3.
55+
Thanks to the 16 contributors to this release:
56+
Deepak Cherian, Francesco Zanetta, Gregory Lee, Illviljan, Joe Hamman, Justus Magin, Luke Conibear, Mark Harfouche, Mathias Hauser,
57+
Mick, Mike Taves, Sam Levang, Spencer Clark, Tom Nicholas, Wei Ji, templiert
58+
2259
New Features
2360
~~~~~~~~~~~~
2461
- Enable using `offset` and `origin` arguments in :py:meth:`DataArray.resample`
@@ -65,6 +102,8 @@ Bug fixes
65102
By `Michael Niklas <https://github.com/headtr1ck>`_.
66103
- Fix multiple reads on fsspec S3 files by resetting file pointer to 0 when reading file streams (:issue:`6813`, :pull:`7304`).
67104
By `David Hoese <https://github.com/djhoese>`_ and `Wei Ji Leong <https://github.com/weiji14>`_.
105+
- Fix :py:meth:`Dataset.assign_coords` resetting all dimension coordinates to default (pandas) index (:issue:`7346`, :pull:`7347`).
106+
By `Benoît Bovy <https://github.com/benbovy>`_.
68107

69108
Documentation
70109
~~~~~~~~~~~~~
@@ -2601,7 +2640,7 @@ Breaking changes
26012640
have removed the internal use of the ``OrderedDict`` in favor of Python's builtin
26022641
``dict`` object which is now ordered itself. This change will be most obvious when
26032642
interacting with the ``attrs`` property on Dataset and DataArray objects.
2604-
(:issue:`3380`, :pull:`3389`). HBy `Joeamman <https://github.com/jhamman>`_.
2643+
(:issue:`3380`, :pull:`3389`). By `Joe Hamman <https://github.com/jhamman>`_.
26052644

26062645
New functions/methods
26072646
~~~~~~~~~~~~~~~~~~~~~

xarray/__init__.py

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
1-
from . import testing, tutorial
2-
from .backends.api import (
1+
from xarray import testing, tutorial
2+
from xarray.backends.api import (
33
load_dataarray,
44
load_dataset,
55
open_dataarray,
66
open_dataset,
77
open_mfdataset,
88
save_mfdataset,
99
)
10-
from .backends.rasterio_ import open_rasterio
11-
from .backends.zarr import open_zarr
12-
from .coding.cftime_offsets import cftime_range, date_range, date_range_like
13-
from .coding.cftimeindex import CFTimeIndex
14-
from .coding.frequencies import infer_freq
15-
from .conventions import SerializationWarning, decode_cf
16-
from .core.alignment import align, broadcast
17-
from .core.combine import combine_by_coords, combine_nested
18-
from .core.common import ALL_DIMS, full_like, ones_like, zeros_like
19-
from .core.computation import (
10+
from xarray.backends.rasterio_ import open_rasterio
11+
from xarray.backends.zarr import open_zarr
12+
from xarray.coding.cftime_offsets import cftime_range, date_range, date_range_like
13+
from xarray.coding.cftimeindex import CFTimeIndex
14+
from xarray.coding.frequencies import infer_freq
15+
from xarray.conventions import SerializationWarning, decode_cf
16+
from xarray.core.alignment import align, broadcast
17+
from xarray.core.combine import combine_by_coords, combine_nested
18+
from xarray.core.common import ALL_DIMS, full_like, ones_like, zeros_like
19+
from xarray.core.computation import (
2020
apply_ufunc,
2121
corr,
2222
cov,
@@ -26,15 +26,18 @@
2626
unify_chunks,
2727
where,
2828
)
29-
from .core.concat import concat
30-
from .core.dataarray import DataArray
31-
from .core.dataset import Dataset
32-
from .core.extensions import register_dataarray_accessor, register_dataset_accessor
33-
from .core.merge import Context, MergeError, merge
34-
from .core.options import get_options, set_options
35-
from .core.parallel import map_blocks
36-
from .core.variable import Coordinate, IndexVariable, Variable, as_variable
37-
from .util.print_versions import show_versions
29+
from xarray.core.concat import concat
30+
from xarray.core.dataarray import DataArray
31+
from xarray.core.dataset import Dataset
32+
from xarray.core.extensions import (
33+
register_dataarray_accessor,
34+
register_dataset_accessor,
35+
)
36+
from xarray.core.merge import Context, MergeError, merge
37+
from xarray.core.options import get_options, set_options
38+
from xarray.core.parallel import map_blocks
39+
from xarray.core.variable import Coordinate, IndexVariable, Variable, as_variable
40+
from xarray.util.print_versions import show_versions
3841

3942
try:
4043
from importlib.metadata import version as _version

xarray/backends/__init__.py

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,26 @@
33
DataStores provide a uniform interface for saving and loading data in different
44
formats. They should not be used directly, but rather through Dataset objects.
55
"""
6-
from .cfgrib_ import CfGribDataStore
7-
from .common import AbstractDataStore, BackendArray, BackendEntrypoint
8-
from .file_manager import CachingFileManager, DummyFileManager, FileManager
9-
from .h5netcdf_ import H5netcdfBackendEntrypoint, H5NetCDFStore
10-
from .memory import InMemoryDataStore
11-
from .netCDF4_ import NetCDF4BackendEntrypoint, NetCDF4DataStore
12-
from .plugins import list_engines
13-
from .pseudonetcdf_ import PseudoNetCDFBackendEntrypoint, PseudoNetCDFDataStore
14-
from .pydap_ import PydapBackendEntrypoint, PydapDataStore
15-
from .pynio_ import NioDataStore
16-
from .scipy_ import ScipyBackendEntrypoint, ScipyDataStore
17-
from .store import StoreBackendEntrypoint
18-
from .zarr import ZarrBackendEntrypoint, ZarrStore
6+
from xarray.backends.cfgrib_ import CfGribDataStore
7+
from xarray.backends.common import AbstractDataStore, BackendArray, BackendEntrypoint
8+
from xarray.backends.file_manager import (
9+
CachingFileManager,
10+
DummyFileManager,
11+
FileManager,
12+
)
13+
from xarray.backends.h5netcdf_ import H5netcdfBackendEntrypoint, H5NetCDFStore
14+
from xarray.backends.memory import InMemoryDataStore
15+
from xarray.backends.netCDF4_ import NetCDF4BackendEntrypoint, NetCDF4DataStore
16+
from xarray.backends.plugins import list_engines
17+
from xarray.backends.pseudonetcdf_ import (
18+
PseudoNetCDFBackendEntrypoint,
19+
PseudoNetCDFDataStore,
20+
)
21+
from xarray.backends.pydap_ import PydapBackendEntrypoint, PydapDataStore
22+
from xarray.backends.pynio_ import NioDataStore
23+
from xarray.backends.scipy_ import ScipyBackendEntrypoint, ScipyDataStore
24+
from xarray.backends.store import StoreBackendEntrypoint
25+
from xarray.backends.zarr import ZarrBackendEntrypoint, ZarrStore
1926

2027
__all__ = [
2128
"AbstractDataStore",

xarray/backends/api.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,20 +25,20 @@
2525

2626
import numpy as np
2727

28-
from .. import backends, conventions
29-
from ..core import indexing
30-
from ..core.combine import (
28+
from xarray import backends, conventions
29+
from xarray.backends import plugins
30+
from xarray.backends.common import AbstractDataStore, ArrayWriter, _normalize_path
31+
from xarray.backends.locks import _get_scheduler
32+
from xarray.core import indexing
33+
from xarray.core.combine import (
3134
_infer_concat_order_from_positions,
3235
_nested_combine,
3336
combine_by_coords,
3437
)
35-
from ..core.dataarray import DataArray
36-
from ..core.dataset import Dataset, _get_chunk, _maybe_chunk
37-
from ..core.indexes import Index
38-
from ..core.utils import is_remote_uri
39-
from . import plugins
40-
from .common import AbstractDataStore, ArrayWriter, _normalize_path
41-
from .locks import _get_scheduler
38+
from xarray.core.dataarray import DataArray
39+
from xarray.core.dataset import Dataset, _get_chunk, _maybe_chunk
40+
from xarray.core.indexes import Index
41+
from xarray.core.utils import is_remote_uri
4242

4343
if TYPE_CHECKING:
4444
try:
@@ -47,13 +47,13 @@
4747
Delayed = None # type: ignore
4848
from io import BufferedIOBase
4949

50-
from ..core.types import (
50+
from xarray.backends.common import BackendEntrypoint
51+
from xarray.core.types import (
5152
CombineAttrsOptions,
5253
CompatOptions,
5354
JoinOptions,
5455
NestedSequence,
5556
)
56-
from .common import BackendEntrypoint
5757

5858
T_NetcdfEngine = Literal["netcdf4", "scipy", "h5netcdf"]
5959
T_Engine = Union[

xarray/backends/cfgrib_.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,18 @@
55

66
import numpy as np
77

8-
from ..core import indexing
9-
from ..core.utils import Frozen, FrozenDict, close_on_error, module_available
10-
from ..core.variable import Variable
11-
from .common import (
8+
from xarray.backends.common import (
129
BACKEND_ENTRYPOINTS,
1310
AbstractDataStore,
1411
BackendArray,
1512
BackendEntrypoint,
1613
_normalize_path,
1714
)
18-
from .locks import SerializableLock, ensure_lock
19-
from .store import StoreBackendEntrypoint
15+
from xarray.backends.locks import SerializableLock, ensure_lock
16+
from xarray.backends.store import StoreBackendEntrypoint
17+
from xarray.core import indexing
18+
from xarray.core.utils import Frozen, FrozenDict, close_on_error, module_available
19+
from xarray.core.variable import Variable
2020

2121
# FIXME: Add a dedicated lock, even if ecCodes is supposed to be thread-safe
2222
# in most circumstances. See:

xarray/backends/common.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88

99
import numpy as np
1010

11-
from ..conventions import cf_encoder
12-
from ..core import indexing
13-
from ..core.pycompat import is_duck_dask_array
14-
from ..core.utils import FrozenDict, NdimSizeLenMixin, is_remote_uri
11+
from xarray.conventions import cf_encoder
12+
from xarray.core import indexing
13+
from xarray.core.pycompat import is_duck_dask_array
14+
from xarray.core.utils import FrozenDict, NdimSizeLenMixin, is_remote_uri
1515

1616
if TYPE_CHECKING:
1717
from io import BufferedIOBase

xarray/backends/file_manager.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77
import warnings
88
from typing import Any, Hashable
99

10-
from ..core import utils
11-
from ..core.options import OPTIONS
12-
from .locks import acquire
13-
from .lru_cache import LRUCache
10+
from xarray.backends.locks import acquire
11+
from xarray.backends.lru_cache import LRUCache
12+
from xarray.core import utils
13+
from xarray.core.options import OPTIONS
1414

1515
# Global cache for storing open files.
1616
FILE_CACHE: LRUCache[Any, io.IOBase] = LRUCache(

0 commit comments

Comments
 (0)