From 1ddd773293bd692b9dbeba9be54403a7b1e95dbf Mon Sep 17 00:00:00 2001 From: Zackery Spytz Date: Wed, 27 Dec 2023 06:04:31 -0800 Subject: gh-64020: Deprecate pydoc.ispackage() (GH-20908) Co-authored-by: Serhiy Storchaka --- Doc/whatsnew/3.13.rst | 3 +++ Lib/pydoc.py | 2 ++ Lib/test/test_pydoc.py | 8 ++++++-- Misc/NEWS.d/next/Library/2020-06-15-23-44-53.bpo-19821.ihBk39.rst | 1 + 4 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 Misc/NEWS.d/next/Library/2020-06-15-23-44-53.bpo-19821.ihBk39.rst diff --git a/Doc/whatsnew/3.13.rst b/Doc/whatsnew/3.13.rst index c905cdd..4b02ecd 100644 --- a/Doc/whatsnew/3.13.rst +++ b/Doc/whatsnew/3.13.rst @@ -556,6 +556,9 @@ Deprecated coroutine. (Contributed by Irit Katriel in :gh:`81137`.) +* Deprecate undocumented :func:`!pydoc.ispackage` function. + (Contributed by Zackery Spytz in :gh:`64020`.) + Pending Removal in Python 3.14 ------------------------------ diff --git a/Lib/pydoc.py b/Lib/pydoc.py index 83c74a7..96aa1df 100755 --- a/Lib/pydoc.py +++ b/Lib/pydoc.py @@ -345,6 +345,8 @@ def sort_attributes(attrs, object): def ispackage(path): """Guess whether a path refers to a package directory.""" + warnings.warn('The pydoc.ispackage() function is deprecated', + DeprecationWarning, stacklevel=2) if os.path.isdir(path): for ext in ('.py', '.pyc'): if os.path.isfile(os.path.join(path, '__init__' + ext)): diff --git a/Lib/test/test_pydoc.py b/Lib/test/test_pydoc.py index 982ee60..99b19d0 100644 --- a/Lib/test/test_pydoc.py +++ b/Lib/test/test_pydoc.py @@ -745,14 +745,18 @@ class PydocDocTest(unittest.TestCase): def test_is_package_when_not_package(self): with os_helper.temp_cwd() as test_dir: - self.assertFalse(pydoc.ispackage(test_dir)) + with self.assertWarns(DeprecationWarning) as cm: + self.assertFalse(pydoc.ispackage(test_dir)) + self.assertEqual(cm.filename, __file__) def test_is_package_when_is_package(self): with os_helper.temp_cwd() as test_dir: init_path = os.path.join(test_dir, '__init__.py') open(init_path, 'w').close() - self.assertTrue(pydoc.ispackage(test_dir)) + with self.assertWarns(DeprecationWarning) as cm: + self.assertTrue(pydoc.ispackage(test_dir)) os.remove(init_path) + self.assertEqual(cm.filename, __file__) def test_allmethods(self): # issue 17476: allmethods was no longer returning unbound methods. diff --git a/Misc/NEWS.d/next/Library/2020-06-15-23-44-53.bpo-19821.ihBk39.rst b/Misc/NEWS.d/next/Library/2020-06-15-23-44-53.bpo-19821.ihBk39.rst new file mode 100644 index 0000000..ede6810 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2020-06-15-23-44-53.bpo-19821.ihBk39.rst @@ -0,0 +1 @@ +The :func:`!pydoc.ispackage` function has been deprecated. -- cgit v0.12