[IMP] mis_builder: support SimpleArray operations with ints/floats
parent
2d008a0b69
commit
ad3145283d
|
@ -1,3 +1,6 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# © 2014-2015 ACSONE SA/NV (<http://acsone.eu>)
|
||||||
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
||||||
""" A trivial immutable array that supports basic arithmetic operations.
|
""" A trivial immutable array that supports basic arithmetic operations.
|
||||||
|
|
||||||
>>> a = SimpleArray((1.0, 2.0, 3.0))
|
>>> a = SimpleArray((1.0, 2.0, 3.0))
|
||||||
|
@ -37,6 +40,12 @@ SimpleArray((4.0, 2.5, 2.0))
|
||||||
SimpleArray((0.25, 0.4, 0.5))
|
SimpleArray((0.25, 0.4, 0.5))
|
||||||
>>> t / a
|
>>> t / a
|
||||||
SimpleArray((4.0, 2.5, 2.0))
|
SimpleArray((4.0, 2.5, 2.0))
|
||||||
|
>>> b / 2
|
||||||
|
SimpleArray((2.0, 2.5, 3.0))
|
||||||
|
>>> 2 * b
|
||||||
|
SimpleArray((8.0, 10.0, 12.0))
|
||||||
|
>>> b += 2 ; b
|
||||||
|
SimpleArray((6.0, 7.0, 8.0))
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import operator
|
import operator
|
||||||
|
@ -52,7 +61,8 @@ class SimpleArray(tuple):
|
||||||
if len(other) != len(self):
|
if len(other) != len(self):
|
||||||
raise TypeError("tuples must have same length for %s" % op)
|
raise TypeError("tuples must have same length for %s" % op)
|
||||||
return SimpleArray(map(op, self, other))
|
return SimpleArray(map(op, self, other))
|
||||||
return NotImplemented
|
else:
|
||||||
|
return SimpleArray(map(lambda x: op(x, other), self))
|
||||||
|
|
||||||
def __add__(self, other):
|
def __add__(self, other):
|
||||||
return self._op(operator.add, other)
|
return self._op(operator.add, other)
|
||||||
|
|
Loading…
Reference in New Issue