rainbow-rb-flow-manager 0.0.9.dev43__tar.gz → 0.0.9.dev44__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.
Files changed (34) hide show
  1. {rainbow_rb_flow_manager-0.0.9.dev43 → rainbow_rb_flow_manager-0.0.9.dev44}/PKG-INFO +7 -7
  2. {rainbow_rb_flow_manager-0.0.9.dev43 → rainbow_rb_flow_manager-0.0.9.dev44}/pyproject.toml +7 -7
  3. {rainbow_rb_flow_manager-0.0.9.dev43 → rainbow_rb_flow_manager-0.0.9.dev44}/src/rainbow/rb_flow_manager/context.py +22 -0
  4. {rainbow_rb_flow_manager-0.0.9.dev43 → rainbow_rb_flow_manager-0.0.9.dev44}/src/rainbow/rb_flow_manager/examples/01_multiple_tasks.py +4 -5
  5. {rainbow_rb_flow_manager-0.0.9.dev43 → rainbow_rb_flow_manager-0.0.9.dev44}/src/rainbow/rb_flow_manager/examples/02_single_task.py +5 -6
  6. {rainbow_rb_flow_manager-0.0.9.dev43 → rainbow_rb_flow_manager-0.0.9.dev44}/src/rainbow/rb_flow_manager/examples/03_post_tree.py +0 -1
  7. {rainbow_rb_flow_manager-0.0.9.dev43 → rainbow_rb_flow_manager-0.0.9.dev44}/src/rainbow/rb_flow_manager/examples/04_sub_task.py +1 -1
  8. {rainbow_rb_flow_manager-0.0.9.dev43 → rainbow_rb_flow_manager-0.0.9.dev44}/src/rainbow/rb_flow_manager/examples/05_event_task.py +1 -2
  9. {rainbow_rb_flow_manager-0.0.9.dev43 → rainbow_rb_flow_manager-0.0.9.dev44}/src/rainbow/rb_flow_manager/examples/subtasks/gripper_subtask.py +0 -1
  10. {rainbow_rb_flow_manager-0.0.9.dev43 → rainbow_rb_flow_manager-0.0.9.dev44}/src/rainbow_rb_flow_manager.egg-info/PKG-INFO +7 -7
  11. rainbow_rb_flow_manager-0.0.9.dev44/src/rainbow_rb_flow_manager.egg-info/requires.txt +6 -0
  12. rainbow_rb_flow_manager-0.0.9.dev43/src/rainbow_rb_flow_manager.egg-info/requires.txt +0 -6
  13. {rainbow_rb_flow_manager-0.0.9.dev43 → rainbow_rb_flow_manager-0.0.9.dev44}/README.md +0 -0
  14. {rainbow_rb_flow_manager-0.0.9.dev43 → rainbow_rb_flow_manager-0.0.9.dev44}/setup.cfg +0 -0
  15. {rainbow_rb_flow_manager-0.0.9.dev43 → rainbow_rb_flow_manager-0.0.9.dev44}/src/rainbow/rb_flow_manager/.claude/skills/pyfm/SKILL.md +0 -0
  16. {rainbow_rb_flow_manager-0.0.9.dev43 → rainbow_rb_flow_manager-0.0.9.dev44}/src/rainbow/rb_flow_manager/.claude/skills/pyfm/references/internals.md +0 -0
  17. {rainbow_rb_flow_manager-0.0.9.dev43 → rainbow_rb_flow_manager-0.0.9.dev44}/src/rainbow/rb_flow_manager/.claude/skills/pyfm/references/testing.md +0 -0
  18. {rainbow_rb_flow_manager-0.0.9.dev43 → rainbow_rb_flow_manager-0.0.9.dev44}/src/rainbow/rb_flow_manager/__init__.py +0 -0
  19. {rainbow_rb_flow_manager-0.0.9.dev43 → rainbow_rb_flow_manager-0.0.9.dev44}/src/rainbow/rb_flow_manager/controller/base_controller.py +0 -0
  20. {rainbow_rb_flow_manager-0.0.9.dev43 → rainbow_rb_flow_manager-0.0.9.dev44}/src/rainbow/rb_flow_manager/controller/zenoh_controller.py +0 -0
  21. {rainbow_rb_flow_manager-0.0.9.dev43 → rainbow_rb_flow_manager-0.0.9.dev44}/src/rainbow/rb_flow_manager/examples/README.md +0 -0
  22. {rainbow_rb_flow_manager-0.0.9.dev43 → rainbow_rb_flow_manager-0.0.9.dev44}/src/rainbow/rb_flow_manager/examples/__pycache__/05_event_task.cpython-312.pyc +0 -0
  23. {rainbow_rb_flow_manager-0.0.9.dev43 → rainbow_rb_flow_manager-0.0.9.dev44}/src/rainbow/rb_flow_manager/examples/__pycache__/_common.cpython-312.pyc +0 -0
  24. {rainbow_rb_flow_manager-0.0.9.dev43 → rainbow_rb_flow_manager-0.0.9.dev44}/src/rainbow/rb_flow_manager/examples/subtasks/__pycache__/gripper_subtask.cpython-312.pyc +0 -0
  25. {rainbow_rb_flow_manager-0.0.9.dev43 → rainbow_rb_flow_manager-0.0.9.dev44}/src/rainbow/rb_flow_manager/exception.py +0 -0
  26. {rainbow_rb_flow_manager-0.0.9.dev43 → rainbow_rb_flow_manager-0.0.9.dev44}/src/rainbow/rb_flow_manager/executor.py +0 -0
  27. {rainbow_rb_flow_manager-0.0.9.dev43 → rainbow_rb_flow_manager-0.0.9.dev44}/src/rainbow/rb_flow_manager/global_resolver.py +0 -0
  28. {rainbow_rb_flow_manager-0.0.9.dev43 → rainbow_rb_flow_manager-0.0.9.dev44}/src/rainbow/rb_flow_manager/py.typed +0 -0
  29. {rainbow_rb_flow_manager-0.0.9.dev43 → rainbow_rb_flow_manager-0.0.9.dev44}/src/rainbow/rb_flow_manager/schema.py +0 -0
  30. {rainbow_rb_flow_manager-0.0.9.dev43 → rainbow_rb_flow_manager-0.0.9.dev44}/src/rainbow/rb_flow_manager/step.py +0 -0
  31. {rainbow_rb_flow_manager-0.0.9.dev43 → rainbow_rb_flow_manager-0.0.9.dev44}/src/rainbow/rb_flow_manager/utils.py +0 -0
  32. {rainbow_rb_flow_manager-0.0.9.dev43 → rainbow_rb_flow_manager-0.0.9.dev44}/src/rainbow_rb_flow_manager.egg-info/SOURCES.txt +0 -0
  33. {rainbow_rb_flow_manager-0.0.9.dev43 → rainbow_rb_flow_manager-0.0.9.dev44}/src/rainbow_rb_flow_manager.egg-info/dependency_links.txt +0 -0
  34. {rainbow_rb_flow_manager-0.0.9.dev43 → rainbow_rb_flow_manager-0.0.9.dev44}/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.0.9.dev43
3
+ Version: 0.0.9.dev44
4
4
  Summary: Rainbow Python Flow Manager
5
5
  Author-email: Derek <dfd1123@rainbow-robotics.com>
6
6
  Requires-Python: >=3.11
7
7
  Description-Content-Type: text/markdown
8
- Requires-Dist: rainbow-rb-utils==0.0.9.dev43
9
- Requires-Dist: rainbow-rb-zenoh==0.0.9.dev43
10
- Requires-Dist: rainbow-rb-flat-buffers==0.0.9.dev43
11
- Requires-Dist: rainbow-rb-schemas==0.0.9.dev43
12
- Requires-Dist: rainbow-rb-sdk==0.0.9.dev43
13
- Requires-Dist: rainbow-rb-log==0.0.9.dev43
8
+ Requires-Dist: rainbow-rb-utils==0.0.9.dev44
9
+ Requires-Dist: rainbow-rb-zenoh==0.0.9.dev44
10
+ Requires-Dist: rainbow-rb-flat-buffers==0.0.9.dev44
11
+ Requires-Dist: rainbow-rb-schemas==0.0.9.dev44
12
+ Requires-Dist: rainbow-rb-sdk==0.0.9.dev44
13
+ Requires-Dist: rainbow-rb-log==0.0.9.dev44
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.0.9.dev43"
7
+ version = "0.0.9.dev44"
8
8
  requires-python = ">=3.11"
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.0.9.dev43",
17
- "rainbow-rb-zenoh==0.0.9.dev43",
18
- "rainbow-rb-flat-buffers==0.0.9.dev43",
19
- "rainbow-rb-schemas==0.0.9.dev43",
20
- "rainbow-rb-sdk==0.0.9.dev43",
21
- "rainbow-rb-log==0.0.9.dev43",
16
+ "rainbow-rb-utils==0.0.9.dev44",
17
+ "rainbow-rb-zenoh==0.0.9.dev44",
18
+ "rainbow-rb-flat-buffers==0.0.9.dev44",
19
+ "rainbow-rb-schemas==0.0.9.dev44",
20
+ "rainbow-rb-sdk==0.0.9.dev44",
21
+ "rainbow-rb-log==0.0.9.dev44",
22
22
  ]
23
23
 
24
24
  [tool.setuptools]
@@ -19,6 +19,7 @@ from rainbow.rb_sdk.amr import RBAmrSDK
19
19
  from rainbow.rb_sdk.base import RBBaseSDK
20
20
  from rainbow.rb_sdk.manipulate import RBManipulateSDK
21
21
  from rainbow.rb_sdk.program_sdk.program import RBProgramSDK
22
+ from rainbow.rb_utils.flow_manager import eval_value
22
23
  from rainbow.rb_utils.parser import t_to_dict
23
24
 
24
25
  from .exception import BreakFolder, StopExecution, SubTaskHaltException
@@ -95,6 +96,15 @@ class ExecutionContext:
95
96
  normalized[key] = {"value": payload.get("value"), "type": var_type}
96
97
  return normalized
97
98
 
99
+ def eval_value(self, value: Any, use_get_var: bool = False):
100
+ """ eval_value를 PyFM context 내재화 """
101
+ return eval_value(
102
+ value,
103
+ variables=self.variables,
104
+ get_global_variable=self.get_global_variable,
105
+ get_var=self.get_var if use_get_var else None
106
+ )
107
+
98
108
  def update_vars_to_state_dict(self):
99
109
  owner_state = self._resolve_variable_owner_state()
100
110
  current = dict(owner_state.get("variables", {}))
@@ -167,6 +177,18 @@ class ExecutionContext:
167
177
 
168
178
  self.update_global_variables({var_name: res})
169
179
 
180
+ return res
181
+ elif category == "amr":
182
+ # SLAMNAV2랑 얘기해서 추가해야함 (RB_로 시작하는 global variable)
183
+ fn = self.get_sdk_function("rb_amr_sdk.status.get_variable")
184
+
185
+ res = fn(robot_model, var_name) if fn is not None else None
186
+
187
+ if res is None:
188
+ raise RuntimeError(f"Failed to get global variable: {var_name}")
189
+
190
+ self.update_global_variables({var_name: res})
191
+
170
192
  return res
171
193
  except Exception as e:
172
194
  raise e
@@ -27,13 +27,12 @@ import time
27
27
 
28
28
  from rainbow.rb_flow_manager.executor import ScriptExecutor # 실행 엔진
29
29
  from rainbow.rb_flow_manager.step import (
30
- ConditionStep, # If / ElseIf / Else
31
- FolderStep, # 논리 묶음
32
- RepeatStep, # N회 반복
33
- Step, # 기본 스텝
30
+ ConditionStep, # If / ElseIf / Else
31
+ FolderStep, # 논리 묶음
32
+ RepeatStep, # N회 반복
33
+ Step, # 기본 스텝
34
34
  )
35
35
 
36
-
37
36
  # ─────────────────────────────────────────────
38
37
  # 2. 스텝 동작 함수
39
38
  #
@@ -29,14 +29,13 @@ import time
29
29
 
30
30
  from rainbow.rb_flow_manager.executor import ScriptExecutor
31
31
  from rainbow.rb_flow_manager.step import (
32
- BreakStep, # 루프 탈출
33
- ConditionStep, # If / ElseIf / Else
34
- FolderStep, # 논리 묶음
35
- RepeatStep, # N회 반복
36
- Step, # 기본 스텝
32
+ BreakStep, # 루프 탈출
33
+ ConditionStep, # If / ElseIf / Else
34
+ FolderStep, # 논리 묶음
35
+ RepeatStep, # N회 반복
36
+ Step, # 기본 스텝
37
37
  )
38
38
 
39
-
40
39
  # ─────────────────────────────────────────────
