Some PEP8 rectifications

This commit is contained in:
Bertrand Benjamin 2018-03-13 14:43:48 +03:00
parent e9046c49ff
commit e4efa1028e
14 changed files with 100 additions and 109 deletions

View File

@ -7,7 +7,7 @@
# Distributed under terms of the MIT license.
from mapytex.calculus.core.tree import Tree
from .mo import MO, MOError
from .mo import MO
__all__ = ["MOFraction"]
@ -33,9 +33,9 @@ class MOFraction(MO):
<MOFraction - 2 / 3>
"""
base_value = Tree("/",
MO.factory(numerator),
MO.factory(denominator),
)
MO.factory(numerator),
MO.factory(denominator),
)
if negative:
value = Tree("-", None, base_value)
else:

View File

@ -6,9 +6,9 @@
#
# Distributed under terms of the MIT license.
from decimal import Decimal
from ..coroutine import coroutine, STOOOP
from ..renders import tree2txt, tree2tex
from decimal import Decimal
__all__ = ["moify", "MO", "MOstr"]
@ -43,23 +43,22 @@ class MO(object):
"""MO for math object
This base class is representing int and Decimal. It stocks its value in
self.value and it
This base class is representing int and Decimal. It stocks its value in
self.value and it
"""
def __init__(self, value):
""" Initiate the MO
It should be idempotent.
>>> a = MO(3)
>>> a
<MO 3>
>>> a = MO(a)
>>> a
<MO 3>
"""
try:
self.value = value.value
@ -107,7 +106,7 @@ class MOnumber(MO):
""" Base number math object (int or Decimal) """
def __init__(self, value, negative=False):
def __init__(self, value):
""" Initiate a number MO
>>> MOnumber(23)
@ -134,7 +133,7 @@ class MOnumber(MO):
except AttributeError:
val = value
if isinstance(val, int) or isinstance(val, Decimal):
if isinstance(val, (int, Decimal)):
MO.__init__(self, value)
elif isinstance(val, float):
MO.__init__(self, Decimal(val))
@ -154,7 +153,7 @@ class MOnumber(MO):
return str(self.value)
return f"- {abs(self.value)}"
class MOstr(MO):
""" Unknown math object like x or n"""
@ -197,7 +196,7 @@ class MOstr(MO):
MO.__init__(self, value)
self.is_scalar = False
# -----------------------------
# Reglages pour 'vim'
# vim:set autoindent expandtab tabstop=4 shiftwidth=4:

View File

@ -10,7 +10,6 @@
Computing with MO
"""
from ..operator import OPERATORS
from .exceptions import ComputeError
from .add import add
from .minus import minus

View File

@ -11,8 +11,7 @@ Adding MO
"""
from ..tree import Tree
from ..operator import OPERATORS
from ..MO.mo import MO, MOnumber, MOstr
from ..MO.mo import MO, MOnumber
from ..MO.fraction import MOFraction
from .exceptions import AddError
from .arithmetic import lcm
@ -206,11 +205,11 @@ def mofraction_mofraction(left, right):
# TODO: Faire un décorateur pour un enregistrement automatique |dim. mars 11 18:24:32 EAT 2018
ADDFUNCTIONS = {
(MOnumber, MOnumber): monumber_monumber,
(MOnumber, MOFraction): monumber_mofraction,
(MOFraction, MOnumber): mofraction_monumber,
(MOFraction, MOFraction): mofraction_mofraction,
}
(MOnumber, MOnumber): monumber_monumber,
(MOnumber, MOFraction): monumber_mofraction,
(MOFraction, MOnumber): mofraction_monumber,
(MOFraction, MOFraction): mofraction_mofraction,
}
# -----------------------------
# Reglages pour 'vim'

View File

@ -22,6 +22,9 @@ class MinusError(ComputeError):
class MultiplyError(ComputeError):
pass
class DivideError(ComputeError):
pass
# -----------------------------
# Reglages pour 'vim'

View File

