Used Signature API instead of deprecated inspect.getcallargs().

inspect.getcallargs() was deprecated in Python 3.5 and the Signature
API (PEP 362) has better support for decorated functions (by default,
it follows the __wrapped__ attribute set by functools.wraps for
example).
This commit is contained in:
Baptiste Mispelon 2019-12-10 09:25:07 +01:00 committed by Mariusz Felisiak
parent 3df3c5e670
commit 09341856ed
2 changed files with 4 additions and 4 deletions

View File

@ -1916,9 +1916,8 @@ class Query(BaseExpression):
group_by = list(self.select)
if self.annotation_select:
for alias, annotation in self.annotation_select.items():
try:
inspect.getcallargs(annotation.get_group_by_cols, alias=alias)
except TypeError:
signature = inspect.signature(annotation.get_group_by_cols)
if 'alias' not in signature.parameters:
annotation_class = annotation.__class__
msg = (
'`alias=None` must be added to the signature of '

View File

@ -857,8 +857,9 @@ class Variable:
try: # method call (assuming no args required)
current = current()
except TypeError:
signature = inspect.signature(current)
try:
inspect.getcallargs(current)
signature.bind()
except TypeError: # arguments *were* required
current = context.template.engine.string_if_invalid # invalid method call
else: