digitalkin 0.3.2.dev29__py3-none-any.whl → 0.3.2.dev30__py3-none-any.whl

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.
digitalkin/__version__.py CHANGED
@@ -5,4 +5,4 @@ from importlib.metadata import PackageNotFoundError, version
5
5
  try:
6
6
  __version__ = version("digitalkin")
7
7
  except PackageNotFoundError:
8
- __version__ = "0.3.2.dev29"
8
+ __version__ = "0.3.2.dev30"
@@ -59,9 +59,18 @@ class SchemaSplitter:
59
59
  if items_ui:
60
60
  ui_target["items"] = items_ui
61
61
  elif key in {"allOf", "oneOf", "anyOf"} and isinstance(value, list):
62
- for item in value:
63
- if isinstance(item, dict):
64
- cls._extract_ui_properties(item, ui_target, defs)
62
+ # For oneOf/anyOf, create a mirrored structure in ui_target
63
+ if key in {"oneOf", "anyOf"}:
64
+ ui_target[key] = []
65
+ for item in value:
66
+ if isinstance(item, dict):
67
+ item_ui: dict[str, Any] = {}
68
+ cls._extract_ui_properties(item, item_ui, defs)
69
+ ui_target[key].append(item_ui)
70
+ else: # allOf - merge into parent
71
+ for item in value:
72
+ if isinstance(item, dict):
73
+ cls._extract_ui_properties(item, ui_target, defs)
65
74
  elif key in {"if", "then", "else"} and isinstance(value, dict):
66
75
  cls._extract_ui_properties(value, ui_target, defs)
67
76
  elif key == "$ref" and isinstance(value, str) and defs is not None and value.startswith("#/$defs/"):
@@ -132,13 +141,16 @@ class SchemaSplitter:
132
141
  json_target["allOf"].append(item)
133
142
  elif key in {"oneOf", "anyOf"} and isinstance(value, list):
134
143
  json_target[key] = []
144
+ ui_target[key] = [] # Mirror structure in ui_schema
135
145
  for item in value:
136
146
  if isinstance(item, dict):
137
147
  item_json_oneof_anyof: dict[str, Any] = {}
138
148
  cls._strip_ui_properties(item, item_json_oneof_anyof)
139
149
  json_target[key].append(item_json_oneof_anyof)
140
- # Extract UI properties from oneOf/anyOf item (resolves $ref)
141
- cls._extract_ui_properties(item, ui_target, schema_defs)
150
+ # Extract UI properties into a separate dict for this variant
151
+ item_ui_oneof_anyof: dict[str, Any] = {}
152
+ cls._extract_ui_properties(item, item_ui_oneof_anyof, schema_defs)
153
+ ui_target[key].append(item_ui_oneof_anyof)
142
154
  else:
143
155
  json_target[key].append(item)
144
156
  elif key in {"if", "then", "else"} and isinstance(value, dict):
@@ -200,15 +212,18 @@ class SchemaSplitter:
200
212
  ui_target["items"] = items_ui
201
213
  elif key in {"oneOf", "anyOf"} and isinstance(value, list):
202
214
  json_target[key] = []
215
+ ui_target[key] = [] # Mirror structure in ui_schema
203
216
  for item in value:
204
217
  if isinstance(item, dict):
205
218
  item_json_oneof_anyof: dict[str, Any] = {}
206
219
  cls._strip_ui_properties(item, item_json_oneof_anyof)
207
220
  json_target[key].append(item_json_oneof_anyof)
208
- # Extract UI properties from $ref in oneOf/anyOf items
221
+ # Extract UI properties for this variant
222
+ item_ui_oneof_anyof: dict[str, Any] = {}
209
223
  ref_path = item.get("$ref", "")
210
224
  if ref_path.startswith("#/$defs/") and ref_path[8:] in defs_ui:
211
- ui_target.update(defs_ui[ref_path[8:]])
225
+ item_ui_oneof_anyof.update(defs_ui[ref_path[8:]])
226
+ ui_target[key].append(item_ui_oneof_anyof)
212
227
  else:
213
228
  json_target[key].append(item)
214
229
  elif key == "hidden":
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: digitalkin
3
- Version: 0.3.2.dev29
3
+ Version: 0.3.2.dev30
4
4
  Summary: SDK to build kin used in DigitalKin
5
5
  Author-email: "DigitalKin.ai" <contact@digitalkin.ai>
6
6
  License: Attribution-NonCommercial-ShareAlike 4.0 International
@@ -7,7 +7,7 @@ base_server/mock/__init__.py,sha256=YZFT-F1l_TpvJYuIPX-7kTeE1CfOjhx9YmNRXVoi-jQ,
7
7
  base_server/mock/mock_pb2.py,sha256=sETakcS3PAAm4E-hTCV1jIVaQTPEAIoVVHupB8Z_k7Y,1843
