summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorR David Murray <rdmurray@bitdance.com>2011-03-29 15:32:35 (GMT)
committerR David Murray <rdmurray@bitdance.com>2011-03-29 15:32:35 (GMT)
commit86cc82e36f24e3c57bd08a49190d798afb5e6b19 (patch)
treec92b658600a50a2e40018caad8449536f652fc9a
parent1ebdd714acdfab938cabd45924de4e26b88aec4d (diff)
downloadcpython-86cc82e36f24e3c57bd08a49190d798afb5e6b19.zip
cpython-86cc82e36f24e3c57bd08a49190d798afb5e6b19.tar.gz
cpython-86cc82e36f24e3c57bd08a49190d798afb5e6b19.tar.bz2
Remove the 'strict' argument to Parser, deprecated since 2.4.
-rw-r--r--Doc/library/email.parser.rst11
-rw-r--r--Lib/email/parser.py24
-rw-r--r--Misc/NEWS3
3 files changed, 8 insertions, 30 deletions
diff --git a/Doc/library/email.parser.rst b/Doc/library/email.parser.rst
index 77a0b69..8da0d74d 100644
--- a/Doc/library/email.parser.rst
+++ b/Doc/library/email.parser.rst
@@ -102,7 +102,7 @@ as a string. :class:`HeaderParser` has the same API as the :class:`Parser`
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.
: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
index 6caaff5..ef051fa 100644
--- a/Lib/email/parser.py
+++ b/Lib/email/parser.py
@@ -15,7 +15,7 @@ from email.message import Message
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 @@ class Parser:
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
index 23b5e6a..e8efa0e 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -87,6 +87,9 @@ Core and Builtins
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.