
python-checkins at python
Aug 22, 2006, 3:03 PM
Post #1 of 1
(99 views)
Permalink
|
|
r51493 - peps/trunk/pep-0362.txt
|
|
Author: brett.cannon Date: Wed Aug 23 00:03:11 2006 New Revision: 51493 Modified: peps/trunk/pep-0362.txt Log: Point to prototype implementation. Also clarify 'name' attribute on Signature is not fully qualified. Modified: peps/trunk/pep-0362.txt ============================================================================== --- peps/trunk/pep-0362.txt (original) +++ peps/trunk/pep-0362.txt Wed Aug 23 00:03:11 2006 @@ -15,12 +15,13 @@ ======== Python has always supported powerful introspection capabilities, -including that for functions. Taking a function object, you can fully -reconstruct the function signature using ``func_defaults``, -``func_code.co_argcount``, ``func_code.co_flags``, and -``func_code.co_varnames``. Unfortunately this is a little unruly -having to look at four different attributes to pull together complete -information for a function's signature. +including that for functions and methods (for the rest of this PEP the +word "function" refers to both functions and methods). Taking a +function object, you can fully reconstruct the function signature +using ``func_defaults``, ``func_code.co_argcount``, +``func_code.co_flags``, and ``func_code.co_varnames``. Unfortunately +this is a little unruly having to look at four different attributes +to pull together complete information for a function's signature. This PEP proposes an object representation for function signatures. This should help facilitate introspection on functions. It also helps @@ -40,7 +41,12 @@ A Signature object has the following structure attributes: * name:str - Name of the function. + Name of the function. This is not fully qualified because + function objects for methods do not know the class they are + contained within. This makes functions and methods + indistinguishable from one another when passed to decorators, + prevventing proper creation of a fully qualified name. + indistinguishable from * var_args:str Name of the ``*args`` parameter, if present, else the empty string. @@ -94,11 +100,12 @@ Implementation ============== -An implementation is forthcoming for experimentation purposes based on -the 'inspect' module [#inspect-module]_. The classes will be exposed -in the 'inspect' module as well. This PEP has been posted without -implementation so as to not be a hinderance to another PEP that is -under development by another author. +An implementation can be found in patch #1544909 [#impl]_. It +modifies the 'inspect' module [#inspect-module]_to include the +implementation. There is a function named ``getsignature()`` which +returns the value stored on the ``__signature__`` attribute (for +methods this is stored directly on the im_func function object since +that is what decorators will work with). Relation With Other PEPs @@ -144,6 +151,9 @@ .. [#pep-3102] Keyword-Only Arguments (http://www.python.org/dev/peps/pep-3102/) +.. [#impl] Implementation of PEP 362 + (http://www.python.org/sf/1544909) + Copyright ========= _______________________________________________ Python-checkins mailing list Python-checkins [at] python http://mail.python.org/mailman/listinfo/python-checkins
|