Jonathan Gardner
jgardn at alumni.washington.edu
Fri Jan 11 07:14:33 EST 2002
I expected to be able to get all the script args with a piece of code like this: def scriptname(req, **args): ... but instead I got none of them at all. Here is the patch that does what I expect. If I need to submit this differently, let me know. *** publisher.py Mon Jul 9 21:54:40 2001 --- /usr/local/lib/python2.0/site-packages/mod_python/publisher.py Fri Jan 11 07:08:51 2002 *************** *** 150,155 **** --- 150,157 ---- # and for that we need to get a list of them. There # are a few options for callable objects here: + # Whether or not there is a **args argument in the function list. + has_keyarg = 0 if str(type(object)) == "<type 'instance'>": # instances are callable when they have __call__() object = object.__call__ *************** *** 158,172 **** # function fc = object.func_code expected = fc.co_varnames[0:fc.co_argcount] elif hasattr(object, 'im_func'): # method fc = object.im_func.func_code expected = fc.co_varnames[1:fc.co_argcount] # remove unexpected args ! for name in args.keys(): ! if name not in expected: ! del args[name] result = apply(object, (), args) --- 160,177 ---- # function fc = object.func_code expected = fc.co_varnames[0:fc.co_argcount] + has_keyarg = fc.co_flags & 0x08 elif hasattr(object, 'im_func'): # method fc = object.im_func.func_code expected = fc.co_varnames[1:fc.co_argcount] + has_keyarg = fc.co_flags & 0x08 # remove unexpected args ! if not has_keyarg: ! for name in args.keys(): ! if name not in expected: ! del args[name] result = apply(object, (), args)
|