# HG changeset patch # User Denis Laxalde # Date 2019-10-10 08:48:57 # Node ID 0e6a7ce81dde091383463ef358de8299bac92b7a # Parent a83c9c79b72250b880e4bedec2897d2eeb023364 py3: use email.generator.BytesGenerator in patch.split() This fixes test-import.t on python3. We add Generator alias in mail module to handle python2/python3 compatibility. diff --git a/mercurial/mail.py b/mercurial/mail.py --- a/mercurial/mail.py +++ b/mercurial/mail.py @@ -9,6 +9,7 @@ from __future__ import absolute_import import email import email.charset +import email.generator import email.header import email.message import email.parser @@ -420,6 +421,8 @@ def mimeencode(ui, s, charsets=None, dis if pycompat.ispy3: + Generator = email.generator.BytesGenerator + def parse(fp): ep = email.parser.Parser() # disable the "universal newlines" mode, which isn't binary safe. @@ -436,6 +439,8 @@ if pycompat.ispy3: else: + Generator = email.generator.Generator + def parse(fp): ep = email.parser.Parser() return ep.parse(fp) diff --git a/mercurial/patch.py b/mercurial/patch.py --- a/mercurial/patch.py +++ b/mercurial/patch.py @@ -11,7 +11,6 @@ from __future__ import absolute_import, import collections import contextlib import copy -import email import errno import hashlib import os @@ -107,7 +106,7 @@ def split(stream): def mimesplit(stream, cur): def msgfp(m): fp = stringio() - g = email.Generator.Generator(fp, mangle_from_=False) + g = mail.Generator(fp, mangle_from_=False) g.flatten(m) fp.seek(0) return fp