Kaydet (Commit) c9d4c60a authored tarafından Benjamin Peterson's avatar Benjamin Peterson

merge heads

...@@ -1416,7 +1416,7 @@ def getframeinfo(frame, context=1): ...@@ -1416,7 +1416,7 @@ def getframeinfo(frame, context=1):
except OSError: except OSError:
lines = index = None lines = index = None
else: else:
start = max(start, 1) start = max(start, 0)
start = max(0, min(start, len(lines) - context)) start = max(0, min(start, len(lines) - context))
lines = lines[start:start+context] lines = lines[start:start+context]
index = lineno - 1 - start index = lineno - 1 - start
......
...@@ -391,6 +391,11 @@ class TestRetrievingSourceCode(GetSourceBase): ...@@ -391,6 +391,11 @@ class TestRetrievingSourceCode(GetSourceBase):
# Check filename override # Check filename override
self.assertEqual(inspect.getmodule(None, modfile), mod) self.assertEqual(inspect.getmodule(None, modfile), mod)
def test_getframeinfo_get_first_line(self):
frame_info = inspect.getframeinfo(self.fodderModule.fr, 50)
self.assertEqual(frame_info.code_context[0], "# line 1\n")
self.assertEqual(frame_info.code_context[1], "'A module docstring.'\n")
def test_getsource(self): def test_getsource(self):
self.assertSourceEqual(git.abuse, 29, 39) self.assertSourceEqual(git.abuse, 29, 39)
self.assertSourceEqual(mod.StupidGit, 21, 51) self.assertSourceEqual(mod.StupidGit, 21, 51)
......
...@@ -140,6 +140,9 @@ Core and Builtins ...@@ -140,6 +140,9 @@ Core and Builtins
Library Library
------- -------
- Issue #15812: inspect.getframeinfo() now correctly shows the first line of
a context. Patch by Sam Breese.
- Issue #29094: Offsets in a ZIP file created with extern file object and modes - Issue #29094: Offsets in a ZIP file created with extern file object and modes
"w" and "x" now are relative to the start of the file. "w" and "x" now are relative to the start of the file.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment