mirror of https://github.com/django/django.git
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:
parent
3df3c5e670
commit
09341856ed
|
@ -1916,9 +1916,8 @@ class Query(BaseExpression):
|
||||||
group_by = list(self.select)
|
group_by = list(self.select)
|
||||||
if self.annotation_select:
|
if self.annotation_select:
|
||||||
for alias, annotation in self.annotation_select.items():
|
for alias, annotation in self.annotation_select.items():
|
||||||
try:
|
signature = inspect.signature(annotation.get_group_by_cols)
|
||||||
inspect.getcallargs(annotation.get_group_by_cols, alias=alias)
|
if 'alias' not in signature.parameters:
|
||||||
except TypeError:
|
|
||||||
annotation_class = annotation.__class__
|
annotation_class = annotation.__class__
|
||||||
msg = (
|
msg = (
|
||||||
'`alias=None` must be added to the signature of '
|
'`alias=None` must be added to the signature of '
|
||||||
|
|
|
@ -857,8 +857,9 @@ class Variable:
|
||||||
try: # method call (assuming no args required)
|
try: # method call (assuming no args required)
|
||||||
current = current()
|
current = current()
|
||||||
except TypeError:
|
except TypeError:
|
||||||
|
signature = inspect.signature(current)
|
||||||
try:
|
try:
|
||||||
inspect.getcallargs(current)
|
signature.bind()
|
||||||
except TypeError: # arguments *were* required
|
except TypeError: # arguments *were* required
|
||||||
current = context.template.engine.string_if_invalid # invalid method call
|
current = context.template.engine.string_if_invalid # invalid method call
|
||||||
else:
|
else:
|
||||||
|
|
Loading…
Reference in New Issue