From: Marco Buttu Date: Fri, 17 Mar 2017 08:50:23 +0000 (+0100) Subject: bpo-16355: Clarify when inspect.getcomments() returns None (#428) X-Git-Tag: v3.7.0a1~1117 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3f2155ffe683080f2a1b28408fa48d43ba92f943;p=thirdparty%2FPython%2Fcpython.git bpo-16355: Clarify when inspect.getcomments() returns None (#428) Initial patch by Vajrasky Kok. --- diff --git a/Doc/library/inspect.rst b/Doc/library/inspect.rst index 3fa44a0c9989..4ff2187b45f8 100644 --- a/Doc/library/inspect.rst +++ b/Doc/library/inspect.rst @@ -442,7 +442,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 9d9fedc21e57..2f12e989d907 100644 --- a/Lib/test/test_inspect.py +++ b/Lib/test/test_inspect.py @@ -384,6 +384,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