From 3e64b73c962a80a008a4102b682a387e18df347e Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 20 May 2019 13:40:20 +0530 Subject: [PATCH] py3: make mreplace polyglot --- src/calibre/utils/mreplace.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/calibre/utils/mreplace.py b/src/calibre/utils/mreplace.py index c4b70836cd..eb2059f0d3 100644 --- a/src/calibre/utils/mreplace.py +++ b/src/calibre/utils/mreplace.py @@ -1,4 +1,5 @@ # multiple replace from dictionnary : http://code.activestate.com/recipes/81330/ +from __future__ import unicode_literals __license__ = 'GPL v3' __copyright__ = '2010, sengian ' __docformat__ = 'restructuredtext en' @@ -22,7 +23,10 @@ class MReplace(UserDict): def compile_regex(self): if len(self.data) > 0: keys = sorted(self.data, key=len, reverse=True) - tmp = "(%s)" % "|".join(map(re.escape, keys)) + if isinstance(keys[0], bytes): + tmp = b"(%s)" % b"|".join(map(re.escape, keys)) + else: + tmp = "(%s)" % "|".join(map(re.escape, keys)) if self.re != tmp: self.re = tmp if self.case_sensitive: