pylint icon indicating copy to clipboard operation
pylint copied to clipboard

Missing mandatory keyword argument (E1125) with explicit mandatory keywords and keyword dictionary

Open khpeterson opened this issue 1 year ago • 1 comments

Bug description

kwargs.py:

"""kwargs module"""

def fun(a,b,*,c,d,**kwargs):
    """function with kwargs"""
    return a + b + c + d + kwargs['e'] + kwargs['f']

someargs = {}
someargs['c'] = 3
someargs['d'] = 4
someargs['e'] = 5
someargs['f'] = 6
someargs['g'] = 7

rval = fun(1,2,**someargs)
print(rval)

Configuration

No response

Command used

(.venv-3.12) % ~/.venv-3.12/bin/pylint kwargs.py

Pylint output

************* Module kwargs
kwargs.py:14:7: E1125: Missing mandatory keyword argument 'c' in function call (missing-kwoa)
kwargs.py:14:7: E1125: Missing mandatory keyword argument 'd' in function call (missing-kwoa)

------------------------------------------------------------------
Your code has been rated at 0.00/10 (previous run: 0.00/10, +0.00)

Expected behavior

No errors.

Pylint version

pylint 3.3.1
astroid 3.3.5
Python 3.12.3 (main, Apr  9 2024, 08:09:14) [Clang 15.0.0 (clang-1500.3.9.4)]

OS / Environment

macOS Sonoma 14.6.1 Terminal 2.14 (453)

Additional dependencies

No response

khpeterson avatar Oct 17 '24 13:10 khpeterson

FWIW, this is ok:

"""kwargs demo module"""

def fun(a,b,*,c,d,**kwargs):
    """function with kwargs"""
    return a + b + c + d + kwargs['e'] + kwargs['f']

def funfun(a,b,**kwargs):
    """another function with kwargs"""
    return fun(a,b,**kwargs)

someargs = {}
someargs['c'] = 3
someargs['d'] = 4
someargs['e'] = 5
someargs['f'] = 6
someargs['g'] = 7

rval = funfun(1,2,**someargs)
print(rval)

as is this:

"""kwargs demo module"""

def fun(a,b,*,c=None,d=None,**kwargs):
    """function with kwargs"""
    return a + b + c + d + kwargs['e'] + kwargs['f']

someargs = {}
someargs['c'] = 3
someargs['d'] = 4
someargs['e'] = 5
someargs['f'] = 6
someargs['g'] = 7

rval = fun(1,2,**someargs)
print(rval)

khpeterson avatar Oct 17 '24 18:10 khpeterson