Skip to content

Commit 9d6a490

Browse files
Minor fixes for initialization
1 parent 43ce185 commit 9d6a490

2 files changed

Lines changed: 10 additions & 10 deletions

File tree

discos_client/initializer.py

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -405,9 +405,9 @@ def _merge_subschemas(
405405
continue
406406
merged[k] = v
407407
if required_fields:
408-
merged["required"] = list(required_fields)
408+
merged["required"] = list(sorted(required_fields))
409409
if initialize_fields:
410-
merged["initialize"] = list(initialize_fields)
410+
merged["initialize"] = list(sorted(initialize_fields))
411411
return merged
412412

413413
def _replace_patterns_with_properties(
@@ -456,9 +456,10 @@ def _enrich_properties(
456456
schema = self._replace_patterns_with_properties(schema, values)
457457
properties = schema.get("properties", {})
458458
required = set(schema.get("required", []))
459+
initialize = set(schema.get("initialize", []))
459460
result: dict[str, Any] = {}
460461
for key, prop_schema in properties.items():
461-
if key in required or key in values:
462+
if key in required.union(initialize) or key in values:
462463
prop_schema = self._replace_patterns_with_properties(
463464
prop_schema,
464465
values.get(key, {})
@@ -588,16 +589,12 @@ def _initialize_from_schema(
588589
:param schema: Fully normalized JSON schema.
589590
:return: Initial structured payload used to construct a namespace.
590591
"""
591-
keys_to_init: set[str] = set(schema.get("required", ()))
592-
initialize = schema.get("initialize", [])
593-
if isinstance(initialize, list):
594-
for k in initialize:
595-
if isinstance(k, str):
596-
keys_to_init.add(k)
592+
required: set[str] = set(schema.get("required", []))
593+
initialize: set[str] = set(schema.get("initialize", []))
597594
fake_values: dict[str, Any] = {}
598595
result: dict[str, Any] = {}
599596

600-
for key in keys_to_init:
597+
for key in required.union(initialize):
601598
prop_schema = self._find_property_schema(schema, key)
602599
prop_schema = self._replace_patterns_with_properties(
603600
prop_schema,

discos_client/schemas/common/receivers.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,5 +179,8 @@
179179
"maxProperties": 1,
180180
"additionalProperties": false
181181
}
182+
],
183+
"initialize": [
184+
"boss"
182185
]
183186
}

0 commit comments

Comments
 (0)