8
8
  base_server/mock/mock_pb2_grpc.py,sha256=BbOT70H6q3laKgkHfOx1QdfmCS_HxCY4wCOX84YAdG4,3180
9
9
  digitalkin/__init__.py,sha256=7LLBAba0th-3SGqcpqFO-lopWdUkVLKzLZiMtB-mW3M,162
10
- digitalkin/__version__.py,sha256=Im4DuiSZXozbB4vfOcuT3XJEFnqtXOltBpIWCMj0itI,196
10
+ digitalkin/__version__.py,sha256=ae9RK0HSLfcT6PpMoP-U9CLQQeJH7Ej6t5Jw6ZGL7t8,196
11
11
  digitalkin/logger.py,sha256=8ze_tjt2G6mDTuQcsf7-UTXWP3UHZ7LZVSs_iqF4rX4,4685
12
12
  digitalkin/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
13
  digitalkin/core/__init__.py,sha256=FJRcJ-B1Viyn-38L8XpOpZ8KOnf1I7PCDOAmKXLQhqc,71
@@ -122,8 +122,8 @@ digitalkin/utils/development_mode_action.py,sha256=2hznh0ajW_4ZTysfoc0Y49161f_PQ
122
122
  digitalkin/utils/dynamic_schema.py,sha256=y5csxjuqVHjWDpnTUzxbcUuI_wou9-ibRVHQlBs_btY,15275
123
123
  digitalkin/utils/llm_ready_schema.py,sha256=JjMug_lrQllqFoanaC091VgOqwAd-_YzcpqFlS7p778,2375
124
124
  digitalkin/utils/package_discover.py,sha256=sa6Zp5Kape1Zr4iYiNrnZxiHDnqM06ODk6yfWHom53w,13465
125
- digitalkin/utils/schema_splitter.py,sha256=x_clDCbdpquKZP_4RLOkVs-WoSRXpAqYFKSxJfrZDVA,13125
126
- digitalkin-0.3.2.dev29.dist-info/licenses/LICENSE,sha256=Ies4HFv2r2hzDRakJYxk3Y60uDFLiG-orIgeTpstnIo,20327
125
+ digitalkin/utils/schema_splitter.py,sha256=lMaReyLD4kGAZSQ9MSxpNZ4D4luWANVArFqNWV_bsko,14040
126
+ digitalkin-0.3.2.dev30.dist-info/licenses/LICENSE,sha256=Ies4HFv2r2hzDRakJYxk3Y60uDFLiG-orIgeTpstnIo,20327
127
127
  modules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
128
128
  modules/archetype_with_tools_module.py,sha256=kJkVhAFWG0aDDqzupOXOnV3l8j3z5bEdWos_6Z9rUP8,7303
129
129
  modules/cpu_intensive_module.py,sha256=GZlirQDZdYuXrI46sv1q4RNAHZjL4EptHVQTvgK9zz8,8363
@@ -138,7 +138,7 @@ monitoring/digitalkin_observability/prometheus.py,sha256=gDmM9ySaVwPAe7Yg84pLxmE
138
138
  monitoring/tests/test_metrics.py,sha256=ugnYfAwqBPO6zA8z4afKTlyBWECTivacYSN-URQCn2E,5856
139
139
  services/filesystem_module.py,sha256=U4dgqtuDadaXz8PJ1d_uQ_1EPncBqudAQCLUICF9yL4,7421
140
140
  services/storage_module.py,sha256=Wz2MzLvqs2D_bnBBgtnujYcAKK2V2KFMk8K21RoepSE,6972
141
- digitalkin-0.3.2.dev29.dist-info/METADATA,sha256=tCHE0ptPvwBsNYoRymS8PxdcE0LICtZCr5UAgIgxzJo,29725
142
- digitalkin-0.3.2.dev29.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
143
- digitalkin-0.3.2.dev29.dist-info/top_level.txt,sha256=AYVIesKrO0jnedQ-Muog9JBehG81WeTCNeOFoJgwsgE,51
144
- digitalkin-0.3.2.dev29.dist-info/RECORD,,
141
+ digitalkin-0.3.2.dev30.dist-info/METADATA,sha256=p61ucL27xrbUi7r5PXTNAiQqdV5p_3a1PogbLEvK0mk,29725
142
+ digitalkin-0.3.2.dev30.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
143
+ digitalkin-0.3.2.dev30.dist-info/top_level.txt,sha256=AYVIesKrO0jnedQ-Muog9JBehG81WeTCNeOFoJgwsgE,51
144
+ digitalkin-0.3.2.dev30.dist-info/RECORD,,