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`
- :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`.)
* ``__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`
- :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`.)
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()
# --------------------------------------------------------------------
+
+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.
"SubElement",
"tostring", "tostringlist",
"TreeBuilder",
- "VERSION",
"XML", "XMLID",
"XMLParser", "XMLPullParser",
"register_namespace",
"canonicalize", "C14NWriterTarget",
]
-VERSION = "1.3.0"
-
import sys
import re
import warnings
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}")
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
# ---
+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()
$Id$
"""
-version = '2.0beta'
-
#============================================================================
#
# HANDLER INTERFACES
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}")
--- /dev/null
+Deprecate ``VERSION`` from :mod:`xml.etree.ElementTree` and ``version`` from
+:mod:`!xml.sax.expatreader` and :mod:`xml.sax.handler`. Patch by Hugo van
+Kemenade.