@ -10,12 +10,9 @@
Minus MO: take the opposit
"""
from ..tree import Tree
from ..operator import OPERATORS
from ..MO.mo import MO, MOnumber, MOstr
from ..MO.mo import MO, MOnumber
from ..MO.fraction import MOFraction
from .exceptions import MinusError
from .arithmetic import lcm
def minus(left, right):
@ -92,9 +89,9 @@ def mofraction(right):
# TODO: Faire un décorateur pour un enregistrement automatique |dim. mars 11 18:24:32 EAT 2018
MINUSFUNCTIONS = {
MOnumber: monumber,
MOFraction: mofraction,
}
MOnumber: monumber,
MOFraction: mofraction,
}
# -----------------------------
# Reglages pour 'vim'

View File

@ -11,8 +11,7 @@ Multiply MO
"""
from ..tree import Tree
from ..operator import OPERATORS
from ..MO.mo import MO, MOnumber, MOstr
from ..MO.mo import MO, MOnumber
from ..MO.fraction import MOFraction
from .exceptions import MultiplyError
@ -116,10 +115,10 @@ def mofraction_monumber(left, right):
# TODO: Faire un décorateur pour un enregistrement automatique |dim. mars 11 18:24:32 EAT 2018
MULFUNCTIONS = {
(MOnumber, MOnumber): monumber_monumber,
(MOnumber, MOFraction): monumber_mofraction,
(MOFraction, MOnumber): mofraction_monumber,
}
(MOnumber, MOnumber): monumber_monumber,
(MOnumber, MOFraction): monumber_mofraction,
(MOFraction, MOnumber): mofraction_monumber,
}
# -----------------------------
# Reglages pour 'vim'

View File

@ -16,8 +16,8 @@ __all__ = ["coroutine", "STOOOP", "RESTAAART"]
def coroutine(func):
@wraps(func)
def start(*args,**kwargs):
cr = func(*args,**kwargs)
def start(*args, **kwargs):
cr = func(*args, **kwargs)
next(cr)
return cr
return start

View File

@ -12,26 +12,26 @@ class OperatorError(Exception):
pass
OPERATORS = {
"+": {'repr': "+",
'arity': 2,
'precedence': 0,
},
"-": {'repr': "-",
'arity': 1,
'precedence': 1,
},
"*": {'repr': "*",
'arity': 2,
'precedence': 2,
},
"/": {'repr': "/",
'arity': 2,
'precedence': 3,
},
"^": {'repr': "^",
'arity': 2,
'precedence': 4,
},
"+": {'repr': "+",
'arity': 2,
'precedence': 0,
},
"-": {'repr': "-",
'arity': 1,
'precedence': 1,
},
"*": {'repr': "*",
'arity': 2,
'precedence': 2,
},
"/": {'repr': "/",
'arity': 2,
'precedence': 3,
},
"^": {'repr': "^",
'arity': 2,
'precedence': 4,
},
}
def is_operator(string):

View File

@ -126,8 +126,7 @@ def mul2tex(left, right):
if display_time:
return f"{left_} \\times {right_}"
else:
return f"{left_}{right_}"
return f"{left_}{right_}"
def div2tex(left, right):
r""" / rendering
@ -199,12 +198,12 @@ def pow2tex(left, right):
return f"{left_} ^ {right_}"
OPERATOR2tex = {
"+": plus2tex,
"-": minus2tex,
"*": mul2tex,
"/": div2tex,
"^": pow2tex,
OPERATOR2TEX = {
"+": plus2tex,
"-": minus2tex,
"*": mul2tex,
"/": div2tex,
"^": pow2tex,
}
def tree2tex(tree):
@ -217,7 +216,7 @@ def tree2tex(tree):
>>> tree2tex(t)
'2 + 3 \\times 4'
"""
return OPERATOR2tex[tree.node](tree.left_value, tree.right_value)
return OPERATOR2TEX[tree.node](tree.left_value, tree.right_value)
# -----------------------------

