This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2012年08月29日 14:54 by sbt, last changed 2022年04月11日 14:57 by admin. This issue is now closed.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| inspect_getframeinfo_line1.patch | Sam.Breese, 2012年09月30日 14:52 | review | ||
| Pull Requests | |||
|---|---|---|---|
| URL | Status | Linked | Edit |
| PR 552 | closed | dstufft, 2017年03月31日 16:36 | |
| Messages (11) | |||
|---|---|---|---|
| msg169387 - (view) | Author: Richard Oudkerk (sbt) * (Python committer) | Date: 2012年08月29日 14:54 | |
When inspect.getframeinfo() tries to collect lines of context it never shows the first line (unless context is as big as the number of lines in the file). The relevant code is start = lineno - 1 - context//2 try: lines, lnum = findsource(frame) except IOError: lines = index = None else: --> start = max(start, 1) start = max(0, min(start, len(lines) - context)) lines = lines[start:start+context] index = lineno - 1 - start I think that start = max(start, 1) should be replaced by start = max(start, 0) For some reason getframeinfo() (and the functions which use it) don't seem to be tested by the testsuite... |
|||
| msg171638 - (view) | Author: Sam Breese (Sam.Breese) | Date: 2012年09月30日 13:47 | |
Looking into this now. Should have a patch either later today or tommorow. |
|||
| msg171640 - (view) | Author: Sam Breese (Sam.Breese) | Date: 2012年09月30日 14:02 | |
Also, would you mind posting an example? I'm having trouble replicating. |
|||
| msg171641 - (view) | Author: Sam Breese (Sam.Breese) | Date: 2012年09月30日 14:16 | |
Nevermind, replicated it. Changing start = max(start, 1) to start = max(start, 0) DOES fix. Writing a test case now. |
|||
| msg171643 - (view) | Author: Sam Breese (Sam.Breese) | Date: 2012年09月30日 14:52 | |
Here's a patch. Very, very simple, just changed that one line in inspect.py and wrote a highly primitive test case for inspect.getframeinfo. The test isn't actually testing the primary functionality right now, just this one bug. I can probably write more expansive coverage later, but in the interest of an expeditious reply I'm submitting now. |
|||
| msg282427 - (view) | Author: Peter Waller (Peter.Waller) | Date: 2016年12月05日 16:14 | |
I have just hit this bug and independently invented the exact fix of changing the zero for a one. Any chance of getting this merged? |
|||
| msg284452 - (view) | Author: Roundup Robot (python-dev) (Python triager) | Date: 2017年01月02日 03:58 | |
New changeset 15454cad5f27 by Berker Peksag in branch '3.5': Issue #15812: inspect.getframeinfo() now correctly shows the first line of a context https://hg.python.org/cpython/rev/15454cad5f27 New changeset 410caf255a09 by Berker Peksag in branch '3.6': Issue #15812: Merge from 3.5 https://hg.python.org/cpython/rev/410caf255a09 New changeset 803c3c21c3bc by Berker Peksag in branch 'default': Issue #15812: Merge from 3.6 https://hg.python.org/cpython/rev/803c3c21c3bc |
|||
| msg284453 - (view) | Author: Berker Peksag (berker.peksag) * (Python committer) | Date: 2017年01月02日 03:59 | |
Thanks for the patch Sam and thanks for the ping Peter! |
|||
| msg284471 - (view) | Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) | Date: 2017年01月02日 06:36 | |
start is bounded to 0 twice. start = max(start, 0) start = max(0, min(start, len(lines) - context)) The first line can be just removed. Or two above lines can be rewritten as: start = min(start, len(lines) - context) start = max(start, 0) |
|||
| msg284516 - (view) | Author: Roundup Robot (python-dev) (Python triager) | Date: 2017年01月03日 00:46 | |
New changeset 2b6bdd6cd3f8 by Berker Peksag in branch '3.5': Issue #15812: Delete redundant max(start, 0) https://hg.python.org/cpython/rev/2b6bdd6cd3f8 New changeset 7cbcee0c53e3 by Berker Peksag in branch '3.6': Issue #15812: Merge from 3.5 https://hg.python.org/cpython/rev/7cbcee0c53e3 New changeset 5b0dee884b0b by Berker Peksag in branch 'default': Issue #15812: Merge from 3.6 https://hg.python.org/cpython/rev/5b0dee884b0b |
|||
| msg284517 - (view) | Author: Berker Peksag (berker.peksag) * (Python committer) | Date: 2017年01月03日 00:47 | |
You're right. Thanks for the review, Serhiy! |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:57:35 | admin | set | github: 60016 |
| 2017年03月31日 16:36:20 | dstufft | set | pull_requests: + pull_request942 |
| 2017年01月03日 00:47:13 | berker.peksag | set | messages: + msg284517 |
| 2017年01月03日 00:46:26 | python-dev | set | messages: + msg284516 |
| 2017年01月02日 06:36:36 | serhiy.storchaka | set | nosy:
+ serhiy.storchaka messages: + msg284471 |
| 2017年01月02日 03:59:36 | berker.peksag | set | status: open -> closed type: behavior components: + Library (Lib) versions: + Python 3.5, Python 3.6, Python 3.7 nosy: + berker.peksag messages: + msg284453 resolution: fixed stage: resolved |
| 2017年01月02日 03:58:09 | python-dev | set | nosy:
+ python-dev messages: + msg284452 |
| 2016年12月05日 16:14:29 | Peter.Waller | set | nosy:
+ Peter.Waller messages: + msg282427 |
| 2012年09月30日 14:52:11 | Sam.Breese | set | files:
+ inspect_getframeinfo_line1.patch keywords: + patch messages: + msg171643 |
| 2012年09月30日 14:16:12 | Sam.Breese | set | messages: + msg171641 |
| 2012年09月30日 14:02:46 | Sam.Breese | set | messages: + msg171640 |
| 2012年09月30日 13:47:21 | Sam.Breese | set | nosy:
+ Sam.Breese messages: + msg171638 |
| 2012年08月29日 14:54:39 | sbt | create | |