]> granicus.if.org Git - python/commitdiff
Use the modules base64, quopri, and uu, instead of external programs
authorGuido van Rossum <guido@python.org>
Fri, 11 Jul 1997 16:33:26 +0000 (16:33 +0000)
committerGuido van Rossum <guido@python.org>
Fri, 11 Jul 1997 16:33:26 +0000 (16:33 +0000)
to decode/encode the standard transfer encodings.

Lib/mimetools.py

index eadc11a5eab56479212fb4c528d1dc35cb5c3b64..cda1f37a4609951bc94afdbc9fbc1b88ea63429e 100644 (file)
@@ -131,9 +131,16 @@ def choose_boundary():
 
 # Subroutines for decoding some common content-transfer-types
 
-# XXX This requires that uudecode and mmencode are in $PATH
-
 def decode(input, output, encoding):
+       if encoding == 'base64':
+               import base64
+               return base64.decode(input, output)
+       if encoding == 'quoted-printable':
+               import quopri
+               return quopri.decode(input, output)
+       if encoding in ('uuencode', 'x-uuencode'):
+               import uu
+               return uu.decode(input, output)
        if decodetab.has_key(encoding):
                pipethrough(input, decodetab[encoding], output)
        else:
@@ -141,12 +148,25 @@ def decode(input, output, encoding):
                      'unknown Content-Transfer-Encoding: %s' % encoding
 
 def encode(input, output, encoding):
+       if encoding == 'base64':
+               import base64
+               return base64.encode(input, output)
+       if encoding == 'quoted-printable':
+               import quopri
+               return quopri.encode(input, output, 0)
+       if encoding in ('uuencode', 'x-uuencode'):
+               import uu
+               return uu.encode(input, output)
        if encodetab.has_key(encoding):
                pipethrough(input, encodetab[encoding], output)
        else:
                raise ValueError, \
                      'unknown Content-Transfer-Encoding: %s' % encoding
 
+# The following is no longer used for standard encodings
+
+# XXX This requires that uudecode and mmencode are in $PATH
+
 uudecode_pipe = '''(
 TEMP=/tmp/@uu.$$
 sed "s%^begin [0-7][0-7]* .*%begin 600 $TEMP%" | uudecode