Fix(steps): Typing steps are bypassed

Useless steps where complex objects were built are not shown. I create
a typing function which is called when compute raise
NotImplementedError.
This commit is contained in:
2018-09-24 17:21:50 +02:00
parent 0e479323dd
commit a557fa3981
7 changed files with 149 additions and 13 deletions

View File

@@ -10,6 +10,7 @@
Divide MO
"""
from decimal import Decimal
from multipledispatch import Dispatcher
from ..tree import Tree
from ..MO.mo import MO, MOnumber
@@ -66,12 +67,22 @@ def divide_filter(left, right):
def monumber_monumber(left, right):
""" Divide 2 monumbers and return a MOFraction
>>> a = MOnumber(4)
>>> b = MOnumber(6.2)
>>> monumber_monumber(a, b)
Decimal('0.6451612903225806266768278939')
>>> a = MOnumber(4)
>>> b = MOnumber(6)
>>> monumber_monumber(a, b)
<MOFraction 4 / 6>
Traceback (most recent call last):
...
NotImplementedError: Can't divide 2 int. Need to create a Fraction instead
"""
return MOFraction(left, right)
if type(left.value) in [float, Decimal] or \
type(right.value) in [float, Decimal]:
return left / right
else:
raise NotImplementedError("Can't divide 2 int. Need to create a Fraction instead")
@divide.register(MOnumber, MOFraction)
@special_case(divide_filter)