Hello,

On Wed, 21 Apr 2021 19:42:02 +0200
Pol Welter <polwel...@gmail.com> wrote:

> Hah, should have put more effort in my research then. And so recent
> too. Well, it is not something easy to search for.
> 
> I read the other thread, and I am inclined to agree with Paul.
> Whether or not the execution enters the function (as in: new entry in
> the call stack) during setup is really an implementation detail.
> For the very same reason, I also see why the CPython devs don't want
> to include a fake extra stack layer.
> 
> Still, personally, I think that during the checking of the function 
> arguments, execution is logically closer to the function than the
> point where it was called. I also think that the stack part of the
> traceback *is* the right place to display this information.
> 
> I'd also be fine with an extended exception message though.
> 
> In the end, I think this is a trivial improvement. (Trivial as in 'no 
> adverse side effects', not trivial to implement).
> Regardless if it has affected many users in the past or not (I'd say
> it did!).
> 
> I am anything but an authoritative figure on the matter, so just 
> consider this a firm +1 from another user.

Thanks. I believe there was a suggestion in the previous threads to
post a https://bugs.python.org/ ticket on that. Where it stopped for me
so far is: I wanted to have a look at CPython source code to have more
informative argument [to add another backtrace entry] than just "I
did it on another Python implementation, it was easy". But then I
travelled and switched to other set of projects, which keep me busy for
the foreseeable future. So, if you're interested, feel free to post a
ticket to (hopefully) get this matter going further.

> 
> Cheers
> Pol
> 
> On 2021-04-21 01:20, Paul Sokolovsky wrote:
> > Hello,
> >
> > On Tue, 20 Apr 2021 18:23:15 -0000
> > "Pol Welter" <polwel...@gmail.com> wrote:
> >  
> >> Consider the following snippet:
> >>
> >> ```
> >> def foo(a, b):
> >>      pass
> >>
> >> foo(1, 2, 3)
> >> ```
> >>
> >> We all know what will happen.
> >>
> >> ```
> >>    File "<stdin>", line 4, in <module>
> >>      foo(1, 2, 3)
> >> TypeError: foo() takes 2 positional arguments but 3 were given
> >> ```
> >>
> >> Would it be reasonable to include the line number for the function
> >> `foo()` that it resolved the call to? I.e. 'File "<stdin>", line 1,
> >> in foo'.
> >>
> >> There are situations (e.g. monkey patch) where this is not obvious.
> >> Would be great detail to include that in the traceback, I think.  
> > That was reported some time ago:
> >
> > https://groups.google.com/g/dev-python/c/xdcpSJN17QQ
> > https://groups.google.com/g/python-ideas/c/3jEZ9F-oUr0
> >
> > Just as you, I had hard time to believe that wasn't fixed over 30
> > years of CPython history.
> >
> > I fixed that in my Python dialect,
> > https://github.com/pfalcon/pycopy , and enjoyed it thoroughly on
> > multiple occasions since then. For the snippet above (put in a
> > file):
> >
> >
> > Traceback (most recent call last):
> >    File "ex.py", line 4, in <module>
> >    File "ex.py", line 2, in foo
> > TypeError: foo() takes 2 positional arguments but 3 were given
> >
> >  



-- 
Best regards,
 Paul                          mailto:pmis...@gmail.com
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/Q2EX3QOPK3JSIVY4EQBXCHMFBA7IAYFE/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to