diff options
| -rw-r--r-- | ChangeLog | 5 | ||||
| -rw-r--r-- | astroid/brain/brain_functools.py | 13 |
2 files changed, 13 insertions, 5 deletions
@@ -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 |
