diff mercurial/patch.py @ 36083:04984f2e50ae

py3: use email parser that operates on bytes email.parser.Parser() operates on str in both Python 2 and 3. Python 3.2 introduced the email.parser.BytesParser(), which works like Parser except it accepts bytes. We implement the pycompat helper as a function so we lazily import the "email" module. Differential Revision: https://phab.mercurial-scm.org/D2147
author Gregory Szorc <gregory.szorc@gmail.com>
date Sun, 11 Feb 2018 14:17:23 -0800
parents 95791b275b73
children a5cf79755eff
line wrap: on
line diff
--- a/mercurial/patch.py	Sun Feb 11 13:32:18 2018 -0800
+++ b/mercurial/patch.py	Sun Feb 11 14:17:23 2018 -0800
@@ -12,7 +12,6 @@
 import copy
 import difflib
 import email
-import email.parser as emailparser
 import errno
 import hashlib
 import os
@@ -109,7 +108,7 @@
             cur.append(line)
         c = chunk(cur)
 
-        m = emailparser.Parser().parse(c)
+        m = pycompat.emailparser().parse(c)
         if not m.is_multipart():
             yield msgfp(m)
         else:
@@ -218,7 +217,7 @@
     fd, tmpname = tempfile.mkstemp(prefix='hg-patch-')
     tmpfp = os.fdopen(fd, pycompat.sysstr('w'))
     try:
-        msg = emailparser.Parser().parse(fileobj)
+        msg = pycompat.emailparser().parse(fileobj)
 
         subject = msg['Subject'] and mail.headdecode(msg['Subject'])
         data['user'] = msg['From'] and mail.headdecode(msg['From'])