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

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions