From d9cd1884af1f8d0e171f66002eca47b46641cd54 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 10 Apr 2019 10:07:16 +0530 Subject: [PATCH] Handle passing both str and bytes to add_option_group --- src/calibre/utils/config.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/calibre/utils/config.py b/src/calibre/utils/config.py index b44ba42a98..b4c11a45a1 100644 --- a/src/calibre/utils/config.py +++ b/src/calibre/utils/config.py @@ -21,7 +21,7 @@ from calibre.utils.config_base import ( tweaks, from_json, to_json ) from calibre.utils.lock import ExclusiveFile -from polyglot.builtins import unicode_type +from polyglot.builtins import string_or_bytes, native_string_type # optparse uses gettext.gettext instead of _ from builtins, so we @@ -193,8 +193,9 @@ class OptionParser(optparse.OptionParser): upper.__dict__[dest] = lower.__dict__[dest] def add_option_group(self, *args, **kwargs): - if isinstance(args[0], unicode_type): - args = [optparse.OptionGroup(self, *args, **kwargs)] + list(args[1:]) + if isinstance(args[0], string_or_bytes): + args = list(args) + args[0] = native_string_type(args[0]) return optparse.OptionParser.add_option_group(self, *args, **kwargs)