@@ -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 ,
0 commit comments