RoboWaiter/ptml/ptmlTranslateAPI.py

123 lines
3.0 KiB
Python

import os
import typing
import shortuuid
short_uuid = lambda : shortuuid.ShortUUID().random(length=8)
class PyTreesAPI():
"""
"""
def __init__(self) -> None:
self.pystr = ''
self.prepare()
def prepare(self) -> None:
# import libraries
self.pystr += 'import py_trees as tree\n'
self.pystr += '\n' * 2
def write_to_file(self, dir: str = './', filename: str = 'auto_generate.py') -> None:
"""_summary_
Args:
dir (str, optional): _description_. Defaults to './'.
filename (str, optional): _description_. Defaults to 'auto_generate.py'.
Raises:
FileNotFoundError: _description_
"""
# exceptions handling
filepath = os.path.join(dir, filename)
if not os.path.exists(dir):
raise FileNotFoundError(
''
)
# if os.path.exists(filepath):
# raise FileExistsError(
# ''
# )
with open(filepath, 'w') as file:
file.write(self.pystr)
def run(self) -> None:
"""_summary_
"""
self.write_to_file()
out = os.popen('python ./auto_generate.py')
print(out.read())
def newTree(self) -> None:
"""_summary_
"""
def newSequenceNode(self) -> str:
"""_summary_
Returns:
str: _description_
"""
tag = 'sequence_' + short_uuid()
return tag
def newSelectorNode(self) -> str:
"""_summary_
Returns:
str: _description_
"""
tag = 'selector_' + short_uuid()
return tag
def newParallelNode(self, threshold:int) -> str:
"""_summary_
Args:
threshold (int): _description_
Returns:
str: _description_
"""
tag = 'parallel_' + short_uuid()
return tag
def newDecoratorNode(self) -> str:
"""_summary_
Returns:
str: _description_
"""
tag = 'decorator_' + short_uuid()
return tag
def newBehaviourNode(self,
name: str,
args: typing.Optional[typing.List[str]] = [],
isCond: bool = False
) -> str:
"""_summary_
Args:
name (str): _description_
args (typing.Optional[typing.List[str]], optional): _description_. Defaults to [].
isCond (bool, optional): _description_. Defaults to False.
Returns:
str: _description_
"""
tag = 'behavior_' + short_uuid()
return tag
def connect_to_parent(self, uuid_child:str, uuid_parent:str) -> None:
"""_summary_
Args:
uuid_child (str): _description_
uuid_parent (str): _description_
"""
return