mercurial/mail.py
changeset 43156 0e6a7ce81dde
parent 43117 8ff1ecfadcd1
child 43169 3941e7063d03
equal deleted inserted replaced
43155:a83c9c79b722 43156:0e6a7ce81dde
     7 
     7 
     8 from __future__ import absolute_import
     8 from __future__ import absolute_import
     9 
     9 
    10 import email
    10 import email
    11 import email.charset
    11 import email.charset
       
    12 import email.generator
    12 import email.header
    13 import email.header
    13 import email.message
    14 import email.message
    14 import email.parser
    15 import email.parser
    15 import io
    16 import io
    16 import os
    17 import os
   418     return mimetextqp(s, b'plain', cs)
   419     return mimetextqp(s, b'plain', cs)
   419 
   420 
   420 
   421 
   421 if pycompat.ispy3:
   422 if pycompat.ispy3:
   422 
   423 
       
   424     Generator = email.generator.BytesGenerator
       
   425 
   423     def parse(fp):
   426     def parse(fp):
   424         ep = email.parser.Parser()
   427         ep = email.parser.Parser()
   425         # disable the "universal newlines" mode, which isn't binary safe.
   428         # disable the "universal newlines" mode, which isn't binary safe.
   426         # I have no idea if ascii/surrogateescape is correct, but that's
   429         # I have no idea if ascii/surrogateescape is correct, but that's
   427         # what the standard Python email parser does.
   430         # what the standard Python email parser does.
   433         finally:
   436         finally:
   434             fp.detach()
   437             fp.detach()
   435 
   438 
   436 
   439 
   437 else:
   440 else:
       
   441 
       
   442     Generator = email.generator.Generator
   438 
   443 
   439     def parse(fp):
   444     def parse(fp):
   440         ep = email.parser.Parser()
   445         ep = email.parser.Parser()
   441         return ep.parse(fp)
   446         return ep.parse(fp)
   442 
   447