#!/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