rainbow-rb-flow-manager 0.1.2.dev1__tar.gz → 0.1.2.dev3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {rainbow_rb_flow_manager-0.1.2.dev1 → rainbow_rb_flow_manager-0.1.2.dev3}/PKG-INFO +7 -7
- {rainbow_rb_flow_manager-0.1.2.dev1 → rainbow_rb_flow_manager-0.1.2.dev3}/pyproject.toml +7 -7
- {rainbow_rb_flow_manager-0.1.2.dev1 → rainbow_rb_flow_manager-0.1.2.dev3}/src/rainbow/rb_flow_manager/context.py +26 -3
- {rainbow_rb_flow_manager-0.1.2.dev1 → rainbow_rb_flow_manager-0.1.2.dev3}/src/rainbow_rb_flow_manager.egg-info/PKG-INFO +7 -7
- {rainbow_rb_flow_manager-0.1.2.dev1 → rainbow_rb_flow_manager-0.1.2.dev3}/src/rainbow_rb_flow_manager.egg-info/SOURCES.txt +0 -3
- rainbow_rb_flow_manager-0.1.2.dev3/src/rainbow_rb_flow_manager.egg-info/requires.txt +6 -0
- rainbow_rb_flow_manager-0.1.2.dev1/src/rainbow/rb_flow_manager/examples/__pycache__/05_event_task.cpython-312.pyc +0 -0
- rainbow_rb_flow_manager-0.1.2.dev1/src/rainbow/rb_flow_manager/examples/__pycache__/_common.cpython-312.pyc +0 -0
- rainbow_rb_flow_manager-0.1.2.dev1/src/rainbow/rb_flow_manager/examples/subtasks/__pycache__/gripper_subtask.cpython-312.pyc +0 -0
- rainbow_rb_flow_manager-0.1.2.dev1/src/rainbow_rb_flow_manager.egg-info/requires.txt +0 -6
- {rainbow_rb_flow_manager-0.1.2.dev1 → rainbow_rb_flow_manager-0.1.2.dev3}/README.md +0 -0
- {rainbow_rb_flow_manager-0.1.2.dev1 → rainbow_rb_flow_manager-0.1.2.dev3}/setup.cfg +0 -0
- {rainbow_rb_flow_manager-0.1.2.dev1 → rainbow_rb_flow_manager-0.1.2.dev3}/src/rainbow/rb_flow_manager/.claude/skills/pyfm/SKILL.md +0 -0
- {rainbow_rb_flow_manager-0.1.2.dev1 → rainbow_rb_flow_manager-0.1.2.dev3}/src/rainbow/rb_flow_manager/.claude/skills/pyfm/references/internals.md +0 -0
- {rainbow_rb_flow_manager-0.1.2.dev1 → rainbow_rb_flow_manager-0.1.2.dev3}/src/rainbow/rb_flow_manager/.claude/skills/pyfm/references/testing.md +0 -0
- {rainbow_rb_flow_manager-0.1.2.dev1 → rainbow_rb_flow_manager-0.1.2.dev3}/src/rainbow/rb_flow_manager/__init__.py +0 -0
- {rainbow_rb_flow_manager-0.1.2.dev1 → rainbow_rb_flow_manager-0.1.2.dev3}/src/rainbow/rb_flow_manager/controller/base_controller.py +0 -0
- {rainbow_rb_flow_manager-0.1.2.dev1 → rainbow_rb_flow_manager-0.1.2.dev3}/src/rainbow/rb_flow_manager/controller/zenoh_controller.py +0 -0
- {rainbow_rb_flow_manager-0.1.2.dev1 → rainbow_rb_flow_manager-0.1.2.dev3}/src/rainbow/rb_flow_manager/examples/01_multiple_tasks.py +0 -0
- {rainbow_rb_flow_manager-0.1.2.dev1 → rainbow_rb_flow_manager-0.1.2.dev3}/src/rainbow/rb_flow_manager/examples/02_single_task.py +0 -0
- {rainbow_rb_flow_manager-0.1.2.dev1 → rainbow_rb_flow_manager-0.1.2.dev3}/src/rainbow/rb_flow_manager/examples/03_post_tree.py +0 -0
- {rainbow_rb_flow_manager-0.1.2.dev1 → rainbow_rb_flow_manager-0.1.2.dev3}/src/rainbow/rb_flow_manager/examples/04_sub_task.py +0 -0
- {rainbow_rb_flow_manager-0.1.2.dev1 → rainbow_rb_flow_manager-0.1.2.dev3}/src/rainbow/rb_flow_manager/examples/05_event_task.py +0 -0
- {rainbow_rb_flow_manager-0.1.2.dev1 → rainbow_rb_flow_manager-0.1.2.dev3}/src/rainbow/rb_flow_manager/examples/README.md +0 -0
- {rainbow_rb_flow_manager-0.1.2.dev1 → rainbow_rb_flow_manager-0.1.2.dev3}/src/rainbow/rb_flow_manager/examples/subtasks/gripper_subtask.py +0 -0
- {rainbow_rb_flow_manager-0.1.2.dev1 → rainbow_rb_flow_manager-0.1.2.dev3}/src/rainbow/rb_flow_manager/exception.py +0 -0
- {rainbow_rb_flow_manager-0.1.2.dev1 → rainbow_rb_flow_manager-0.1.2.dev3}/src/rainbow/rb_flow_manager/executor.py +0 -0
- {rainbow_rb_flow_manager-0.1.2.dev1 → rainbow_rb_flow_manager-0.1.2.dev3}/src/rainbow/rb_flow_manager/global_resolver.py +0 -0
- {rainbow_rb_flow_manager-0.1.2.dev1 → rainbow_rb_flow_manager-0.1.2.dev3}/src/rainbow/rb_flow_manager/py.typed +0 -0
- {rainbow_rb_flow_manager-0.1.2.dev1 → rainbow_rb_flow_manager-0.1.2.dev3}/src/rainbow/rb_flow_manager/schema.py +0 -0
- {rainbow_rb_flow_manager-0.1.2.dev1 → rainbow_rb_flow_manager-0.1.2.dev3}/src/rainbow/rb_flow_manager/step.py +0 -0
- {rainbow_rb_flow_manager-0.1.2.dev1 → rainbow_rb_flow_manager-0.1.2.dev3}/src/rainbow/rb_flow_manager/utils.py +0 -0
- {rainbow_rb_flow_manager-0.1.2.dev1 → rainbow_rb_flow_manager-0.1.2.dev3}/src/rainbow_rb_flow_manager.egg-info/dependency_links.txt +0 -0
- {rainbow_rb_flow_manager-0.1.2.dev1 → rainbow_rb_flow_manager-0.1.2.dev3}/src/rainbow_rb_flow_manager.egg-info/top_level.txt +0 -0
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rainbow-rb-flow-manager
|
|
3
|
-
Version: 0.1.2.
|
|
3
|
+
Version: 0.1.2.dev3
|
|
4
4
|
Summary: Rainbow Python Flow Manager
|
|
5
5
|
Author-email: Derek <dfd1123@rainbow-robotics.com>
|
|
6
6
|
Requires-Python: <3.14,>=3.11
|
|
7
7
|
Description-Content-Type: text/markdown
|
|
8
|
-
Requires-Dist: rainbow-rb-utils==0.1.2.
|
|
9
|
-
Requires-Dist: rainbow-rb-zenoh==0.1.2.
|
|
10
|
-
Requires-Dist: rainbow-rb-flat-buffers==0.1.2.
|
|
11
|
-
Requires-Dist: rainbow-rb-schemas==0.1.2.
|
|
12
|
-
Requires-Dist: rainbow-rb-sdk==0.1.2.
|
|
13
|
-
Requires-Dist: rainbow-rb-log==0.1.2.
|
|
8
|
+
Requires-Dist: rainbow-rb-utils==0.1.2.dev3
|
|
9
|
+
Requires-Dist: rainbow-rb-zenoh==0.1.2.dev3
|
|
10
|
+
Requires-Dist: rainbow-rb-flat-buffers==0.1.2.dev3
|
|
11
|
+
Requires-Dist: rainbow-rb-schemas==0.1.2.dev3
|
|
12
|
+
Requires-Dist: rainbow-rb-sdk==0.1.2.dev3
|
|
13
|
+
Requires-Dist: rainbow-rb-log==0.1.2.dev3
|
|
14
14
|
|
|
15
15
|
# rb_flow_manager 사용 설명서
|
|
16
16
|
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "rainbow-rb-flow-manager"
|
|
7
|
-
version = "0.1.2.
|
|
7
|
+
version = "0.1.2.dev3"
|
|
8
8
|
requires-python = ">=3.11,<3.14"
|
|
9
9
|
description = "Rainbow Python Flow Manager"
|
|
10
10
|
authors = [
|
|
@@ -13,12 +13,12 @@ authors = [
|
|
|
13
13
|
readme = "README.md"
|
|
14
14
|
|
|
15
15
|
dependencies = [
|
|
16
|
-
"rainbow-rb-utils==0.1.2.
|
|
17
|
-
"rainbow-rb-zenoh==0.1.2.
|
|
18
|
-
"rainbow-rb-flat-buffers==0.1.2.
|
|
19
|
-
"rainbow-rb-schemas==0.1.2.
|
|
20
|
-
"rainbow-rb-sdk==0.1.2.
|
|
21
|
-
"rainbow-rb-log==0.1.2.
|
|
16
|
+
"rainbow-rb-utils==0.1.2.dev3",
|
|
17
|
+
"rainbow-rb-zenoh==0.1.2.dev3",
|
|
18
|
+
"rainbow-rb-flat-buffers==0.1.2.dev3",
|
|
19
|
+
"rainbow-rb-schemas==0.1.2.dev3",
|
|
20
|
+
"rainbow-rb-sdk==0.1.2.dev3",
|
|
21
|
+
"rainbow-rb-log==0.1.2.dev3",
|
|
22
22
|
]
|
|
23
23
|
|
|
24
24
|
[tool.setuptools]
|
|
@@ -16,9 +16,8 @@ from multiprocessing.synchronize import (
|
|
|
16
16
|
)
|
|
17
17
|
from typing import Any, Literal, cast
|
|
18
18
|
|
|
19
|
-
from rainbow.rb_sdk
|
|
20
|
-
from rainbow.
|
|
21
|
-
from rainbow.rb_utils.flow_manager import eval_value
|
|
19
|
+
from rainbow.rb_sdk import RBAmrSDK, RBBaseSDK, RBManipulateSDK, RBProgramSDK
|
|
20
|
+
from rainbow.rb_utils.flow_manager import eval_value, make_builtins_allow_most
|
|
22
21
|
from rainbow.rb_utils.parser import t_to_dict
|
|
23
22
|
|
|
24
23
|
from .exception import BreakFolder, StopExecution, SubTaskHaltException
|
|
@@ -118,6 +117,26 @@ class ExecutionContext:
|
|
|
118
117
|
# ExecutionContext 생성 시 SDK 루트를 선초기화한다.
|
|
119
118
|
self._ensure_sdk_roots()
|
|
120
119
|
|
|
120
|
+
def run_advanced_script(self, contents: str, script_locals: dict[str, Any]) -> None:
|
|
121
|
+
"""ADVANCED make_script 사용자 스크립트를 compile + exec 한다.
|
|
122
|
+
|
|
123
|
+
스크립트 env(variables/var/update_variable/get_var/done/pause/stop/resume/
|
|
124
|
+
check_stop/rb_log) 조립은 rb_sdk glue(PyFlowManagerArgsAdapter) 가 담당하고,
|
|
125
|
+
여기서는 ``__builtins__`` 를 위험 내장(__import__/open/eval/exec 등) 뺀 사본으로
|
|
126
|
+
제한해 compile + exec 만 한다. (glue -> rb_flow_manager 단방향 의존이라 glue 에서
|
|
127
|
+
make_builtins_allow_most 를 import 하지 않으려는 것.)
|
|
128
|
+
|
|
129
|
+
exec 은 globals == locals 인 단일 네임스페이스로 돌린다. 그래야 스크립트가
|
|
130
|
+
일반 파이썬 모듈처럼 동작한다 — 최상위에서 대입한 이름이 스크립트 안에서
|
|
131
|
+
정의한 함수/컴프리헨션/lambda 같은 중첩 스코프에서도 보인다. (globals 와
|
|
132
|
+
locals 를 나누면 최상위 대입은 locals 로만 들어가고 중첩 스코프의 자유변수는
|
|
133
|
+
globals 만 보므로 ``NameError`` 가 난다.)
|
|
134
|
+
"""
|
|
135
|
+
code = compile(contents, "<custom_script>", "exec")
|
|
136
|
+
|
|
137
|
+
script_globals = {"__builtins__": make_builtins_allow_most(), **script_locals}
|
|
138
|
+
exec(code, script_globals) # pylint: disable=exec-used
|
|
139
|
+
|
|
121
140
|
def _resolve_variable_owner_state(self) -> ExecutorState:
|
|
122
141
|
if self.parent_process_id is not None and self.shared_state_dicts is not None:
|
|
123
142
|
parent_state = self.shared_state_dicts.get(self.parent_process_id)
|
|
@@ -817,6 +836,10 @@ class ExecutionContext:
|
|
|
817
836
|
with contextlib.suppress(Exception):
|
|
818
837
|
RBBaseSDK.close_all_for_pid()
|
|
819
838
|
|
|
839
|
+
# AMR 은 아직 Python SDK 라 C++ 레지스트리가 아니라 Python RBBaseSDK._instances 에 있다.
|
|
840
|
+
with contextlib.suppress(Exception):
|
|
841
|
+
RBAmrSDK.close_all_for_pid()
|
|
842
|
+
|
|
820
843
|
def close(self):
|
|
821
844
|
"""안전하게 close"""
|
|
822
845
|
self._safe_close_sdk()
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rainbow-rb-flow-manager
|
|
3
|
-
Version: 0.1.2.
|
|
3
|
+
Version: 0.1.2.dev3
|
|
4
4
|
Summary: Rainbow Python Flow Manager
|
|
5
5
|
Author-email: Derek <dfd1123@rainbow-robotics.com>
|
|
6
6
|
Requires-Python: <3.14,>=3.11
|
|
7
7
|
Description-Content-Type: text/markdown
|
|
8
|
-
Requires-Dist: rainbow-rb-utils==0.1.2.
|
|
9
|
-
Requires-Dist: rainbow-rb-zenoh==0.1.2.
|
|
10
|
-
Requires-Dist: rainbow-rb-flat-buffers==0.1.2.
|
|
11
|
-
Requires-Dist: rainbow-rb-schemas==0.1.2.
|
|
12
|
-
Requires-Dist: rainbow-rb-sdk==0.1.2.
|
|
13
|
-
Requires-Dist: rainbow-rb-log==0.1.2.
|
|
8
|
+
Requires-Dist: rainbow-rb-utils==0.1.2.dev3
|
|
9
|
+
Requires-Dist: rainbow-rb-zenoh==0.1.2.dev3
|
|
10
|
+
Requires-Dist: rainbow-rb-flat-buffers==0.1.2.dev3
|
|
11
|
+
Requires-Dist: rainbow-rb-schemas==0.1.2.dev3
|
|
12
|
+
Requires-Dist: rainbow-rb-sdk==0.1.2.dev3
|
|
13
|
+
Requires-Dist: rainbow-rb-log==0.1.2.dev3
|
|
14
14
|
|
|
15
15
|
# rb_flow_manager 사용 설명서
|
|
16
16
|
|
|
@@ -20,10 +20,7 @@ src/rainbow/rb_flow_manager/examples/03_post_tree.py
|
|
|
20
20
|
src/rainbow/rb_flow_manager/examples/04_sub_task.py
|
|
21
21
|
src/rainbow/rb_flow_manager/examples/05_event_task.py
|
|
22
22
|
src/rainbow/rb_flow_manager/examples/README.md
|
|
23
|
-
src/rainbow/rb_flow_manager/examples/__pycache__/05_event_task.cpython-312.pyc
|
|
24
|
-
src/rainbow/rb_flow_manager/examples/__pycache__/_common.cpython-312.pyc
|
|
25
23
|
src/rainbow/rb_flow_manager/examples/subtasks/gripper_subtask.py
|
|
26
|
-
src/rainbow/rb_flow_manager/examples/subtasks/__pycache__/gripper_subtask.cpython-312.pyc
|
|
27
24
|
src/rainbow_rb_flow_manager.egg-info/PKG-INFO
|
|
28
25
|
src/rainbow_rb_flow_manager.egg-info/SOURCES.txt
|
|
29
26
|
src/rainbow_rb_flow_manager.egg-info/dependency_links.txt
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|