View File

@ -214,11 +214,11 @@ def pow2txt(left, right):
return f"{left_} ^ {right_}"
OPERATOR2TXT = {
"+": plus2txt,
"-": minus2txt,
"*": mul2txt,
"/": div2txt,
"^": pow2txt,
"+": plus2txt,
"-": minus2txt,
"*": mul2txt,
"/": div2txt,
"^": pow2txt,
}
def tree2txt(tree):
@ -231,7 +231,7 @@ def tree2txt(tree):
>>> tree2txt(t)
'2 + 3 * 4'
"""
return OPERATOR2TXT[tree.node](tree.left_value, tree.right_value)
return OPERATOR2TXT[tree.node](tree.left_value, tree.right_value)
# -----------------------------

View File

@ -25,7 +25,7 @@ class ParsingError(Exception):
def maybe_it_is(cara):
""" Return a function which return
Maybe if cara startwith the argument and True if it is cara
Maybe if cara startwith the argument and True if it is cara
:exemple:
@ -170,7 +170,7 @@ def lookfor(condition, replace = lambda x:''.join(x)):
ans = "maybe"
elif found:
ans = replace(acc)
acc = []
acc = []
else:
ans = False
acc = []
@ -293,8 +293,6 @@ def concurent_broadcast(target, lookfors = []):
lookfors_ = [remember_lookfor(lkf) for lkf in lookfors]
stock = []
ans = []
try:
while True:
found = False
@ -310,7 +308,7 @@ def concurent_broadcast(target, lookfors = []):
for lf in lookfors_:
lf.throw(RESTAAART)
for i in found:
ans = target_.send(i)
target_.send(i)
except STOOOP as err:
for lf in lookfors_:
last = lf.throw(RESTAAART)
@ -320,7 +318,7 @@ def concurent_broadcast(target, lookfors = []):
@coroutine
def missing_times(target):
""" Coroutine which send a "*" when it's missing
""" Coroutine which send a "*" when it's missing
Cases where a "*" is missing:
- 2x or yx or )x
@ -380,14 +378,14 @@ def missing_times(target):
if not previous is None:
previous = None
if type(tok) == str:
if isinstance(tok, str):
if tok == '(':
target_.send("*")
elif not is_operator(tok) and tok != ')':
target_.send("*")
if type(tok) == int or \
(type(tok) == str and \
if isinstance(tok, int) or \
(isinstance(tok, str) and \
not is_operator(tok) and \
not tok == '('):
previous = tok
@ -462,7 +460,6 @@ def lookforNumbers(target):
target_ = target
current = ""
ans = []
try:
while True:
tok = yield
@ -473,12 +470,12 @@ def lookforNumbers(target):
if tok == '.':
if "." in current:
raise ParsingError(f"Can't build a number with 2 dots (current is {current})")
elif len(current) == 0:
elif not current:
raise ParsingError(f"Can't build a number starting with a dot")
else:
current += tok
elif tok == '-':
if len(current) > 0:
if current:
target_.send(typifiy_numbers(current))
target_.send('+')
current = tok
@ -494,9 +491,9 @@ def lookforNumbers(target):
current += tok
except STOOOP as err:
if current:
target_.send(typifiy_numbers(current))
yield target_.throw(err)
if current:
target_.send(typifiy_numbers(current))
yield target_.throw(err)
def typifiy_numbers(number):
""" Transform a str number into a integer or a decimal """
@ -564,7 +561,7 @@ def list_sink():
except STOOOP:
yield ans
def str2(sink, convert_to_MO=True):
def str2(sink, convert_to_mo=True):
""" Return a pipeline which parse an expression with the sink as an endpont
:example:
@ -685,13 +682,13 @@ def str2(sink, convert_to_MO=True):
"""
lfop = lookfor(is_operator)
operator_corout = partial(concurent_broadcast, lookfors = [lfop])
operator_corout = partial(concurent_broadcast, lookfors=[lfop])
def pipeline(expression):
if convert_to_MO:
if convert_to_mo:
str2_corout = lookforNumbers(operator_corout(missing_times(moify(pparser(sink)))))
else:
str2_corout = lookforNumbers(operator_corout(missing_times(pparser(sink))))
for i in expression:
str2_corout.send(i)
a = str2_corout.throw(STOOOP)

View File

@ -10,11 +10,10 @@ Tree class
"""
from .tree_tools import (to_nested_parenthesis,
infix_str_concatenate,
postfix_concatenate,
show_tree,
)
from .coroutine import *
postfix_concatenate,
show_tree,
)
from .coroutine import coroutine, STOOOP
from .str2 import str2
from .operator import OPERATORS
@ -55,7 +54,7 @@ class Tree(object):
self.right_value = right_value
@classmethod
def from_str(cls, expression, convert_to_MO=True):
def from_str(cls, expression, convert_to_mo=True):
""" Initiate a tree from an string expression
:example:
@ -83,7 +82,7 @@ class Tree(object):
| > n
"""
t = MutableTree.from_str(expression, convert_to_MO)
t = MutableTree.from_str(expression, convert_to_mo)
return cls.from_any_tree(t)
@classmethod
@ -268,7 +267,7 @@ class Tree(object):
:example:
>>> t = Tree.from_str("3*4+2", convert_to_MO=False)
>>> t = Tree.from_str("3*4+2", convert_to_mo=False)
>>> print(t)
+
> *
@ -385,7 +384,7 @@ class Tree(object):
return function(self.node, left_value, right_value)
def get_leafs(self, callback = lambda x:x):
def get_leafs(self, callback=lambda x:x):
""" Generator which yield all the leaf value of the tree.
Callback act on every leaf.
@ -408,7 +407,7 @@ class Tree(object):
except AttributeError:
yield callback(self.right_value)
def get_nodes(self, callback = lambda x:x):
def get_nodes(self, callback=lambda x:x):
""" Generator which yield all nodes of the tree.
Callback act on every nodes.
@ -580,7 +579,7 @@ class MutableTree(Tree):
self.right_value = right_value
@classmethod
def from_str(cls, expression, convert_to_MO=True):
def from_str(cls, expression, convert_to_mo=True):
""" Initiate the MutableTree
:example:
@ -606,8 +605,8 @@ class MutableTree(Tree):
| > -2
| > 3
"""
str2mutTree = str2(cls.sink, convert_to_MO)
return str2mutTree(expression)
str_2_mut_tree = str2(cls.sink, convert_to_mo)
return str_2_mut_tree(expression)
@classmethod
@coroutine
@ -867,7 +866,7 @@ class AssocialTree(Tree):
:example:
>>> t = Tree.from_str("3*4+2", convert_to_MO=False)
>>> t = Tree.from_str("3*4+2", convert_to_mo=False)
>>> print(t)
+
> *
@ -938,7 +937,7 @@ class AssocialTree(Tree):
return function(self.node, left_value, right_value)
def get_leafs(self, callback = lambda x:x):
def get_leafs(self, callback=lambda x: x):
""" Generator which yield all the leaf value of the tree.
Callback act on every leaf.

View File

@ -29,7 +29,7 @@ def to_nested_parenthesis(op, left, right):
def infix_str_concatenate(op, left, right):
""" Concatenate arguments placing op on the middle.
:example:
>>> infix_str_concatenate('+', 1, 2)
@ -39,7 +39,7 @@ def infix_str_concatenate(op, left, right):
def postfix_concatenate(op, left, right):
""" Concatenate arguments placing op on the middle.
:example:
>>> postfix_concatenate('+', 1, 2)
@ -61,7 +61,7 @@ def postfix_concatenate(op, left, right):
return left_tokens + right_tokens + [op]
def show_tree(op, left, right, sep = "|", node_caracter = ">"):
def show_tree(op, left, right, sep="|", node_caracter=">"):
""" Shape argument to make nice Tree display
:example: