[Python-checkins] cpython: Remove the 'strict' argument to Parser, deprecated since 2.4.

r.david.murray python-checkins at python.org
Tue Mar 29 17:33:08 CEST 2011


http://hg.python.org/cpython/rev/5a71d41ea20a
changeset:   69038:5a71d41ea20a
user:        R David Murray <rdmurray at bitdance.com>
date:        Tue Mar 29 11:32:35 2011 -0400
summary:
  Remove the 'strict' argument to Parser, deprecated since 2.4.

files:
  Doc/library/email.parser.rst |  11 +++--------
  Lib/email/parser.py          |  24 ++----------------------
  Misc/NEWS                    |   3 +++
  3 files changed, 8 insertions(+), 30 deletions(-)


diff --git a/Doc/library/email.parser.rst b/Doc/library/email.parser.rst
--- a/Doc/library/email.parser.rst
+++ b/Doc/library/email.parser.rst
@@ -102,7 +102,7 @@
 class.
 
 
-.. class:: Parser(_class=email.message.Message, strict=None)
+.. class:: Parser(_class=email.message.Message)
 
    The constructor for the :class:`Parser` class takes an optional argument
    *_class*.  This must be a callable factory (such as a function or a class), and
@@ -110,13 +110,8 @@
    :class:`~email.message.Message` (see :mod:`email.message`).  The factory will
    be called without arguments.
 
-   The optional *strict* flag is ignored.
-
-   .. deprecated:: 2.4
-      Because the :class:`Parser` class is a backward compatible API wrapper
-      around the new-in-Python 2.4 :class:`FeedParser`, *all* parsing is
-      effectively non-strict.  You should simply stop passing a *strict* flag to
-      the :class:`Parser` constructor.
+   .. versionchanged:: 3.2
+      Removed the *strict* argument that was deprecated in 2.4.
 
    The other public :class:`Parser` methods are:
 
diff --git a/Lib/email/parser.py b/Lib/email/parser.py
--- a/Lib/email/parser.py
+++ b/Lib/email/parser.py
@@ -15,7 +15,7 @@
 
 
 class Parser:
-    def __init__(self, *args, **kws):
+    def __init__(self, _class=Message):
         """Parser of RFC 2822 and MIME email messages.
 
         Creates an in-memory object tree representing the email message, which
@@ -31,27 +31,7 @@
         must be created.  This class must have a constructor that can take
         zero arguments.  Default is Message.Message.
         """
-        if len(args) >= 1:
-            if '_class' in kws:
-                raise TypeError("Multiple values for keyword arg '_class'")
-            kws['_class'] = args[0]
-        if len(args) == 2:
-            if 'strict' in kws:
-                raise TypeError("Multiple values for keyword arg 'strict'")
-            kws['strict'] = args[1]
-        if len(args) > 2:
-            raise TypeError('Too many arguments')
-        if '_class' in kws:
-            self._class = kws['_class']
-            del kws['_class']
-        else:
-            self._class = Message
-        if 'strict' in kws:
-            warnings.warn("'strict' argument is deprecated (and ignored)",
-                          DeprecationWarning, 2)
-            del kws['strict']
-        if kws:
-            raise TypeError('Unexpected keyword arguments')
+        self._class = _class
 
     def parse(self, fp, headersonly=False):
         """Create a message structure from the data in a file.
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -87,6 +87,9 @@
 Library
 -------
 
+- Removed the 'strict' argument to email.parser.Parser, which has been
+  deprecated since Python 2.4.
+
 - Issue #11256: Fix inspect.getcallargs on functions that take only keyword
   arguments.
 

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list