Browse Source

Check for class before checking `dunder_call`

pull/14458/head
Yurii Motov 8 months ago
parent
commit
62ae08d4a3
  1. 7
      fastapi/dependencies/models.py

7
fastapi/dependencies/models.py

@ -96,6 +96,8 @@ class Dependant:
_impartial(self.call) _impartial(self.call)
) or inspect.isgeneratorfunction(_unwrapped_call(self.call)): ) or inspect.isgeneratorfunction(_unwrapped_call(self.call)):
return True return True
if inspect.isclass(_unwrapped_call(self.call)):
return False
dunder_call = getattr(_impartial(self.call), "__call__", None) # noqa: B004 dunder_call = getattr(_impartial(self.call), "__call__", None) # noqa: B004
if dunder_call is None: if dunder_call is None:
return False # pragma: no cover return False # pragma: no cover
@ -120,6 +122,8 @@ class Dependant:
_impartial(self.call) _impartial(self.call)
) or inspect.isasyncgenfunction(_unwrapped_call(self.call)): ) or inspect.isasyncgenfunction(_unwrapped_call(self.call)):
return True return True
if inspect.isclass(_unwrapped_call(self.call)):
return False
dunder_call = getattr(_impartial(self.call), "__call__", None) # noqa: B004 dunder_call = getattr(_impartial(self.call), "__call__", None) # noqa: B004
if dunder_call is None: if dunder_call is None:
return False # pragma: no cover return False # pragma: no cover
@ -148,6 +152,8 @@ class Dependant:
_unwrapped_call(self.call) _unwrapped_call(self.call)
): ):
return True return True
if inspect.isclass(_unwrapped_call(self.call)):
return False
dunder_call = getattr(_impartial(self.call), "__call__", None) # noqa: B004 dunder_call = getattr(_impartial(self.call), "__call__", None) # noqa: B004
if dunder_call is None: if dunder_call is None:
return False # pragma: no cover return False # pragma: no cover
@ -162,7 +168,6 @@ class Dependant:
_impartial(dunder_unwrapped_call) _impartial(dunder_unwrapped_call)
) or iscoroutinefunction(_unwrapped_call(dunder_unwrapped_call)): ) or iscoroutinefunction(_unwrapped_call(dunder_unwrapped_call)):
return True return True
# if inspect.isclass(self.call): False, covered by default return
return False return False
@cached_property @cached_property

Loading…
Cancel
Save