@@ -100,8 +100,6 @@ class Choices: # type: ignore
100100else :
101101 CACHED_PROPERTY_FUNCS = (cached_property ,)
102102
103- T = TypeVar ('T' )
104-
105103
106104class _Sentinel :
107105 pass
@@ -301,7 +299,7 @@ def build_basic_type(obj: Union[_KnownPythonTypes, OpenApiTypes]) -> Optional[_S
301299 elif obj in openapi_type_mapping :
302300 return dict (openapi_type_mapping [obj ])
303301 elif obj in PYTHON_TYPE_MAPPING :
304- return dict (openapi_type_mapping [PYTHON_TYPE_MAPPING [obj ]])
302+ return dict (openapi_type_mapping [PYTHON_TYPE_MAPPING [obj ]]) # type: ignore[index]
305303 else :
306304 warn (f'could not resolve type for "{ obj } ". defaulting to "string"' )
307305 return dict (openapi_type_mapping [OpenApiTypes .STR ])
@@ -818,6 +816,9 @@ def build(self, extra_components) -> _SchemaType:
818816 }
819817
820818
819+ T = TypeVar ('T' , bound = "OpenApiGeneratorExtension" )
820+
821+
821822class OpenApiGeneratorExtension (Generic [T ], metaclass = ABCMeta ):
822823 _registry : List [Type [T ]] = []
823824 target_class : Union [None , str , Type [object ]] = None
@@ -870,7 +871,7 @@ def _matches(cls, target: Any) -> bool:
870871 return get_class (target ) == cls .target_class
871872
872873 @classmethod
873- def get_match (cls , target ) -> Optional [T ]:
874+ def get_match (cls , target : Any ) -> Optional [T ]:
874875 for extension in sorted (cls ._registry , key = lambda e : e .priority , reverse = True ):
875876 if extension ._matches (target ):
876877 return extension (target )
0 commit comments