[Debian-med-packaging] Bug#1069359: python-cooler: FTBFS due to TypeError in dask.dataframe import

Étienne Mollier emollier at debian.org
Mon Jun 3 22:00:34 BST 2024


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 <emollier at 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/debian-med-packaging/attachments/20240603/dc1b9304/attachment.sig>


More information about the Debian-med-packaging mailing list