[Python-Dev] Updated PEP 362 (Function Signature Object)

Larry Hastings larry at hastings.org
Wed Jun 6 19:48:28 CEST 2012



Sorry I missed answering these on my first pass.

On 06/06/2012 08:38 AM, Steven D'Aprano wrote:
> What to do about parameters which are partly implemented? E.g. 
> mode='spam' is implemented but mode='ham' is not.

Parameter objects aren't sophisticated enough to represent such a 
situation.  If you have a use case for a more sophisticated approach, 
and can propose a change to the Parameter object to handle it, I'd be 
interested to see it.

In truth, the way I currently support those "unimplemented" parameters 
is, passing in the default parameter is still permitted.  So in a way I 
suppose I already have this situation, kinda?  But is_implemented as it 
stands works fine for my use case.

> inspect.getfullargspec is currently unable to introspect builtin 
> functions and methods. Should builtins gain a __signature__ so they 
> can be introspected?

If function signatures are useful, then they're useful, and the 
implementation language for the function is irrelevant.  I already sent 
Yuri a patch adding __signature__ to PyCFunctionObject, which I thought 
he merged but I don't see in his repo.

The problem (obviously) is generating the signature.  Brett has an idea 
about parsing the docstring; it strikes me as hackish.  I think solving 
the problem definitively will require a new argument parsing API and 
that's simply not happening for 3.3.

If my patch for issue 14626 and PEP 362 both land in 3.3, my plan is to 
hard-code the signatures for just those functions.


//arry/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20120606/d0cc42d0/attachment.html>


More information about the Python-Dev mailing list