summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBaptiste Mispelon <bmispelon@gmail.com>2019-12-10 09:25:07 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2019-12-10 09:36:34 +0100
commit09341856ed9008875c1cc883dc0c287670131458 (patch)
treec066dbbe774400b531d74828d4cb36745ef7c022
parent3df3c5e67070949887e08282a332cc34c1f05184 (diff)
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).
-rw-r--r--django/db/models/sql/query.py5
-rw-r--r--django/template/base.py3
2 files changed, 4 insertions, 4 deletions
diff --git a/django/db/models/sql/query.py b/django/db/models/sql/query.py
index 988689485c..d002698c63 100644
--- a/django/db/models/sql/query.py
+++ b/django/db/models/sql/query.py
@@ -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 '
diff --git a/django/template/base.py b/django/template/base.py
index ce33051312..7efc45356c 100644
--- a/django/template/base.py
+++ b/django/template/base.py
@@ -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: