There are several similar open bugs, not sure if they are part of the same root cause.
Pychecker appears to miscount when functions and kwargs are passed inline to a wrapper-style function.
Attached script with examples of passing/failing invocations.
Simple example inline below (trying to avoid auto-paragraph wrapping with extra newlines).
----------------------
def foo(a, b, c=2, **kwargs): _ = a, b, c, kwargs # Silence pychecker
def bar(c=2, **kwargs): _ = c, kwargs # Silence pychecker
def do(func, args, kwargs): func(*args, **kwargs)
# Invalid arguments to (foo), got 1, expected between 2 and 3
do(foo, args=[1, 2], kwargs={'c': 3})
kw = {'c': 3}
# No errors
do(foo, args=[1, 2], kwargs=kw)
# Invalid arguments to (bar), got 3, expected between 0 and 1
do(bar, [], {'c': 3})
# No errors
do(bar, [], kw)
f = bar
# No errors
do(f, [], kw)
----------------------
Hopefully didn't add multiple times, I did not see it created on the first or second attempts
View and moderate all "bugs Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Bugs"
Examples
Last edit: Anonymous 2013-09-24