summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaudiu Popa <pcmanticore@gmail.com>2020-12-27 10:17:35 +0100
committerClaudiu Popa <pcmanticore@gmail.com>2020-12-27 10:29:23 +0100
commitef288522d0dadccd97578b515c43c5c2fd3d1f52 (patch)
tree7409c6340b9a21cd23afc974c7fc1b4a6f2d99a1
parent3c5ff572ad774b2fa1ea457bee61005833118cc3 (diff)
downloadastroid-git-ef288522d0dadccd97578b515c43c5c2fd3d1f52.tar.gz
Fix a crash in functools.partial inference when the arguments cannot be determined
Close PyCQA/pylint#3776
-rw-r--r--ChangeLog5
-rw-r--r--astroid/brain/brain_functools.py13
2 files changed, 13 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index f30157b5..954f21b2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -75,6 +75,11 @@ Release Date: TBA
Close #835
+* Fix a crash in functools.partial inference when the arguments cannot be determined
+
+ Close PyCQA/pylint#3776
+
+
What's New in astroid 2.4.3?
============================
Release Date: TBA
diff --git a/astroid/brain/brain_functools.py b/astroid/brain/brain_functools.py
index d6c60691..f943f71a 100644
--- a/astroid/brain/brain_functools.py
+++ b/astroid/brain/brain_functools.py
@@ -86,11 +86,14 @@ def _functools_partial_inference(node, context=None):
# Determine if the passed keywords into the callsite are supported
# by the wrapped function.
- function_parameters = chain(
- inferred_wrapped_function.args.args or (),
- inferred_wrapped_function.args.posonlyargs or (),
- inferred_wrapped_function.args.kwonlyargs or (),
- )
+ if not inferred_wrapped_function.args:
+ function_parameters = []
+ else:
+ function_parameters = chain(
+ inferred_wrapped_function.args.args or (),
+ inferred_wrapped_function.args.posonlyargs or (),
+ inferred_wrapped_function.args.kwonlyargs or (),
+ )
parameter_names = set(
param.name
for param in function_parameters