rainbow-rb-utils 0.0.77__tar.gz → 0.0.78.dev1__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 (25) hide show
  1. {rainbow_rb_utils-0.0.77 → rainbow_rb_utils-0.0.78.dev1}/PKG-INFO +2 -2
  2. {rainbow_rb_utils-0.0.77 → rainbow_rb_utils-0.0.78.dev1}/pyproject.toml +2 -2
  3. {rainbow_rb_utils-0.0.77 → rainbow_rb_utils-0.0.78.dev1}/src/rainbow/rb_utils/flow_manager.py +11 -5
  4. {rainbow_rb_utils-0.0.77 → rainbow_rb_utils-0.0.78.dev1}/src/rainbow/rb_utils/program.py +4 -1
  5. {rainbow_rb_utils-0.0.77 → rainbow_rb_utils-0.0.78.dev1}/src/rainbow_rb_utils.egg-info/PKG-INFO +2 -2
  6. rainbow_rb_utils-0.0.78.dev1/src/rainbow_rb_utils.egg-info/requires.txt +2 -0
  7. rainbow_rb_utils-0.0.77/src/rainbow_rb_utils.egg-info/requires.txt +0 -2
  8. {rainbow_rb_utils-0.0.77 → rainbow_rb_utils-0.0.78.dev1}/README.md +0 -0
  9. {rainbow_rb_utils-0.0.77 → rainbow_rb_utils-0.0.78.dev1}/setup.cfg +0 -0
  10. {rainbow_rb_utils-0.0.77 → rainbow_rb_utils-0.0.78.dev1}/src/rainbow/rb_utils/__init__.py +0 -0
  11. {rainbow_rb_utils-0.0.77 → rainbow_rb_utils-0.0.78.dev1}/src/rainbow/rb_utils/asyncio_helper.py +0 -0
  12. {rainbow_rb_utils-0.0.77 → rainbow_rb_utils-0.0.78.dev1}/src/rainbow/rb_utils/date.py +0 -0
  13. {rainbow_rb_utils-0.0.77 → rainbow_rb_utils-0.0.78.dev1}/src/rainbow/rb_utils/env.py +0 -0
  14. {rainbow_rb_utils-0.0.77 → rainbow_rb_utils-0.0.78.dev1}/src/rainbow/rb_utils/file.py +0 -0
  15. {rainbow_rb_utils-0.0.77 → rainbow_rb_utils-0.0.78.dev1}/src/rainbow/rb_utils/flatbuffer.py +0 -0
  16. {rainbow_rb_utils-0.0.77 → rainbow_rb_utils-0.0.78.dev1}/src/rainbow/rb_utils/helper.py +0 -0
  17. {rainbow_rb_utils-0.0.77 → rainbow_rb_utils-0.0.78.dev1}/src/rainbow/rb_utils/manipulate.py +0 -0
  18. {rainbow_rb_utils-0.0.77 → rainbow_rb_utils-0.0.78.dev1}/src/rainbow/rb_utils/pagination.py +0 -0
  19. {rainbow_rb_utils-0.0.77 → rainbow_rb_utils-0.0.78.dev1}/src/rainbow/rb_utils/parser.py +0 -0
  20. {rainbow_rb_utils-0.0.77 → rainbow_rb_utils-0.0.78.dev1}/src/rainbow/rb_utils/path_utils.py +0 -0
  21. {rainbow_rb_utils-0.0.77 → rainbow_rb_utils-0.0.78.dev1}/src/rainbow/rb_utils/py.typed +0 -0
  22. {rainbow_rb_utils-0.0.77 → rainbow_rb_utils-0.0.78.dev1}/src/rainbow/rb_utils/service_exception.py +0 -0
  23. {rainbow_rb_utils-0.0.77 → rainbow_rb_utils-0.0.78.dev1}/src/rainbow_rb_utils.egg-info/SOURCES.txt +0 -0
  24. {rainbow_rb_utils-0.0.77 → rainbow_rb_utils-0.0.78.dev1}/src/rainbow_rb_utils.egg-info/dependency_links.txt +0 -0
  25. {rainbow_rb_utils-0.0.77 → rainbow_rb_utils-0.0.78.dev1}/src/rainbow_rb_utils.egg-info/top_level.txt +0 -0
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rainbow-rb-utils
3
- Version: 0.0.77
3
+ Version: 0.0.78.dev1
4
4
  Summary: Rainbow Python Utilities
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
8
  Requires-Dist: psutil<8.0.0,>=7.0.0
9
- Requires-Dist: rainbow-rb-log==0.0.77
9
+ Requires-Dist: rainbow-rb-log==0.0.78.dev1
10
10
 
11
11
  # rb_utils
12
12
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "rainbow-rb-utils"
7
- version = "0.0.77"
7
+ version = "0.0.78.dev1"
8
8
  requires-python = ">=3.11,<3.14"
9
9
  description = "Rainbow Python Utilities"
10
10
  authors = [
@@ -14,7 +14,7 @@ readme = "README.md"
14
14
 
15
15
  dependencies = [
16
16
  "psutil>=7.0.0,<8.0.0",
17
- "rainbow-rb-log==0.0.77",
17
+ "rainbow-rb-log==0.0.78.dev1",
18
18
  ]
19
19
 
20
20
  [tool.setuptools]
@@ -466,16 +466,22 @@ def call_with_matching_args(func, **provided):
466
466
  if sig is None:
467
467
  raise
468
468
  call_kwargs = {}
469
+ has_var_keyword = False
469
470
 
470
471
  for name, param in sig.parameters.items():
471
- if name in provided:
472
+ if param.kind is inspect.Parameter.VAR_KEYWORD:
473
+ has_var_keyword = True
474
+ elif name in provided:
472
475
  call_kwargs[name] = provided[name]
473
- elif param.default is inspect.Parameter.empty and param.kind not in (
474
- inspect.Parameter.VAR_POSITIONAL,
475
- inspect.Parameter.VAR_KEYWORD,
476
- ):
476
+ elif param.default is inspect.Parameter.empty and param.kind is not inspect.Parameter.VAR_POSITIONAL:
477
477
  raise TypeError(f"Missing required parameter: {name}")
478
478
 
479
+ if has_var_keyword:
480
+ # func가 **kwargs로 임의 인자를 받으므로, 이름이 파라미터와 안 겹치는 나머지도 전달한다.
481
+ for name, value in provided.items():
482
+ if name not in sig.parameters:
483
+ call_kwargs[name] = value
484
+
479
485
  result: Any = func(**call_kwargs)
480
486
 
481
487
  async def _await_awaitable(a):
@@ -109,7 +109,10 @@ def get_timeout_sec(data, error_prefix: str, default: float | None = None) -> in
109
109
 
110
110
  def get_required_field(data, field_name: str, error_prefix: str):
111
111
  value = data.get(field_name)
112
- if value in (None, "", Ellipsis):
112
+ # numpy array 등 element-wise __eq__를 오버라이드하는 값이 올 수 있어
113
+ # `value in (None, "", Ellipsis)` 는 "truth value of an array is ambiguous"로 깨진다.
114
+ # is 비교 + 문자열 한정 "" 비교로 element-wise 비교를 피한다.
115
+ if value is None or value is Ellipsis or (isinstance(value, str) and value == ""):
113
116
  raise ValueError(f"{error_prefix}: {field_name} is required")
114
117
  return value
115
118
 
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rainbow-rb-utils
3
- Version: 0.0.77
3
+ Version: 0.0.78.dev1
4
4
  Summary: Rainbow Python Utilities
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
8
  Requires-Dist: psutil<8.0.0,>=7.0.0
9
- Requires-Dist: rainbow-rb-log==0.0.77
9
+ Requires-Dist: rainbow-rb-log==0.0.78.dev1
10
10
 
11
11
  # rb_utils
12
12
 
@@ -0,0 +1,2 @@
1
+ psutil<8.0.0,>=7.0.0
2
+ rainbow-rb-log==0.0.78.dev1
@@ -1,2 +0,0 @@
1
- psutil<8.0.0,>=7.0.0
2
- rainbow-rb-log==0.0.77