55 lines
1.2 KiB
Python
55 lines
1.2 KiB
Python
|
#!/usr/bin/env python
|
||
|
# encoding: utf-8
|
||
|
|
||
|
from .operator import Operator, save_mainOp
|
||
|
|
||
|
class Div(Operator):
|
||
|
|
||
|
""" The operator /
|
||
|
|
||
|
>>> div = op.div
|
||
|
>>> div
|
||
|
'/'
|
||
|
>>> div(1, 2)
|
||
|
< Fraction 1 / 2>
|
||
|
>>> div.__tex__('1','2')
|
||
|
'\\frac{ 1 }{ 2 }'
|
||
|
>>> div.__tex__('1','2')
|
||
|
'\\frac{ -1 }{ 2 }'
|
||
|
>>> div.__txt__('1','2')
|
||
|
'1 / 2'
|
||
|
"""
|
||
|
_CARACT = {
|
||
|
"operator" : "/", \
|
||
|
"name" : "div",\
|
||
|
"priority" : 5, \
|
||
|
"arity" : 2, \
|
||
|
"txt" : "{op1} / {op2}",\
|
||
|
"tex" : "\\frac{{ {op1} }}{{ {op2} }}",\
|
||
|
}
|
||
|
|
||
|
def __init__(self):
|
||
|
""" Initiate Div Operator """
|
||
|
super(Div, self).__init__(**self._CARACT)
|
||
|
|
||
|
def __call__(self, op1, op2):
|
||
|
if op2 == 1:
|
||
|
return op1
|
||
|
else:
|
||
|
from ..fraction import Fraction
|
||
|
return Fraction(op1,op2)
|
||
|
|
||
|
def __tex__(self, *args):
|
||
|
# Pas besoin de parenthèses en plus pour \frac
|
||
|
replacement = {"op"+str(i+1): op for (i,op) in enumerate(args)}
|
||
|
|
||
|
ans = self.tex.format(**replacement)
|
||
|
ans = save_mainOp(ans, self)
|
||
|
return ans
|
||
|
|
||
|
|
||
|
# -----------------------------
|
||
|
# Reglages pour 'vim'
|
||
|
# vim:set autoindent expandtab tabstop=4 shiftwidth=4:
|
||
|
# cursor: 16 del
|