Mapytex/pymath/calculus/operator/sub1.py
2016-03-22 08:39:20 +03:00

64 lines
1.4 KiB
Python

#!/usr/bin/env python
# encoding: utf-8
from .operator import Operator
from ..generic import flatten_list
class Sub1(Operator):
""" The operator -
>>> sub1 = Sub1()
>>> sub1
-
>>> sub1(1)
-1
>>> sub1.__tex__('1')
'- 1'
>>> sub1.__tex__('-1')
'- ( -1 )'
>>> sub1.__txt__('1')
'- 1'
>>> sub1.__txt__('-1')
'- ( -1 )'
"""
_CARACT = {
"operator" : "-", \
"name" : "sub1",\
"priority" : 3, \
"arity" : 1, \
"actions" : "__neg__",\
"txt" : "- {op1}",\
"tex" : "- {op1}",\
}
def __init__(self):
""" Initiate Sub1 Operator """
super(Sub1, self).__init__(**self._CARACT)
def l_parenthesis(self, op, str_join=False):
""" Add parenthesis if necessary """
try:
if op.mainOp.priority <= self.priority:
op = flatten_list(["("] + [op] + [")"])
except AttributeError:
# op has not the attribute priority
try:
if int(op) < 0:
op = ['(', op, ')']
except ValueError:
pass
ans = flatten_list([op])
if str_join:
ans = ' '.join([str(i) for i in ans])
return ans
# -----------------------------
# Reglages pour 'vim'
# vim:set autoindent expandtab tabstop=4 shiftwidth=4:
# cursor: 16 del