Skip to content

Commit 8007859

Browse files
committed
Deprecate version attribute in xml.sax.handler
1 parent 2bdf4b9 commit 8007859

File tree

4 files changed

+22
-11
lines changed

4 files changed

+22
-11
lines changed

Doc/deprecations/pending-removal-in-3.20.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,10 @@ Pending removal in Python 3.20
2323
- :mod:`tabnanny`
2424
- :mod:`tkinter.font`
2525
- :mod:`tkinter.ttk`
26+
- :mod:`wsgiref.simple_server`
2627
- :mod:`xml.etree.ElementTree`
2728
- :mod:`xml.sax.expatreader`
28-
- :mod:`wsgiref.simple_server`
29+
- :mod:`xml.sax.handler`
2930
- :mod:`zlib`
3031

3132
(Contributed by Hugo van Kemenade and Stan Ulbrych in :gh:`76007`.)

Doc/whatsnew/3.15.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1040,9 +1040,10 @@ New deprecations
10401040
- :mod:`tabnanny`
10411041
- :mod:`tkinter.font`
10421042
- :mod:`tkinter.ttk`
1043+
- :mod:`wsgiref.simple_server`
10431044
- :mod:`xml.etree.ElementTree`
10441045
- :mod:`xml.sax.expatreader`
1045-
- :mod:`wsgiref.simple_server`
1046+
- :mod:`xml.sax.handler`
10461047
- :mod:`zlib`
10471048

10481049
(Contributed by Hugo van Kemenade and Stan Ulbrych in :gh:`76007`.)

Lib/test/test_sax.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1574,13 +1574,15 @@ def test_all(self):
15741574

15751575

15761576
class TestModule(unittest.TestCase):
1577-
def test_deprecated_version(self):
1578-
with self.assertWarnsRegex(
1579-
DeprecationWarning,
1580-
"'version' is deprecated and slated for removal in Python 3.20",
1581-
) as cm:
1582-
getattr(sax.expatreader, "version")
1583-
self.assertEqual(cm.filename, __file__)
1577+
def test_deprecated__version__and__date__(self):
1578+
for module in (sax.expatreader, sax.handler):
1579+
with self.subTest(module=module):
1580+
with self.assertWarnsRegex(
1581+
DeprecationWarning,
1582+
"'version' is deprecated and slated for removal in Python 3.20",
1583+
) as cm:
1584+
getattr(module, "version")
1585+
self.assertEqual(cm.filename, __file__)
15841586

15851587

15861588
if __name__ == "__main__":

Lib/xml/sax/handler.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@
99
$Id$
1010
"""
1111

12-
version = '2.0beta'
13-
1412
#============================================================================
1513
#
1614
# HANDLER INTERFACES
@@ -385,3 +383,12 @@ def startCDATA(self):
385383

386384
def endCDATA(self):
387385
"""Reports the end of a CDATA marked section."""
386+
387+
388+
def __getattr__(name):
389+
if name == "version":
390+
from warnings import _deprecated
391+
392+
_deprecated("version", remove=(3, 20))
393+
return "2.0beta" # Do not change
394+
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")

0 commit comments

Comments
 (0)