diff options
author | Berker Peksag <berker.peksag@gmail.com> | 2017-03-17 11:37:51 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-17 11:37:51 (GMT) |
commit | 41b4a2189f29daae008e57f799a30890643d191f (patch) | |
tree | e6acafe61c897e4dbc133efd2e607e19baae1488 | |
parent | 091d90f9a429b81b046cb83582062941f8ded9da (diff) | |
download | cpython-41b4a2189f29daae008e57f799a30890643d191f.zip cpython-41b4a2189f29daae008e57f799a30890643d191f.tar.gz cpython-41b4a2189f29daae008e57f799a30890643d191f.tar.bz2 |
bpo-16355: Clarify when inspect.getcomments() returns None (#428) (#691)
Initial patch by Vajrasky Kok.
(cherry picked from commit 3f2155ffe683080f2a1b28408fa48d43ba92f943)
-rw-r--r-- | Doc/library/inspect.rst | 4 | ||||
-rw-r--r-- | Lib/test/test_inspect.py | 5 |
2 files changed, 8 insertions, 1 deletions
diff --git a/Doc/library/inspect.rst b/Doc/library/inspect.rst index 89263e7..9526a0d 100644 --- a/Doc/library/inspect.rst +++ b/Doc/library/inspect.rst @@ -440,7 +440,9 @@ Retrieving source code Return in a single string any lines of comments immediately preceding the object's source code (for a class, function, or method), or at the top of the - Python source file (if the object is a module). + Python source file (if the object is a module). If the object's source code + is unavailable, return ``None``. This could happen if the object has been + defined in C or the interactive shell. .. function:: getfile(object) diff --git a/Lib/test/test_inspect.py b/Lib/test/test_inspect.py index d33de9e..2283000 100644 --- a/Lib/test/test_inspect.py +++ b/Lib/test/test_inspect.py @@ -376,6 +376,11 @@ class TestRetrievingSourceCode(GetSourceBase): def test_getcomments(self): self.assertEqual(inspect.getcomments(mod), '# line 1\n') self.assertEqual(inspect.getcomments(mod.StupidGit), '# line 20\n') + # If the object source file is not available, return None. + co = compile('x=1', '_non_existing_filename.py', 'exec') + self.assertIsNone(inspect.getcomments(co)) + # If the object has been defined in C, return None. + self.assertIsNone(inspect.getcomments(list)) def test_getmodule(self): # Check actual module |