mirror of
https://github.com/python/cpython.git
synced 2026-05-06 12:49:07 -04:00
gh-76007: Deprecate VERSION in xml.etree.ElementTree & version in xml.sax.expatreader & xml.sax.handler (#142898)
This commit is contained in:
committed by
GitHub
parent
0f01530bd5
commit
d2abd5733b
@@ -1,9 +1,9 @@
|
||||
Pending removal in Python 3.20
|
||||
------------------------------
|
||||
|
||||
* The ``__version__`` attribute has been deprecated in these standard library
|
||||
modules and will be removed in Python 3.20.
|
||||
Use :py:data:`sys.version_info` instead.
|
||||
* The ``__version__``, ``version`` and ``VERSION`` attributes have been
|
||||
deprecated in these standard library modules and will be removed in
|
||||
Python 3.20. Use :py:data:`sys.version_info` instead.
|
||||
|
||||
- :mod:`argparse`
|
||||
- :mod:`csv`
|
||||
@@ -24,6 +24,9 @@ Pending removal in Python 3.20
|
||||
- :mod:`tkinter.font`
|
||||
- :mod:`tkinter.ttk`
|
||||
- :mod:`wsgiref.simple_server`
|
||||
- :mod:`xml.etree.ElementTree`
|
||||
- :mod:`!xml.sax.expatreader`
|
||||
- :mod:`xml.sax.handler`
|
||||
- :mod:`zlib`
|
||||
|
||||
(Contributed by Hugo van Kemenade and Stan Ulbrych in :gh:`76007`.)
|
||||
|
||||
@@ -1104,9 +1104,9 @@ New deprecations
|
||||
|
||||
* ``__version__``
|
||||
|
||||
* The ``__version__`` attribute has been deprecated in these standard library
|
||||
modules and will be removed in Python 3.20.
|
||||
Use :py:data:`sys.version_info` instead.
|
||||
* The ``__version__``, ``version`` and ``VERSION`` attributes have been
|
||||
deprecated in these standard library modules and will be removed in
|
||||
Python 3.20. Use :py:data:`sys.version_info` instead.
|
||||
|
||||
- :mod:`argparse`
|
||||
- :mod:`csv`
|
||||
@@ -1127,6 +1127,9 @@ New deprecations
|
||||
- :mod:`tkinter.font`
|
||||
- :mod:`tkinter.ttk`
|
||||
- :mod:`wsgiref.simple_server`
|
||||
- :mod:`xml.etree.ElementTree`
|
||||
- :mod:`!xml.sax.expatreader`
|
||||
- :mod:`xml.sax.handler`
|
||||
- :mod:`zlib`
|
||||
|
||||
(Contributed by Hugo van Kemenade and Stan Ulbrych in :gh:`76007`.)
|
||||
|
||||
@@ -1573,5 +1573,17 @@ class TestModuleAll(unittest.TestCase):
|
||||
check__all__(self, sax, extra=extra)
|
||||
|
||||
|
||||
class TestModule(unittest.TestCase):
|
||||
def test_deprecated__version__and__date__(self):
|
||||
for module in (sax.expatreader, sax.handler):
|
||||
with self.subTest(module=module):
|
||||
with self.assertWarnsRegex(
|
||||
DeprecationWarning,
|
||||
"'version' is deprecated and slated for removal in Python 3.20",
|
||||
) as cm:
|
||||
getattr(module, "version")
|
||||
self.assertEqual(cm.filename, __file__)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
@@ -4705,6 +4705,19 @@ class C14NTest(unittest.TestCase):
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
|
||||
|
||||
class TestModule(unittest.TestCase):
|
||||
def test_deprecated_version(self):
|
||||
with self.assertWarnsRegex(
|
||||
DeprecationWarning,
|
||||
"'VERSION' is deprecated and slated for removal in Python 3.20",
|
||||
) as cm:
|
||||
getattr(ET, "VERSION")
|
||||
self.assertEqual(cm.filename, __file__)
|
||||
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
|
||||
def setUpModule(module=None):
|
||||
# When invoked without a module, runs the Python ET tests by loading pyET.
|
||||
# Otherwise, uses the given module as the ET.
|
||||
|
||||
@@ -83,15 +83,12 @@ __all__ = [
|
||||
"SubElement",
|
||||
"tostring", "tostringlist",
|
||||
"TreeBuilder",
|
||||
"VERSION",
|
||||
"XML", "XMLID",
|
||||
"XMLParser", "XMLPullParser",
|
||||
"register_namespace",
|
||||
"canonicalize", "C14NWriterTarget",
|
||||
]
|
||||
|
||||
VERSION = "1.3.0"
|
||||
|
||||
import sys
|
||||
import re
|
||||
import warnings
|
||||
@@ -2104,3 +2101,14 @@ except ImportError:
|
||||
pass
|
||||
else:
|
||||
_set_factories(Comment, ProcessingInstruction)
|
||||
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
|
||||
def __getattr__(name):
|
||||
if name == "VERSION":
|
||||
from warnings import _deprecated
|
||||
|
||||
_deprecated("VERSION", remove=(3, 20))
|
||||
return "1.3.0" # Do not change
|
||||
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|
||||
|
||||
@@ -3,8 +3,6 @@ SAX driver for the pyexpat C module. This driver works with
|
||||
pyexpat.__version__ == '2.22'.
|
||||
"""
|
||||
|
||||
version = "0.20"
|
||||
|
||||
from xml.sax._exceptions import *
|
||||
from xml.sax.handler import feature_validation, feature_namespaces
|
||||
from xml.sax.handler import feature_namespace_prefixes
|
||||
@@ -446,6 +444,16 @@ def create_parser(*args, **kwargs):
|
||||
|
||||
# ---
|
||||
|
||||
def __getattr__(name):
|
||||
if name == "version":
|
||||
from warnings import _deprecated
|
||||
|
||||
_deprecated("version", remove=(3, 20))
|
||||
return "0.20" # Do not change
|
||||
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|
||||
|
||||
# ---
|
||||
|
||||
if __name__ == "__main__":
|
||||
import xml.sax.saxutils
|
||||
p = create_parser()
|
||||
|
||||
@@ -9,8 +9,6 @@ of the interfaces.
|
||||
$Id$
|
||||
"""
|
||||
|
||||
version = '2.0beta'
|
||||
|
||||
#============================================================================
|
||||
#
|
||||
# HANDLER INTERFACES
|
||||
@@ -385,3 +383,12 @@ class LexicalHandler:
|
||||
|
||||
def endCDATA(self):
|
||||
"""Reports the end of a CDATA marked section."""
|
||||
|
||||
|
||||
def __getattr__(name):
|
||||
if name == "version":
|
||||
from warnings import _deprecated
|
||||
|
||||
_deprecated("version", remove=(3, 20))
|
||||
return "2.0beta" # Do not change
|
||||
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
Deprecate ``VERSION`` from :mod:`xml.etree.ElementTree` and ``version`` from
|
||||
:mod:`!xml.sax.expatreader` and :mod:`xml.sax.handler`. Patch by Hugo van
|
||||
Kemenade.
|
||||
Reference in New Issue
Block a user