Hello, Sorry, I made mistake on last patch... I am sending the correct one
--- mapply.py 2003-03-17 20:11:23.000000000 -0300 +++ mapply.py.new 2003-03-17 20:11:16.000000000 -0300 @@ -13,6 +13,8 @@ """Provide an apply-like facility that works with any mapping object """ +import inspect + def default_call_object(object, args, context): result=apply(object,args) # Type s<cr> to step into published object. return result @@ -23,11 +25,15 @@ def default_handle_class(klass, context): if hasattr(klass,'__init__'): f=klass.__init__.im_func - c=f.func_code - names=c.co_varnames[1:c.co_argcount] - return klass, names, f.func_defaults + #c=f.func_code + #names=c.co_varnames[1:c.co_argcount] + spec=inpect.getargspec(f) + names=spec[0][1:] + defaults=spec[3] + vargs=spec[1:3] + return klass, names, defaults, vargs else: - return klass, (), () + return klass, (), (), [] def mapply(object, positional=(), keyword={}, debug=None, maybe=None, @@ -37,7 +43,7 @@ ): if hasattr(object,'__bases__'): - f, names, defaults = handle_class(object, context) + f, names, defaults, vargs = handle_class(object, context) else: f=object im=0 @@ -53,20 +59,25 @@ if im: f=f.im_func - c=f.func_code - defaults=f.func_defaults - names=c.co_varnames[1:c.co_argcount] + #c=f.func_code + #defaults=f.func_defaults + #names=c.co_varnames[1:c.co_argcount] + spec=inspect.getargspec(f) + names=spec[0][1:] + defaults=spec[3] + vargs=spec[1:3] else: defaults=f.func_defaults c=f.func_code names=c.co_varnames[:c.co_argcount] + vargs=None nargs=len(names) if positional: positional=list(positional) if bind and nargs and names[0]=='self': positional.insert(0, missing_name('self', context)) - if len(positional) > nargs: raise TypeError, 'too many arguments' + if (len(positional) > nargs) and not vargs: raise TypeError, 'too many arguments' args=positional else: if bind and nargs and names[0]=='self': _______________________________________________ Zope-Dev maillist - [EMAIL PROTECTED] http://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope )