summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohannes Gijsbers <jlg@dds.nl>2005-01-08 13:56:36 (GMT)
committerJohannes Gijsbers <jlg@dds.nl>2005-01-08 13:56:36 (GMT)
commitc7fc10a41873df6dc40055e62385c1dd198e18b6 (patch)
treebf0255df9cabfee09b81a36208c11e23ff284245
parenta3beee185cb374dfb2c68200e8b0332e28e73204 (diff)
downloadcpython-c7fc10a41873df6dc40055e62385c1dd198e18b6.zip
cpython-c7fc10a41873df6dc40055e62385c1dd198e18b6.tar.gz
cpython-c7fc10a41873df6dc40055e62385c1dd198e18b6.tar.bz2
Patch #1079734: remove dependencies on (deprecated) rfc822 and mimetools
modules, replacing with email. Thanks to Josh Hoyt for the patch!
-rwxr-xr-xLib/cgi.py16
1 files changed, 9 insertions, 7 deletions
diff --git a/Lib/cgi.py b/Lib/cgi.py
index 268aea0..1a99868 100755
--- a/Lib/cgi.py
+++ b/Lib/cgi.py
@@ -38,8 +38,7 @@ from operator import attrgetter
import sys
import os
import urllib
-import mimetools
-import rfc822
+import email.Parser
import UserDict
try:
from cStringIO import StringIO
@@ -108,6 +107,8 @@ log = initlog # The current logging function
# Parsing functions
# =================
+_header_parser = email.Parser.HeaderParser()
+
# Maximum input we will accept when REQUEST_METHOD is POST
# 0 ==> unlimited input
maxlen = 0
@@ -237,7 +238,7 @@ def parse_multipart(fp, pdict):
Arguments:
fp : input file
- pdict: dictionary containing other parameters of conten-type header
+ pdict: dictionary containing other parameters of content-type header
Returns a dictionary just like parse_qs(): keys are the field names, each
value is a list of values for that field. This is easy to use but not
@@ -270,7 +271,7 @@ def parse_multipart(fp, pdict):
data = None
if terminator:
# At start of next part. Read headers first.
- headers = mimetools.Message(fp)
+ headers = _header_parser.parse(fp)
clength = headers.getheader('content-length')
if clength:
try:
@@ -407,8 +408,9 @@ class FieldStorage:
disposition_options: dictionary of corresponding options
- headers: a dictionary(-like) object (sometimes rfc822.Message or a
- subclass thereof) containing *all* headers
+ headers: a dictionary(-like) object (sometimes
+ email.Message.Message or a subclass thereof) containing *all*
+ headers
The class is subclassable, mostly for the purpose of overriding
the make_file() method, which is called internally to come up with
@@ -650,7 +652,7 @@ class FieldStorage:
environ, keep_blank_values, strict_parsing)
# Throw first part away
while not part.done:
- headers = rfc822.Message(self.fp)
+ headers = _header_parser.parse(self.fp)
part = klass(self.fp, headers, ib,
environ, keep_blank_values, strict_parsing)
self.list.append(part)