- 
                Notifications
    
You must be signed in to change notification settings  - Fork 25
 
Description
Describe the bug
Dividing/multiplying/subtracting histograms with weights results in an AttributeError, only the addition works. (as also mention here: #601 (comment))
Is this not implemented yet or is this ill-defined how to propagate the errors?
If the latter, is it worth to have a different error message than an AttributeError?
Steps to reproduce
Tested on newest release and on dev branch.
import boost_histogram as bh
h = bh.Histogram(bh.axis.Regular(10, -5, 5), storage=bh.storage.Weight())
h.fill([1.5, 2.5], weight=[0.5, 1.5])
h + h  # works
h / h  # this errors
h * h  # this errors
h - h  # this errors
Error message:
AttributeError: 'boost_histogram._core.hist.any_weight' object has no attribute '__imul__'
Full traceback
Details
AttributeError                            Traceback (most recent call last)
 in 
----> 1 h * h
~/anaconda3/envs/zfit39/lib/python3.9/site-packages/boost_histogram/_internal/hist.py in mul(self, other)
360     ) -> H:
361         result = self.copy(deep=False)
--> 362         return result._compute_inplace_op("imul", other)
363
364     def rmul(
~/anaconda3/envs/zfit39/lib/python3.9/site-packages/boost_histogram/_internal/hist.py in _compute_inplace_op(self, name, other)
399         # Also takes CppHistogram, but that confuses mypy because it's hard to pick out
400         if isinstance(other, Histogram):
--> 401             getattr(self._hist, name)(other._hist)
402         elif isinstance(other, tuple(_histograms)):
403             getattr(self._hist, name)(other)
AttributeError: 'boost_histogram._core.hist.any_weight' object has no attribute 'imul'