@@ -79,10 +79,9 @@ def resolve(self, allow_lazyness: bool = True) -> Union[Property, None]:
79
79
if not self ._resolved :
80
80
schemas = LazyReferencePropertyProxy .__GLOBAL_SCHEMAS_REF
81
81
class_name = self ._reference .class_name
82
- if schemas :
83
- existing = schemas .enums .get (class_name ) or schemas .models .get (class_name )
84
- if existing :
85
- self ._resolved = attr .evolve (existing , required = self ._required , name = self ._name )
82
+ existing = schemas .enums .get (class_name ) or schemas .models .get (class_name )
83
+ if existing :
84
+ self ._resolved = attr .evolve (existing , required = self ._required , name = self ._name )
86
85
87
86
if self ._resolved :
88
87
return self ._resolved
@@ -524,7 +523,10 @@ def _property_from_data(
524
523
schemas ,
525
524
)
526
525
else :
527
- return cast (Property , LazyReferencePropertyProxy .create (name , required , data , parent_name )), schemas
526
+ if Reference .from_ref (f"#{ parent_name } " ).class_name == reference .class_name :
527
+ return cast (Property , LazyReferencePropertyProxy .create (name , required , data , parent_name )), schemas
528
+ else :
529
+ return PropertyError (data = data , detail = "Could not find reference in parsed models or enums." ), schemas
528
530
529
531
if data .enum :
530
532
return build_enum_property (
@@ -701,15 +703,15 @@ def build_schemas(*, components: Dict[str, Union[oai.Reference, oai.Schema]]) ->
701
703
errors .append (schemas_or_err )
702
704
else :
703
705
schemas = schemas_or_err
704
- processing = True # We made some progress this round, do another after it's donea
706
+ processing = True # We made some progress this round, do another after it's done
705
707
706
708
to_process = next_round
707
709
708
- for name , reference in references_to_process :
709
- schemas_or_err = resolve_reference_and_update_schemas (name , reference , schemas , references_by_name )
710
+ for name , reference in references_to_process :
711
+ schemas_or_err = resolve_reference_and_update_schemas (name , reference , schemas , references_by_name )
710
712
711
- if isinstance (schemas_or_err , PropertyError ):
712
- errors .append (schemas_or_err )
713
+ if isinstance (schemas_or_err , PropertyError ):
714
+ errors .append (schemas_or_err )
713
715
714
716
schemas .errors .extend (errors )
715
717
LazyReferencePropertyProxy .update_schemas (schemas )
0 commit comments