"got multiple values for keyword argument" when using *args, **kwargs in a python function

Viewed 8287

When passing a named parameter request through **kwargs, I get an error-

Traceback (most recent call last):
  File "testKwargs.py", line 9, in <module>
    load_strategy(request="myReq", backend="myBackend", redirect_uri=None, *args, **kwargs)
  File "testKwargs.py", line 5, in load_strategy
    get_strategy("backends", "strategy", "storage", *args, **kwargs)
TypeError: get_strategy() got multiple values for keyword argument 'request'

The code in testKwargs.py is below-

def get_strategy(backends, strategy, storage, request=None, backend=None, *args, **kwargs):
    print request

def load_strategy(*args, **kwargs):
    get_strategy("backends", "strategy", "storage", *args, **kwargs)

args = ([],)
kwargs = {"acess_token":"myAccToken", "id":"myId"}
load_strategy(request="myReq", backend="myBackend", redirect_uri=None, *args, **kwargs)

I was expecting that there would be one key-value pair for the key request in the **kwargs of load_strategy which was passed on to the request parameter in get_stragegy, but that doesn't seem to be the case.

I am trying to figure out what I am missing here.

1 Answers
Related