Brett Cannon wrote:
On Wed, Jun 6, 2012 at 12:16 PM, Steven D'Aprano <st...@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
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com