Nick Coghlan added the comment:

I like the idea of the following signature:

    def signature(callable, *, follow_wrapped=True):
        ...

I'm less convinced about exposing the flag to optionally show the first 
positional arg for bound methods, as that's currently specific to method 
objects and builtins, rather than being a protocol like __wrapped__ that any 
callable can readily implement.

If we *did* do that, then I think we should follow the convention of naming it 
after an attribute we look for (in this case, __self__) rather than limiting it 
to a specific type, and also make it default to true for consistency.

That would give us:

    def signature(callable, *, follow_wrapped=True, omit_bound_self=True):
        ...

The "omit_bound_self" flag would then be documented along the following lines: 
"If 'omit_bound_self' is true, and the callable has a '__self__' attribute set 
to a value other than None, then the first positional argument will be hidden 
from the displayed signature. Setting this to false means that bound methods 
will be displayed the same"

However, as noted, I doubt the latter is worth it - let's just expose the flag 
to decide whether to resolve wrapper chains or not, and leave the inclusion of 
the already bound value in the reported signature solely as a legacy behaviour 
of getargspec and getfullargspec.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue20691>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to