On 2008-10-31 00:18, John Krukoff wrote: > On Fri, 2008-10-31 at 08:55 +1000, James Mills wrote: >> What you have discovered is not a bug :) >> >> cheers >> James >> > > Are you sure? It looks like his complaint isn't that it doesn't work, > but that the error message is misleading. > > With the setup: > > Python 2.5.2 (r252:60911, Sep 22 2008, 12:08:38) > [GCC 4.1.2 (Gentoo 4.1.2 p1.1)] on linux2 > Type "help", "copyright", "credits" or "license" for more information. >>>> def foo( a, b, c ): > ... pass > ... > > Compare the error messages from: > >>>> foo( **{ 'a' : 1, 'c' : 3 } ) > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > TypeError: foo() takes exactly 3 non-keyword arguments (1 given) > > to the error message here: > >>>> foo( **{ 'a' : 1, 'b' : 3 } ) > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > TypeError: foo() takes exactly 3 non-keyword arguments (2 given)
The (n given) notice refers to the number of keyword parameters you specified in the call that could be associated with a non-keyword arguments of the function. I agree that this is a bit misleading. Please open a bug report on python.org. > Is it even possible to get an error message in terms of required keyword > arguments? I seem to remember seeing a note about keyword only arguments > recently... You probably saw PEP 3102: http://www.python.org/dev/peps/pep-3102/ That has a somewhat different focus though: it allows defining keyword-only arguments, ie. ones that cannot be used as both non-keyword parameter and keyword parameter (like we have in Python 2.x). -- Marc-Andre Lemburg eGenix.com Professional Python Services directly from the Source (#1, Oct 31 2008) >>> Python/Zope Consulting and Support ... http://www.egenix.com/ >>> mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/ >>> mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/ ________________________________________________________________________ :::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,MacOSX for free ! :::: eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48 D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg Registered at Amtsgericht Duesseldorf: HRB 46611 -- http://mail.python.org/mailman/listinfo/python-list