Feat(Core): Add signature to mos
This commit is contained in:
parent
8933359945
commit
8f99d1e71e
@ -46,6 +46,7 @@ class MO(object):
|
|||||||
|
|
||||||
:attr value: sympy compatible version of the MO
|
:attr value: sympy compatible version of the MO
|
||||||
:attr _tree: tree version of the MO
|
:attr _tree: tree version of the MO
|
||||||
|
:attr _signature: Name to identify the MO in the API
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@ -67,6 +68,7 @@ class MO(object):
|
|||||||
self._tree = value
|
self._tree = value
|
||||||
|
|
||||||
self.is_scalar = True
|
self.is_scalar = True
|
||||||
|
self._signature = None
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def factory(cls, value):
|
def factory(cls, value):
|
||||||
@ -128,6 +130,18 @@ class MO(object):
|
|||||||
except AttributeError:
|
except AttributeError:
|
||||||
return self._tree == other
|
return self._tree == other
|
||||||
|
|
||||||
|
@property
|
||||||
|
def signature(self):
|
||||||
|
""" Name of the mo in the API
|
||||||
|
|
||||||
|
:example:
|
||||||
|
>>> MOnumber(3).signature
|
||||||
|
'scalar'
|
||||||
|
>>> MOstr("x").signature
|
||||||
|
'monome1'
|
||||||
|
"""
|
||||||
|
return self._signature
|
||||||
|
|
||||||
@total_ordering
|
@total_ordering
|
||||||
class MOnumber(MO):
|
class MOnumber(MO):
|
||||||
|
|
||||||
@ -168,6 +182,7 @@ class MOnumber(MO):
|
|||||||
raise MOError("The value of an MOnumber need to be a int, a float or a Decimal")
|
raise MOError("The value of an MOnumber need to be a int, a float or a Decimal")
|
||||||
|
|
||||||
self.value = self._tree
|
self.value = self._tree
|
||||||
|
self._signature = "scalar"
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def __txt__(self):
|
def __txt__(self):
|
||||||
@ -234,6 +249,7 @@ class MOstr(MO):
|
|||||||
MO.__init__(self, val)
|
MO.__init__(self, val)
|
||||||
self.is_scalar = False
|
self.is_scalar = False
|
||||||
self._variable = val
|
self._variable = val
|
||||||
|
self._signature = "monome1"
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def variable(self):
|
def variable(self):
|
||||||
|
@ -74,6 +74,18 @@ class MOstrPower(MO):
|
|||||||
def power(self):
|
def power(self):
|
||||||
return self._power
|
return self._power
|
||||||
|
|
||||||
|
@property
|
||||||
|
def signature(self):
|
||||||
|
""" Name of the mo in the API
|
||||||
|
|
||||||
|
:example:
|
||||||
|
>>> MOstrPower("x", 3).signature
|
||||||
|
'monome3'
|
||||||
|
>>> MOstrPower("x", 2).signature
|
||||||
|
'monome2'
|
||||||
|
"""
|
||||||
|
return f"monome{self.power}"
|
||||||
|
|
||||||
class MOMonomial(MO):
|
class MOMonomial(MO):
|
||||||
|
|
||||||
""" Monomial math object"""
|
""" Monomial math object"""
|
||||||
@ -151,6 +163,18 @@ class MOMonomial(MO):
|
|||||||
def power(self):
|
def power(self):
|
||||||
return self._power
|
return self._power
|
||||||
|
|
||||||
|
@property
|
||||||
|
def signature(self):
|
||||||
|
""" Name of the mo in the API
|
||||||
|
|
||||||
|
:example:
|
||||||
|
>>> MOMonomial(2, "x").signature
|
||||||
|
'monome1'
|
||||||
|
>>> MOMonomial(4, "x", 2).signature
|
||||||
|
'monome2'
|
||||||
|
"""
|
||||||
|
return f"monome{self.power}"
|
||||||
|
|
||||||
# -----------------------------
|
# -----------------------------
|
||||||
# Reglages pour 'vim'
|
# Reglages pour 'vim'
|
||||||
# vim:set autoindent expandtab tabstop=4 shiftwidth=4:
|
# vim:set autoindent expandtab tabstop=4 shiftwidth=4:
|
||||||
|
Loading…
Reference in New Issue
Block a user