[New-bugs-announce] [issue37063] Incorrect application of func.__defaults__ by inspect's signature APIs

Dan Snider report at bugs.python.org
Mon May 27 06:57:38 EDT 2019


New submission from Dan Snider <mr.assume.away at gmail.com>:

The interpreter matches the values in func.__defaults__ with the calculated positional argument names "right-to-left", while inspect does does so "left-to-right". In every day usage, for "normal" functions, generated by the compiler from "normal", hand-typed source code, it is impossible to encounter this. 

>>> def f(x): return x
>>> x.__defaults__ = (1,2,3)
>>> inspect.getfullargspec(f)
FullArgSpec(args=['x'], varargs=None, varkw=None, defaults=(1,), kwonlyargs=[], kwonlydefaults=None, annotations={})
>>> f()
3
>>> f.__defaults__
(1, 2, 3)



So I'll be honest: I've submitted this particularly inconsequential bug report as a pretext to ask for advice on how to contribute here, because frankly, this is getting out of hand. While I haven't counted, it would not surprise me if I have more than 20 open tickets on here currently. While that may not be uncommon it does bother me slightly. And those are just the ones I had the time  and/or remembered to to submit a ticket for. There's another 45-50 whose location I'm certain of, fully documented and fixed.

If this little digression is against some sort of rules, then I apologize now and must concur. That being said, despite my lack of a formal education, my seemingly never-ending quest to push the interpreter to its limits, hunting for the most esoteric of optimizations (and flaws) has turned out to be quite the hobby. I've aquired a great deal of knowledge on the subject which, in the grand scheme of things is being wasted, as the only thing of actual significance I could see myself doing with it is using it to contribute here.

But when I consider the amount of time I've wasted on the matter already on this, I've totally lost faith in my own ability to judge what might constitute a good resource on the subject of GH. The other venues I'm aware of haven't been helpful to me so I don't even bother with them anymore. I will read the dev guide again, since it has been a while. However to my recollection the problems I had with it wasn't technicality per se, it was that it was it was full of totally foreign terminology to me, with words and phrases such as "pulling on this while the squisher of that squasher pushes on that".

----------
components: Library (Lib)
messages: 343613
nosy: bup
priority: normal
severity: normal
status: open
title: Incorrect application of func.__defaults__ by inspect's signature APIs
type: behavior
versions: Python 3.7, Python 3.8

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue37063>
_______________________________________


More information about the New-bugs-announce mailing list