Style: apply black
This commit is contained in:
@@ -8,7 +8,8 @@
|
||||
|
||||
from mapytex.calculus.core.operator import OPERATORS
|
||||
|
||||
__all__ = ['tree2tex']
|
||||
__all__ = ["tree2tex"]
|
||||
|
||||
|
||||
def plus2tex(left, right):
|
||||
r""" + rendering
|
||||
@@ -51,6 +52,7 @@ def plus2tex(left, right):
|
||||
|
||||
return f"{left_} {right_}"
|
||||
|
||||
|
||||
def minus2tex(left, right):
|
||||
r""" - rendering
|
||||
|
||||
@@ -64,7 +66,7 @@ def minus2tex(left, right):
|
||||
"""
|
||||
try:
|
||||
right_need_parenthesis = False
|
||||
if OPERATORS[right.node]["precedence"] < OPERATORS['-']["precedence"]:
|
||||
if OPERATORS[right.node]["precedence"] < OPERATORS["-"]["precedence"]:
|
||||
right_need_parenthesis = True
|
||||
except AttributeError:
|
||||
right_ = right.__tex__
|
||||
@@ -76,6 +78,7 @@ def minus2tex(left, right):
|
||||
|
||||
return f"- {right_}"
|
||||
|
||||
|
||||
def mul2tex(left, right):
|
||||
r""" * rendering
|
||||
|
||||
@@ -101,14 +104,16 @@ def mul2tex(left, right):
|
||||
right_ = render_with_parenthesis(right, "*")
|
||||
|
||||
display_time = True
|
||||
if (right_[0].isalpha() and (left_.isnumeric() or left_.isdecimal())) or \
|
||||
right_[0] == '(':
|
||||
display_time = False
|
||||
if (right_[0].isalpha() and (left_.isnumeric() or left_.isdecimal())) or right_[
|
||||
0
|
||||
] == "(":
|
||||
display_time = False
|
||||
|
||||
if display_time:
|
||||
return f"{left_} \\times {right_}"
|
||||
return f"{left_}{right_}"
|
||||
|
||||
|
||||
def div2tex(left, right):
|
||||
r""" / rendering
|
||||
|
||||
@@ -137,6 +142,7 @@ def div2tex(left, right):
|
||||
|
||||
return "\\frac{" + left_ + "}{" + right_ + "}"
|
||||
|
||||
|
||||
def pow2tex(left, right):
|
||||
r""" ^ rendering
|
||||
|
||||
@@ -159,7 +165,7 @@ def pow2tex(left, right):
|
||||
"""
|
||||
try:
|
||||
left_need_parenthesis = False
|
||||
if OPERATORS[left.node]["precedence"] < OPERATORS['^']["precedence"]:
|
||||
if OPERATORS[left.node]["precedence"] < OPERATORS["^"]["precedence"]:
|
||||
left_need_parenthesis = True
|
||||
except AttributeError:
|
||||
left_ = left.__tex__
|
||||
@@ -185,7 +191,10 @@ def render_with_parenthesis(subtree, operator):
|
||||
subtree.node
|
||||
except AttributeError:
|
||||
try:
|
||||
if OPERATORS[subtree.MAINOP]["precedence"] < OPERATORS[operator]["precedence"]:
|
||||
if (
|
||||
OPERATORS[subtree.MAINOP]["precedence"]
|
||||
< OPERATORS[operator]["precedence"]
|
||||
):
|
||||
subtree_need_parenthesis = True
|
||||
except (AttributeError, KeyError):
|
||||
pass
|
||||
@@ -200,13 +209,8 @@ def render_with_parenthesis(subtree, operator):
|
||||
return subtree_
|
||||
|
||||
|
||||
OPERATOR2TEX = {
|
||||
"+": plus2tex,
|
||||
"-": minus2tex,
|
||||
"*": mul2tex,
|
||||
"/": div2tex,
|
||||
"^": pow2tex,
|
||||
}
|
||||
OPERATOR2TEX = {"+": plus2tex, "-": minus2tex, "*": mul2tex, "/": div2tex, "^": pow2tex}
|
||||
|
||||
|
||||
def tree2tex(tree):
|
||||
r""" Convert a tree into its tex version
|
||||
|
||||
@@ -8,7 +8,8 @@
|
||||
|
||||
from ..operator import OPERATORS
|
||||
|
||||
__all__ = ['tree2txt']
|
||||
__all__ = ["tree2txt"]
|
||||
|
||||
|
||||
def plus2txt(left, right):
|
||||
""" + rendering
|
||||
@@ -41,6 +42,7 @@ def plus2txt(left, right):
|
||||
|
||||
return f"{left_} {right_}"
|
||||
|
||||
|
||||
def minus2txt(left, right):
|
||||
""" - rendering
|
||||
|
||||
@@ -54,7 +56,7 @@ def minus2txt(left, right):
|
||||
"""
|
||||
try:
|
||||
right_need_parenthesis = False
|
||||
if OPERATORS[right.node]["precedence"] < OPERATORS['-']["precedence"]:
|
||||
if OPERATORS[right.node]["precedence"] < OPERATORS["-"]["precedence"]:
|
||||
right_need_parenthesis = True
|
||||
except AttributeError:
|
||||
right_ = right.__txt__
|
||||
@@ -66,6 +68,7 @@ def minus2txt(left, right):
|
||||
|
||||
return f"- {right_}"
|
||||
|
||||
|
||||
def mul2txt(left, right):
|
||||
""" * rendering
|
||||
|
||||
@@ -96,9 +99,9 @@ def mul2txt(left, right):
|
||||
|
||||
if right_[0].isalpha():
|
||||
# TODO: C'est bien beurk en dessous... |ven. déc. 21 12:03:07 CET 2018
|
||||
if type(left).__name__ == 'MOnumber':
|
||||
if type(left).__name__ == "MOnumber":
|
||||
display_time = False
|
||||
elif right_[0] == '(':
|
||||
elif right_[0] == "(":
|
||||
display_time = False
|
||||
|
||||
if display_time:
|
||||
@@ -106,6 +109,7 @@ def mul2txt(left, right):
|
||||
else:
|
||||
return f"{left_}{right_}"
|
||||
|
||||
|
||||
def div2txt(left, right):
|
||||
""" / rendering
|
||||
|
||||
@@ -125,7 +129,7 @@ def div2txt(left, right):
|
||||
"""
|
||||
try:
|
||||
left_need_parenthesis = False
|
||||
if OPERATORS[left.node]["precedence"] < OPERATORS['/']["precedence"]:
|
||||
if OPERATORS[left.node]["precedence"] < OPERATORS["/"]["precedence"]:
|
||||
left_need_parenthesis = True
|
||||
except AttributeError:
|
||||
left_ = left.__txt__
|
||||
@@ -136,7 +140,7 @@ def div2txt(left, right):
|
||||
left_ = tree2txt(left)
|
||||
try:
|
||||
right_need_parenthesis = False
|
||||
if OPERATORS[right.node]["precedence"] < OPERATORS['/']["precedence"]:
|
||||
if OPERATORS[right.node]["precedence"] < OPERATORS["/"]["precedence"]:
|
||||
right_need_parenthesis = True
|
||||
except AttributeError:
|
||||
right_ = right.__txt__
|
||||
@@ -148,6 +152,7 @@ def div2txt(left, right):
|
||||
|
||||
return f"{left_} / {right_}"
|
||||
|
||||
|
||||
def pow2txt(left, right):
|
||||
""" ^ rendering
|
||||
|
||||
@@ -169,7 +174,7 @@ def pow2txt(left, right):
|
||||
|
||||
try:
|
||||
right_need_parenthesis = False
|
||||
if OPERATORS[right.node]["precedence"] < OPERATORS['^']["precedence"]:
|
||||
if OPERATORS[right.node]["precedence"] < OPERATORS["^"]["precedence"]:
|
||||
right_need_parenthesis = True
|
||||
except AttributeError:
|
||||
right_ = right.__txt__
|
||||
@@ -181,13 +186,17 @@ def pow2txt(left, right):
|
||||
|
||||
return f"{left_}^{right_}"
|
||||
|
||||
|
||||
def render_with_parenthesis(subtree, operator):
|
||||
subtree_need_parenthesis = False
|
||||
try:
|
||||
subtree.node
|
||||
except AttributeError:
|
||||
try:
|
||||
if OPERATORS[subtree.MAINOP]["precedence"] < OPERATORS[operator]["precedence"]:
|
||||
if (
|
||||
OPERATORS[subtree.MAINOP]["precedence"]
|
||||
< OPERATORS[operator]["precedence"]
|
||||
):
|
||||
subtree_need_parenthesis = True
|
||||
except (AttributeError, KeyError):
|
||||
pass
|
||||
@@ -201,13 +210,9 @@ def render_with_parenthesis(subtree, operator):
|
||||
return f"({subtree_})"
|
||||
return subtree_
|
||||
|
||||
OPERATOR2TXT = {
|
||||
"+": plus2txt,
|
||||
"-": minus2txt,
|
||||
"*": mul2txt,
|
||||
"/": div2txt,
|
||||
"^": pow2txt,
|
||||
}
|
||||
|
||||
OPERATOR2TXT = {"+": plus2txt, "-": minus2txt, "*": mul2txt, "/": div2txt, "^": pow2txt}
|
||||
|
||||
|
||||
def tree2txt(tree):
|
||||
""" Convert a tree into its txt version
|
||||
@@ -224,6 +229,7 @@ def tree2txt(tree):
|
||||
'2 + 3 * 4'
|
||||
"""
|
||||
from ..tree import Tree
|
||||
|
||||
if not isinstance(tree, Tree):
|
||||
raise ValueError(f"Can only render a Tree (got {type(tree).__name__}: {tree})")
|
||||
return OPERATOR2TXT[tree.node](tree.left_value, tree.right_value)
|
||||
|
||||
Reference in New Issue
Block a user