Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BUG xarray ImportError: cannot import name 'ImplementsArrayReduce' from partially initialized module 'xarray.core.common' #33

Open
mdancho84 opened this issue Jan 31, 2024 · 1 comment

Comments

@mdancho84
Copy link

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)
@mdancho84 mdancho84 changed the title xarray ImportError: cannot import name 'ImplementsArrayReduce' from partially initialized module 'xarray.core.common' BUG xarray ImportError: cannot import name 'ImplementsArrayReduce' from partially initialized module 'xarray.core.common' Jan 31, 2024
@samukweku
Copy link

thanks for the feedback @mdancho84 I might be wrong; it looks like this is more with xarray than with pandas_flavor. tagging @ericmjl for his opinion

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants