Skip to content

Dask API change triggers AttributeError in vinterp #345

@valeriupredoi

Description

@valeriupredoi

hey folks, we're seeing an issue with the current main here, and Dask (2025.3 and 2025.5), see below:

src/stratify/_vinterp.pyx:551: in stratify._vinterp.interpolate
    ???
/opt/conda/envs/esmvaltool/lib/python3.13/site-packages/dask/array/core.py:905: in map_blocks
    out = blockwise(
/opt/conda/envs/esmvaltool/lib/python3.13/site-packages/dask/array/blockwise.py:249: in blockwise
    base.tokenize(
/opt/conda/envs/esmvaltool/lib/python3.13/site-packages/dask/tokenize.py:76: in tokenize
    return _tokenize(*args, **kwargs)
/opt/conda/envs/esmvaltool/lib/python3.13/site-packages/dask/tokenize.py:34: in _tokenize
    token: object = _normalize_seq_func(args)
/opt/conda/envs/esmvaltool/lib/python3.13/site-packages/dask/tokenize.py:154: in _normalize_seq_func
    return tuple(map(_inner_normalize_token, seq))
/opt/conda/envs/esmvaltool/lib/python3.13/site-packages/dask/tokenize.py:147: in _inner_normalize_token
    return normalize_token(item)
/opt/conda/envs/esmvaltool/lib/python3.13/site-packages/dask/utils.py:778: in __call__
    return meth(arg, *args, **kwargs)
/opt/conda/envs/esmvaltool/lib/python3.13/site-packages/dask/tokenize.py:176: in normalize_partial
    return _normalize_seq_func((func.func, func.args, func.keywords))
/opt/conda/envs/esmvaltool/lib/python3.13/site-packages/dask/tokenize.py:154: in _normalize_seq_func
    return tuple(map(_inner_normalize_token, seq))
/opt/conda/envs/esmvaltool/lib/python3.13/site-packages/dask/tokenize.py:147: in _inner_normalize_token
    return normalize_token(item)
/opt/conda/envs/esmvaltool/lib/python3.13/site-packages/dask/utils.py:777: in __call__
    meth = self.dispatch(type(arg))
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <dask.utils.Dispatch object at 0x7f14fa99b610>
cls = <class '_cython_3_1_0.cython_function_or_method'>

    def dispatch(self, cls):
        """Return the function implementation for the given ``cls``"""
        lk = self._lookup
        if cls in lk:
            return lk[cls]
        for cls2 in cls.__mro__:
            # Is a lazy registration function present?
>           toplevel, _, _ = cls2.__module__.partition(".")
E           AttributeError: 'member_descriptor' object has no attribute 'partition'

/opt/conda/envs/esmvaltool/lib/python3.13/site-packages/dask/utils.py:750: AttributeError

Full stack trace and environment

Thanks to @schlunma for spotting this! Please close and my apologies if you are already aware of this 🍻

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions