Control: tags -1 + confirmed
Control: block -1 by 1068422
Control: retitle -1 python-cooler: FTBFS due to TypeError in dask.dataframe 
import

Hi,

After some investigations, it seems that #1069359 affecting
python-cooler is actually a manifestation of #1068422 affecting
dask, more precisely all attempts to load dataframe.  I adjust
the bug metadata to reflect that.  The relevant call trace looks
like:

        tests/test_create.py:24: 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
_ _ _ _ 
        /usr/lib/python3/dist-packages/dask/dataframe/__init__.py:98: in 
<module>
            from dask.dataframe import backends, dispatch, rolling
        /usr/lib/python3/dist-packages/dask/dataframe/backends.py:15: in 
<module>
            from dask.dataframe.core import DataFrame, Index, Scalar, Series, 
_Frame
        /usr/lib/python3/dist-packages/dask/dataframe/core.py:36: in <module>
            from dask.dataframe import methods
        /usr/lib/python3/dist-packages/dask/dataframe/methods.py:34: in <module>
            from dask.dataframe.utils import is_dataframe_like, is_index_like, 
is_series_like
        /usr/lib/python3/dist-packages/dask/dataframe/utils.py:20: in <module>
            from dask.dataframe import (  # noqa: F401 register pandas 
extension types
        /usr/lib/python3/dist-packages/dask/dataframe/_dtypes.py:9: in <module>
            from dask.dataframe.extensions import make_array_nonempty, 
make_scalar
        /usr/lib/python3/dist-packages/dask/dataframe/extensions.py:8: in 
<module>
            from dask.dataframe.accessor import (
        /usr/lib/python3/dist-packages/dask/dataframe/accessor.py:126: in 
<module>
            class DatetimeAccessor(Accessor):
        /usr/lib/python3/dist-packages/dask/dataframe/accessor.py:81: in 
__init_subclass__
            _bind_property(cls, pd_cls, attr, min_version)
        /usr/lib/python3/dist-packages/dask/dataframe/accessor.py:35: in 
_bind_property
            setattr(cls, attr, property(derived_from(pd_cls, 
version=min_version)(func)))
        /usr/lib/python3/dist-packages/dask/utils.py:983: in wrapper
            method.__doc__ = _derived_from(
        /usr/lib/python3/dist-packages/dask/utils.py:936: in _derived_from
            method_args = get_named_args(method)
        /usr/lib/python3/dist-packages/dask/utils.py:697: in get_named_args
            s = inspect.signature(func)
        /usr/lib/python3.12/inspect.py:3310: in signature
            return Signature.from_callable(obj, follow_wrapped=follow_wrapped,
        /usr/lib/python3.12/inspect.py:3054: in from_callable
            return _signature_from_callable(obj, sigcls=cls,
        /usr/lib/python3.12/inspect.py:2642: in _signature_from_callable
            call = _descriptor_get(call, obj)
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
_ _ _ _ 
        
        descriptor = <slot wrapper '__call__' of 'type' objects>
        obj = <property object at 0x7f7068ea0270>
        
            def _descriptor_get(descriptor, obj):
                if isclass(descriptor):
                    return descriptor
                get = getattr(type(descriptor), '__get__', _sentinel)
                if get is _sentinel:
                    return descriptor
        >       return get(descriptor, obj, type(obj))
        E       TypeError: descriptor '__call__' for 'type' objects doesn't 
apply to a 'property' object


Looking through cooler code, it seems dask.dataframe is an
optional component, and it may be possible to resolve the
present issue without waiting for resolution of the problem in
dask.  It would however require active reintroduction of dask in
the build dependencies, once the root cause is fixed, to get the
original test coverage on tracks.  On the other hand, skipping
tests involving unconditional loading of dask.dataframe would
probably permit reintroduction of python-cooler in testing, even
without dask.  I'm not implementing such skip right now: lookup
of the dask bug upstream[1] suggests there may be options to get
the issue sorted at the source.

[1]: https://github.com/dask/dask/pull/11035

In hope this helps,
-- 
  .''`.  Étienne Mollier <emoll...@debian.org>
 : :' :  pgp: 8f91 b227 c7d6 f2b1 948c  8236 793c f67e 8f0d 11da
 `. `'   sent from /dev/pts/4, please excuse my verbosity
   `-    on air: Moon Safari - Bluebells

Attachment: signature.asc
Description: PGP signature

Reply via email to