]> granicus.if.org Git - python/commitdiff
#21047: set the default value for the *convert_charrefs* argument of HTMLParser to...
authorEzio Melotti <ezio.melotti@gmail.com>
Sat, 2 Aug 2014 15:36:12 +0000 (18:36 +0300)
committerEzio Melotti <ezio.melotti@gmail.com>
Sat, 2 Aug 2014 15:36:12 +0000 (18:36 +0300)
Doc/library/html.parser.rst
Lib/html/parser.py
Lib/test/test_htmlparser.py
Misc/NEWS

index 67ae139eb06f6a39cbdd17f989023c69ba78ed7c..b84c60b708dd25495c11518012840e657a010e8d 100644 (file)
 This module defines a class :class:`HTMLParser` which serves as the basis for
 parsing text files formatted in HTML (HyperText Mark-up Language) and XHTML.
 
-.. class:: HTMLParser(*, convert_charrefs=False)
+.. class:: HTMLParser(*, convert_charrefs=True)
 
    Create a parser instance able to parse invalid markup.
 
-   If *convert_charrefs* is ``True`` (default: ``False``), all character
+   If *convert_charrefs* is ``True`` (the default), all character
    references (except the ones in ``script``/``style`` elements) are
    automatically converted to the corresponding Unicode characters.
-   The use of ``convert_charrefs=True`` is encouraged and will become
-   the default in Python 3.5.
 
    An :class:`.HTMLParser` instance is fed HTML data and calls handler methods
    when start tags, end tags, text, comments, and other markup elements are
@@ -37,6 +35,9 @@ parsing text files formatted in HTML (HyperText Mark-up Language) and XHTML.
    .. versionchanged:: 3.4
       *convert_charrefs* keyword argument added.
 
+   .. versionchanged:: 3.5
+      The default value for argument *convert_charrefs* is now ``True``.
+
 
 Example HTML Parser Application
 -------------------------------
index 5a4f9e17551ab83080b4d17d79057e6537c847dc..390d4ccc488b4e9119d184031f5d3450d564f8a9 100644 (file)
@@ -59,7 +59,6 @@ endendtag = re.compile('>')
 endtagfind = re.compile('</\s*([a-zA-Z][-.a-zA-Z0-9:_]*)\s*>')
 
 
-_default_sentinel = object()
 
 class HTMLParser(_markupbase.ParserBase):
     """Find tags and other markup and call handler functions.
@@ -85,17 +84,12 @@ class HTMLParser(_markupbase.ParserBase):
 
     CDATA_CONTENT_ELEMENTS = ("script", "style")
 
-    def __init__(self, *, convert_charrefs=_default_sentinel):
+    def __init__(self, *, convert_charrefs=True):
         """Initialize and reset this instance.
 
-        If convert_charrefs is True (default: False), all character references
+        If convert_charrefs is True (the default), all character references
         are automatically converted to the corresponding Unicode characters.
         """
-        if convert_charrefs is _default_sentinel:
-            convert_charrefs = False  # default
-            warnings.warn("The value of convert_charrefs will become True in "
-                          "3.5. You are encouraged to set the value explicitly.",
-                          DeprecationWarning, stacklevel=2)
         self.convert_charrefs = convert_charrefs
         self.reset()
 
index 1aa1508039e5220d37a35005281245a84923a071..de8f3e80d4b7bfba2b3c922ca3c6678d10408351 100644 (file)
@@ -346,7 +346,8 @@ text
         self._run_check(html, expected)
 
     def test_convert_charrefs(self):
-        collector = lambda: EventCollectorCharrefs(convert_charrefs=True)
+        # default value for convert_charrefs is now True
+        collector = lambda: EventCollectorCharrefs()
         self.assertTrue(collector().convert_charrefs)
         charrefs = ['&quot;', '&#34;', '&#x22;', '&quot', '&#34', '&#x22']
         # check charrefs in the middle of the text/attributes
@@ -383,10 +384,6 @@ text
         self._run_check('no charrefs here', [('data', 'no charrefs here')],
                         collector=collector())
 
-    def test_deprecation_warnings(self):
-        with self.assertWarns(DeprecationWarning):
-            EventCollector()  # convert_charrefs not passed explicitly
-
     # the remaining tests were for the "tolerant" parser (which is now
     # the default), and check various kind of broken markup
     def test_tolerant_parsing(self):
index 5d1b3310d6b8de49ff67a369b4323abdaccf1d6d..864f894f93704a90113616a70fd03165c3d3f828 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -121,6 +121,9 @@ Core and Builtins
 Library
 -------
 
+- Issue #21047: set the default value for the *convert_charrefs* argument
+  of HTMLParser to True.  Patch by Berker Peksag.
+
 - Add an __all__ to html.entities.
 
 - Issue #15114: the strict mode and argument of HTMLParser, HTMLParser.error,