@@ -557,48 +557,37 @@ def generate_one_of_type(path: str, name: str, schema: dict, data: dict):
557557 flattened_schema ["required" ] = required_fields
558558
559559 extra_imports = None
560- if not alias_imports_needed :
561- extra_imports = [
562- "from pydantic import model_serializer, model_validator\n "
563- ]
564- alias_imports_needed = True
565-
560+ extra_body_lines = []
566561 wrapped_key = outer_name
567- extra_body_lines = [
568- ' @model_validator(mode="before")' ,
569- " @classmethod" ,
570- " def _unwrap(cls, data):" ,
571- " if isinstance(data, dict) and '"
572- + wrapped_key
573- + "' in data and isinstance(data['"
574- + wrapped_key
575- + "'], dict):" ,
576- " return data['" + wrapped_key + "']" ,
577- " return data" ,
578- ]
579562
580563 if wrap_entire_payload :
564+ if not alias_imports_needed :
565+ extra_imports = [
566+ "from pydantic import model_serializer, model_validator\n "
567+ ]
568+ alias_imports_needed = True
569+
581570 extra_body_lines .extend (
582571 [
583- ' @model_serializer(mode="wrap")' ,
584- " def _wrap(self, handler, info):" ,
585- " payload = handler(self, info)" ,
586- " return {'" + wrapped_key + "': payload}" ,
572+ ' @model_validator(mode="before")' ,
573+ " @classmethod" ,
574+ " def _unwrap(cls, data):" ,
575+ " if isinstance(data, dict) and '"
576+ + wrapped_key
577+ + "' in data and isinstance(data['"
578+ + wrapped_key
579+ + "'], dict):" ,
580+ " return data['" + wrapped_key + "']" ,
581+ " return data" ,
587582 ]
588583 )
589- else :
584+
590585 extra_body_lines .extend (
591586 [
592587 ' @model_serializer(mode="wrap")' ,
593588 " def _wrap(self, handler, info):" ,
594589 " payload = handler(self, info)" ,
595- " if isinstance(payload, dict) and '"
596- + wrapped_key
597- + "' in payload:" ,
598- " value = payload['" + wrapped_key + "']" ,
599- " else:" ,
600- " value = payload" ,
601- " return {'" + wrapped_key + "': value}" ,
590+ " return {'" + wrapped_key + "': payload}" ,
602591 ]
603592 )
604593
0 commit comments