pandas_flavor
pandas_flavor copied to clipboard
BUG xarray ImportError: cannot import name 'ImplementsArrayReduce' from partially initialized module 'xarray.core.common'
Had an issue when I created an environment today with pytimetk
, which uses pandas_flavor
. The issue stems from changes made to xarray
.
The solution was to downgrade to xarray==2023.10.1
.
Here's the traceback:
ImportError Traceback (most recent call last)
/Users/mdancho/Desktop/learning_labs/lab_91_customer_lifetime_value_python_2/01_descriptive_clv.py in line 1
----> 14 import pytimetk as tk
File ~/opt/anaconda3/envs/lab_91_cltv/lib/python3.9/site-packages/pytimetk/__init__.py:4
2 # *** Import everything to make pytimetk a standalone package ***
----> 4 from .plot.plot_timeseries import *
5 from .plot.plot_anomalies import *
6 from .plot.plot_anomalies_decomp import *
File ~/opt/anaconda3/envs/lab_91_cltv/lib/python3.9/site-packages/pytimetk/plot/__init__.py:1
----> 1 from .plot_timeseries import *
2 from .plot_anomalies import *
3 from .plot_anomalies_decomp import *
File ~/opt/anaconda3/envs/lab_91_cltv/lib/python3.9/site-packages/pytimetk/plot/plot_timeseries.py:3
1 import pandas as pd
2 import numpy as np
----> 3 import pandas_flavor as pf
5 from plotnine import *
7 import plotly.express as px
File ~/opt/anaconda3/envs/lab_91_cltv/lib/python3.9/site-packages/pandas_flavor/__init__.py:8
1 """Top-level API for pandas-flavor."""
2 from .register import (
3 register_dataframe_accessor,
4 register_dataframe_method,
5 register_series_accessor,
6 register_series_method,
7 )
----> 8 from .xarray import (
9 register_xarray_dataarray_method,
10 register_xarray_dataset_method,
11 )
13 __all__ = [
14 "register_series_method",
15 "register_series_accessor",
(...)
19 "register_xarray_dataset_method",
20 ]
File ~/opt/anaconda3/envs/lab_91_cltv/lib/python3.9/site-packages/pandas_flavor/xarray.py:2
1 """XArray support for pandas_flavor."""
----> 2 from xarray import register_dataarray_accessor, register_dataset_accessor
3 from functools import wraps
6 def make_accessor_wrapper(method):
File ~/opt/anaconda3/envs/lab_91_cltv/lib/python3.9/site-packages/xarray/__init__.py:1
----> 1 from xarray import testing, tutorial
2 from xarray.backends.api import (
3 load_dataarray,
4 load_dataset,
(...)
8 save_mfdataset,
9 )
10 from xarray.backends.zarr import open_zarr
File ~/opt/anaconda3/envs/lab_91_cltv/lib/python3.9/site-packages/xarray/testing/__init__.py:1
----> 1 from xarray.testing.assertions import ( # noqa: F401
2 _assert_dataarray_invariants,
3 _assert_dataset_invariants,
4 _assert_indexes_invariants_checks,
5 _assert_internal_invariants,
6 _assert_variable_invariants,
7 _data_allclose_or_equiv,
8 assert_allclose,
9 assert_chunks_equal,
10 assert_duckarray_allclose,
11 assert_duckarray_equal,
12 assert_equal,
13 assert_identical,
14 )
16 __all__ = [
17 "assert_allclose",
18 "assert_chunks_equal",
(...)
22 "assert_identical",
23 ]
File ~/opt/anaconda3/envs/lab_91_cltv/lib/python3.9/site-packages/xarray/testing/assertions.py:11
8 import pandas as pd
10 from xarray.core import duck_array_ops, formatting, utils
---> 11 from xarray.core.coordinates import Coordinates
12 from xarray.core.dataarray import DataArray
13 from xarray.core.dataset import Dataset
File ~/opt/anaconda3/envs/lab_91_cltv/lib/python3.9/site-packages/xarray/core/coordinates.py:18
11 from xarray.core import formatting
12 from xarray.core.indexes import (
13 Index,
14 Indexes,
15 PandasMultiIndex,
16 assert_no_index_corrupted,
17 )
---> 18 from xarray.core.merge import merge_coordinates_without_align, merge_coords
19 from xarray.core.utils import Frozen, ReprObject
20 from xarray.core.variable import Variable, calculate_dimensions
File ~/opt/anaconda3/envs/lab_91_cltv/lib/python3.9/site-packages/xarray/core/merge.py:10
7 import pandas as pd
9 from xarray.core import dtypes
---> 10 from xarray.core.alignment import deep_align
11 from xarray.core.duck_array_ops import lazy_array_equiv
12 from xarray.core.indexes import (
13 Index,
14 Indexes,
(...)
17 indexes_equal,
18 )
File ~/opt/anaconda3/envs/lab_91_cltv/lib/python3.9/site-packages/xarray/core/alignment.py:14
11 import pandas as pd
13 from xarray.core import dtypes
---> 14 from xarray.core.common import DataWithCoords
15 from xarray.core.indexes import (
16 Index,
17 Indexes,
(...)
21 safe_cast_to_index,
22 )
23 from xarray.core.utils import is_dict_like, is_full_slice
File ~/opt/anaconda3/envs/lab_91_cltv/lib/python3.9/site-packages/xarray/core/common.py:17
15 from xarray.core.options import OPTIONS, _get_keep_attrs
16 from xarray.core.parallelcompat import get_chunked_array_type, guess_chunkmanager
---> 17 from xarray.core.pdcompat import _convert_base_to_offset
18 from xarray.core.pycompat import is_chunked_array
19 from xarray.core.utils import (
20 Frozen,
21 either_dict_or_kwargs,
22 emit_user_level_warning,
23 is_scalar,
24 )
File ~/opt/anaconda3/envs/lab_91_cltv/lib/python3.9/site-packages/xarray/core/pdcompat.py:44
41 import pandas as pd
42 from packaging.version import Version
---> 44 from xarray.coding import cftime_offsets
47 def count_not_none(*args) -> int:
48 """Compute the number of non-None arguments.
49
50 Copied from pandas.core.common.count_not_none (not part of the public API)
51 """
File ~/opt/anaconda3/envs/lab_91_cltv/lib/python3.9/site-packages/xarray/coding/cftime_offsets.py:52
49 import numpy as np
50 import pandas as pd
---> 52 from xarray.coding.cftimeindex import CFTimeIndex, _parse_iso8601_with_reso
53 from xarray.coding.times import (
54 _is_standard_calendar,
55 _should_cftime_be_used,
56 convert_time_or_go_back,
57 format_cftime_datetime,
58 )
59 from xarray.core.common import _contains_datetime_like_objects, is_np_datetime_like
File ~/opt/anaconda3/envs/lab_91_cltv/lib/python3.9/site-packages/xarray/coding/cftimeindex.py:52
49 import pandas as pd
50 from packaging.version import Version
---> 52 from xarray.coding.times import (
53 _STANDARD_CALENDARS,
54 cftime_to_nptime,
55 infer_calendar_name,
56 )
57 from xarray.core.common import _contains_cftime_datetimes
58 from xarray.core.options import OPTIONS
File ~/opt/anaconda3/envs/lab_91_cltv/lib/python3.9/site-packages/xarray/coding/times.py:14
11 import pandas as pd
12 from pandas.errors import OutOfBoundsDatetime, OutOfBoundsTimedelta
---> 14 from xarray.coding.variables import (
15 SerializationWarning,
16 VariableCoder,
17 lazy_elemwise_func,
18 pop_to,
19 safe_setitem,
20 unpack_for_decoding,
21 unpack_for_encoding,
22 )
23 from xarray.core import indexing
24 from xarray.core.common import contains_cftime_datetimes, is_np_datetime_like
File ~/opt/anaconda3/envs/lab_91_cltv/lib/python3.9/site-packages/xarray/coding/variables.py:15
13 from xarray.core.parallelcompat import get_chunked_array_type
14 from xarray.core.pycompat import is_chunked_array
---> 15 from xarray.core.variable import Variable
17 if TYPE_CHECKING:
18 T_VarTuple = tuple[tuple[Hashable, ...], Any, dict, dict]
File ~/opt/anaconda3/envs/lab_91_cltv/lib/python3.9/site-packages/xarray/core/variable.py:19
17 import xarray as xr # only for Dataset and DataArray
18 from xarray.core import common, dtypes, duck_array_ops, indexing, nputils, ops, utils
---> 19 from xarray.core.arithmetic import VariableArithmetic
20 from xarray.core.common import AbstractArray
21 from xarray.core.indexing import (
22 BasicIndexer,
23 OuterIndexer,
(...)
26 as_indexable,
27 )
File ~/opt/anaconda3/envs/lab_91_cltv/lib/python3.9/site-packages/xarray/core/arithmetic.py:16
8 # _typed_ops.py is a generated file
9 from xarray.core._typed_ops import (
10 DataArrayGroupByOpsMixin,
11 DataArrayOpsMixin,
(...)
14 VariableOpsMixin,
15 )
---> 16 from xarray.core.common import ImplementsArrayReduce, ImplementsDatasetReduce
17 from xarray.core.ops import (
18 IncludeCumMethods,
19 IncludeNumpySameMethods,
20 IncludeReduceMethods,
21 )
22 from xarray.core.options import OPTIONS, _get_keep_attrs
ImportError: cannot import name 'ImplementsArrayReduce' from partially initialized module 'xarray.core.common' (most likely due to a circular import) (/Users/mdancho/opt/anaconda3/envs/lab_91_cltv/lib/python3.9/site-packages/xarray/core/common.py)