41
40
  # 2. 스텝 동작 함수 (반드시 모듈 최상위에 정의)
42
41
  #
@@ -35,7 +35,6 @@ from rainbow.rb_flow_manager.step import (
35
35
  Step,
36
36
  )
37
37
 
38
-
39
38
  # ─────────────────────────────────────────────
40
39
  # 2. 메인 트리 스텝 함수
41
40
  # ─────────────────────────────────────────────
@@ -42,7 +42,7 @@ from rainbow.rb_flow_manager.step import (
42
42
  FolderStep,
43
43
  RepeatStep,
44
44
  Step,
45
- SubTaskStep, # 외부 .py 파일 로드 + 삽입 실행
45
+ SubTaskStep, # 외부 .py 파일 로드 + 삽입 실행
46
46
  )
47
47
 
48
48
  # 서브태스크 .py 파일의 절대 경로
@@ -46,14 +46,13 @@ import time
46
46
 
47
47
  from rainbow.rb_flow_manager.executor import ScriptExecutor
48
48
  from rainbow.rb_flow_manager.step import (
49
- CallEventStep, # 이벤트 서브 프로세스 호출
49
+ CallEventStep, # 이벤트 서브 프로세스 호출
50
50
  ConditionStep,
51
51
  FolderStep,
52
52
  RepeatStep,
53
53
  Step,
54
54
  )
55
55
 
56
-
57
56
  # ─────────────────────────────────────────────
58
57
  # 2. 부모 메인/post 트리 스텝 함수 (func= OK — 직렬화 경로 아님)
59
58
  #
@@ -17,7 +17,6 @@ SubTaskStep 은 이 파일을 importlib 로 직접 로드한 뒤
17
17
  # ─────────────────────────────────────────────
18
18
  from rainbow.rb_flow_manager.step import FolderStep, RepeatStep, Step
19
19
 
20
-
21
20
  # ─────────────────────────────────────────────
22
21
  # 2. 서브태스크 스텝 함수 (모듈 최상위에 정의)
23
22
  # ─────────────────────────────────────────────
@@ -1,16 +1,16 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rainbow-rb-flow-manager
3
- Version: 0.0.9.dev43
3
+ Version: 0.0.9.dev44
4
4
  Summary: Rainbow Python Flow Manager
5
5
  Author-email: Derek <dfd1123@rainbow-robotics.com>
6
6
  Requires-Python: >=3.11
7
7
  Description-Content-Type: text/markdown
8
- Requires-Dist: rainbow-rb-utils==0.0.9.dev43
9
- Requires-Dist: rainbow-rb-zenoh==0.0.9.dev43
10
- Requires-Dist: rainbow-rb-flat-buffers==0.0.9.dev43
11
- Requires-Dist: rainbow-rb-schemas==0.0.9.dev43
12
- Requires-Dist: rainbow-rb-sdk==0.0.9.dev43
13
- Requires-Dist: rainbow-rb-log==0.0.9.dev43
8
+ Requires-Dist: rainbow-rb-utils==0.0.9.dev44
9
+ Requires-Dist: rainbow-rb-zenoh==0.0.9.dev44
10
+ Requires-Dist: rainbow-rb-flat-buffers==0.0.9.dev44
11
+ Requires-Dist: rainbow-rb-schemas==0.0.9.dev44
12
+ Requires-Dist: rainbow-rb-sdk==0.0.9.dev44
13
+ Requires-Dist: rainbow-rb-log==0.0.9.dev44
14
14
 
15
15
  # rb_flow_manager 사용 설명서
16
16
 
@@ -0,0 +1,6 @@
1
+ rainbow-rb-utils==0.0.9.dev44
2
+ rainbow-rb-zenoh==0.0.9.dev44
3
+ rainbow-rb-flat-buffers==0.0.9.dev44
4
+ rainbow-rb-schemas==0.0.9.dev44
5
+ rainbow-rb-sdk==0.0.9.dev44
6
+ rainbow-rb-log==0.0.9.dev44
@@ -1,6 +0,0 @@
1
- rainbow-rb-utils==0.0.9.dev43
2
- rainbow-rb-zenoh==0.0.9.dev43
3
- rainbow-rb-flat-buffers==0.0.9.dev43
4
- rainbow-rb-schemas==0.0.9.dev43
5
- rainbow-rb-sdk==0.0.9.dev43
6
- rainbow-rb-log==0.0.9.dev43