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.
--- a/mercurial/mail.py Thu Oct 10 10:03:01 2019 +0200
+++ b/mercurial/mail.py Thu Oct 10 10:48:57 2019 +0200
@@ -9,6 +9,7 @@
import email
import email.charset
+import email.generator
import email.header
import email.message
import email.parser
@@ -420,6 +421,8 @@
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 @@
else:
+ Generator = email.generator.Generator
+
def parse(fp):
ep = email.parser.Parser()
return ep.parse(fp)
--- a/mercurial/patch.py Thu Oct 10 10:03:01 2019 +0200
+++ b/mercurial/patch.py Thu Oct 10 10:48:57 2019 +0200
@@ -11,7 +11,6 @@
import collections
import contextlib
import copy
-import email
import errno
import hashlib
import os
@@ -107,7 +106,7 @@
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