Bug#1028548: New upstream version needed

Enrico Zini enrico at debian.org
Thu Jan 12 15:26:49 GMT 2023


Package: hyperspy
Version: 1.6.1-1
Severity: normal

Hello,

a new upstream version of hyperspy is needed to fix #997475 and to build
with the python/numpy/* toolchain currently in sid.

I started packaging it at https://salsa.debian.org/science-team/hyperspy/
and it's currently blocked by:

* python3-statsmodels and python3-dask not being coinstallable
  (relevant issues: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1025393
   and https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1027254 )

* seemingly numba-related errors in the test suite of this kind:

```
____________________________________________________________________ TestInteractive.test_lazy_interactive_snap[default] _____________________________________________________________________
[gw1] linux -- Python 3.11.1 /usr/bin/python3.11

self = <hyperspy.tests.utils.test_roi.TestInteractive object at 0x7fb2319d5190>, snap = True

    @pytest.mark.parametrize('snap', [True, False, 'default'])
    def test_interactive_snap(self, snap):
        kwargs = {}
        if snap != 'default':
            kwargs['snap'] = snap
        else:
            # default is True
            snap = True
        s = self.s
        r = RectangularROI(left=3, right=7, top=2, bottom=5)
>       s.plot()

hyperspy/tests/utils/test_roi.py:705: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
hyperspy/_signals/lazy.py:1234: in plot
    super().plot(navigator=navigator, **kwargs)
hyperspy/_signals/signal1d.py:1658: in plot
    super().plot(navigator=navigator,
hyperspy/signal.py:2898: in plot
    self._plot.plot(**kwargs)
hyperspy/drawing/mpl_he.py:188: in plot
    self.pointer.connect_navigate()
hyperspy/drawing/widget.py:225: in connect_navigate
    self._on_navigate(self.axes_manager)    # Update our position
hyperspy/drawing/widget.py:462: in _on_navigate
    self.position = p    # Use property to trigger events
hyperspy/drawing/widget.py:425: in <lambda>
    lambda s, v: s._set_position(v))
hyperspy/drawing/widget.py:419: in _set_position
    position = self._validate_pos(position)
hyperspy/drawing/widget.py:404: in _validate_pos
    pos = self._do_snap_position(pos)
hyperspy/drawing/widget.py:434: in _do_snap_position
    value[i] = ax.index2value(ax.value2index(value[i]))
hyperspy/axes.py:1214: in value2index
    round_half_towards_zero(index, decimals=0),
/usr/lib/python3/dist-packages/numba/core/dispatcher.py:468: in _compile_for_args
    error_rewrite(e, 'typing')
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

e = TypingError('Failed in nopython mode pipeline (step: nopython frontend)\n\x1b[1m\x1b[1m\x1b[1mNo implementation of fun... pragma: no cover\n    <source elided>\n\n\x1b[1m    return np.where(array >= 0,\n\x1b[0m    \x1b[1m^\x1b[0m\x1b[0m\n')
issue_type = 'typing'

    def error_rewrite(e, issue_type):
        """
        Rewrite and raise Exception `e` with help supplied based on the
        specified issue_type.
        """
        if config.SHOW_HELP:
            help_msg = errors.error_extras[issue_type]
            e.patch_message('\n'.join((str(e).rstrip(), help_msg)))
        if config.FULL_TRACEBACKS:
            raise e
        else:
>           raise e.with_traceback(None)
E           numba.core.errors.TypingError: Failed in nopython mode pipeline (step: nopython frontend)
E           No implementation of function Function(<function where at 0x7fb280c18cc0>) found for signature:
E            
E            >>> where(bool, float64, float64)
E            
E           There are 4 candidate implementations:
E             - Of which 4 did not match due to:
E             Overload in function '_OverloadWrapper._build.<locals>.ol_generated': File: numba/core/overload_glue.py: Line 129.
E               With argument(s): '(bool, float64, float64)':
E              Rejected as the implementation raised a specific error:
E                TypeError: code() argument 13 must be str, not int
E             raised from /usr/lib/python3/dist-packages/numba/core/overload_glue.py:64
E           
E           During: resolving callee type: Function(<function where at 0x7fb280c18cc0>)
E           During: typing of call at /media/hyperspy/.pybuild/cpython3_3.11_hyperspy/build/hyperspy/misc/array_tools.py (557)
E           
E           
E           File "hyperspy/misc/array_tools.py", line 557:
E           def round_half_towards_zero(array, decimals=0):  # pragma: no cover
E               <source elided>
E           
E               return np.where(array >= 0,
E               ^

/usr/lib/python3/dist-packages/numba/core/dispatcher.py:409: TypingError
```

I'm opening this issue to track progress on the situation.


Enrico

-- System Information:
Debian Release: bookworm/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 6.0.0-6-amd64 (SMP w/4 CPU threads; PREEMPT)
Locale: LANG=en_IE.UTF-8, LC_CTYPE=en_IE.UTF-8 (charmap=UTF-8), LANGUAGE=en_IE:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled



More information about the debian-science-maintainers mailing list