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

Steven D'Aprano steve at pearwood.info
Thu Jun 7 00:38:33 CEST 2012


Brett Cannon wrote:

On Wed, Jun 6, 2012 at 12:16 PM, Steven D'Aprano <steve at pearwood.info>wrote:

Larry Hastings wrote:

[...] "Changes to the Signature object, or to any of its data members, do not affect the function itself."

which leaves the possibility that signature may no longer match the actual argument spec, for some reason. If you remove getfullargspec, people will have to reinvent it to deal with such cases. There's no reason why they should disagree. The "some reason" would be if some doorknob decided to change it--the objects are mutable, because there's no good reason to make them immutable. Nevertheless, the world is full of doorknobs, and people will have to deal with their code. This is also Python, the language that assumes everyone is an consenting adult.

Exactly, which is why I'm not asking for signature to be immutable. Who knows, despite Larry's skepticism (and mine!), perhaps there is a use-case for signature being modified that we haven't thought of yet.

But that's not really the point. It may be that nobody will be stupid enough to mangle signature, and inspect.getfullargspec becomes redundant. Even so, getfullargspec is not doing any harm. We're not adding complexity, it's already there, and breaking currently working code by deprecating and then removing it is not a step we should take lightly. API churn is itself a cost.

[...]

If people really want to keep getullargspec() around then I want to at least add a note to the function that signature objects exist as an alternative (but not vice-versa).

+1

-- Steven



More information about the Python-Dev mailing list