[AutoTool] add add_complementary_transitions()
This commit is contained in:
parent
fe440b0c53
commit
c7a8fac890
@ -3,7 +3,7 @@ Tools are objects which dynamically generate simple single-use devices (e.g. wir
|
|||||||
|
|
||||||
# TODO document all tools
|
# TODO document all tools
|
||||||
"""
|
"""
|
||||||
from typing import Literal, Any
|
from typing import Literal, Any, Self
|
||||||
from collections.abc import Sequence, Callable
|
from collections.abc import Sequence, Callable
|
||||||
from abc import ABCMeta # , abstractmethod # TODO any way to make Tool ok with implementing only one method?
|
from abc import ABCMeta # , abstractmethod # TODO any way to make Tool ok with implementing only one method?
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
@ -484,6 +484,9 @@ class AutoTool(Tool, metaclass=ABCMeta):
|
|||||||
def their_port(self) -> Port:
|
def their_port(self) -> Port:
|
||||||
return self.abstract.ports[self.their_port_name]
|
return self.abstract.ports[self.their_port_name]
|
||||||
|
|
||||||
|
def reversed(self) -> Self:
|
||||||
|
return type(self)(self.abstract, self.their_port_name, self.our_port_name)
|
||||||
|
|
||||||
@dataclass(frozen=True, slots=True)
|
@dataclass(frozen=True, slots=True)
|
||||||
class LData:
|
class LData:
|
||||||
""" Data for planL """
|
""" Data for planL """
|
||||||
@ -507,6 +510,12 @@ class AutoTool(Tool, metaclass=ABCMeta):
|
|||||||
default_out_ptype: str
|
default_out_ptype: str
|
||||||
""" Default value for out_ptype """
|
""" Default value for out_ptype """
|
||||||
|
|
||||||
|
def add_complementary_transitions(self) -> Self:
|
||||||
|
for iioo in self.transitions:
|
||||||
|
ooii = (iioo[1], iioo[0])
|
||||||
|
self.transitions.setdefault(ooii, self.transitions[iioo].reversed())
|
||||||
|
return self
|
||||||
|
|
||||||
def path(
|
def path(
|
||||||
self,
|
self,
|
||||||
ccw: SupportsBool | None,
|
ccw: SupportsBool | None,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user