Skip to content

Commit 7d62845

Browse files
authored
Merge branch 'main' into pre-commit-ci-update-config
2 parents 6d9cbe2 + 6e77f5e commit 7d62845

File tree

121 files changed

+903
-808
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

+903
-808
lines changed

.pre-commit-config.yaml

+5
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

+1-2
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

+1-2
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

+1-2
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

+1-2
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

+1-2
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

+1-2
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

+1-2
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

+1-2
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

+1-2
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

+1-2
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

+3-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,9 @@ Documentation
4242

4343
Internal Changes
4444
~~~~~~~~~~~~~~~~
45-
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>`_.
4648

4749
.. _whats-new.2022.12.0:
4850

xarray/__init__.py

+24-21
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

+20-13
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

+12-12
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

+6-6
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

+4-4
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

+4-4
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(

xarray/backends/h5netcdf_.py

+14-14
Original file line numberDiff line numberDiff line change
@@ -6,32 +6,32 @@
66

77
from packaging.version import Version
88

9-
from ..core import indexing
10-
from ..core.utils import (
11-
FrozenDict,
12-
is_remote_uri,
13-
module_available,
14-
read_magic_number_from_file,
15-
try_read_magic_number_from_file_or_path,
16-
)
17-
from ..core.variable import Variable
18-
from .common import (
9+
from xarray.backends.common import (
1910
BACKEND_ENTRYPOINTS,
2011
BackendEntrypoint,
2112
WritableCFDataStore,
2213
_normalize_path,
2314
find_root_and_group,
2415
)
25-
from .file_manager import CachingFileManager, DummyFileManager
26-
from .locks import HDF5_LOCK, combine_locks, ensure_lock, get_write_lock
27-
from .netCDF4_ import (
16+
from xarray.backends.file_manager import CachingFileManager, DummyFileManager
17+
from xarray.backends.locks import HDF5_LOCK, combine_locks, ensure_lock, get_write_lock
18+
from xarray.backends.netCDF4_ import (
2819
BaseNetCDF4Array,
2920
_encode_nc4_variable,
3021
_extract_nc4_variable_encoding,
3122
_get_datatype,
3223
_nc4_require_group,
3324
)
34-
from .store import StoreBackendEntrypoint
25+
from xarray.backends.store import StoreBackendEntrypoint
26+
from xarray.core import indexing
27+
from xarray.core.utils import (
28+
FrozenDict,
29+
is_remote_uri,
30+
module_available,
31+
read_magic_number_from_file,
32+
try_read_magic_number_from_file_or_path,
33+
)
34+
from xarray.core.variable import Variable
3535

3636

3737
class H5NetCDFArrayWrapper(BaseNetCDF4Array):

xarray/backends/memory.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44

55
import numpy as np
66

7-
from ..core.variable import Variable
8-
from .common import AbstractWritableDataStore
7+
from xarray.backends.common import AbstractWritableDataStore
8+
from xarray.core.variable import Variable
99

1010

1111
class InMemoryDataStore(AbstractWritableDataStore):

0 commit comments

Comments
 (0)