Source code for molfoundry.derivation
from typing import List, Optional
import molfoundry.rule as rule
from .graph import Graph
from .core import TSObject
_class_ref_Derivation = TSObject.get_class_ref("Derivation")
_class_ref_Derivations = TSObject.get_class_ref("Derivations")
[docs]
class Derivation(TSObject):
def __init__(self) -> None:
super().__init__(_class_ref_Derivation)
@property
def left(self) -> List[Graph]:
return [Graph.wrap(g) for g in self._ref.getLeft()]
@left.setter
def left(self, left: List[Graph]):
self._ref.setLeft([g._ref for g in left])
@property
def rule(self) -> "rule.Rule":
return rule.Rule.wrap(self._ref.getRule())
@rule.setter
def rule(self, rule: "rule.Rule"):
self._ref.setRule(rule._ref)
@property
def right(self) -> List[Graph]:
return [Graph.wrap(g) for g in self._ref.getRight()]
@right.setter
def right(self, right: List[Graph]):
self._ref.setRight([g._ref for g in right])
[docs]
class Derivations(TSObject):
def __init__(self, derivation: Optional[Derivation] = None) -> None:
super().__init__(_class_ref_Derivations, derivation._ref if derivation is not None else None)
@property
def left(self) -> List[Graph]:
return [Graph.wrap(g) for g in self._ref.getLeft()]
@left.setter
def left(self, left: List[Graph]):
self._ref.setLeft([g._ref for g in left])
@property
def rules(self) -> List["rule.Rule"]:
return [rule.Rule.wrap(r) for r in self._ref.getRules()]
@rules.setter
def rules(self, rules: List["rule.Rule"]):
self._ref.setRules([r._ref for r in rules])
@property
def right(self) -> List[Graph]:
return [Graph.wrap(g) for g in self._ref.getRight()]
@right.setter
def right(self, right: List[Graph]):
self._ref.setRight([g._ref for g in right])