Workaround bug in optparse that causes it to not handle unicode group names

This commit is contained in:
Kovid Goyal 2012-06-05 14:46:19 +05:30
parent 00eca123da
commit 691783ef37

View File

@ -8,7 +8,7 @@ Manage application-wide preferences.
''' '''
import os, cPickle, base64, datetime, json, plistlib import os, cPickle, base64, datetime, json, plistlib
from copy import deepcopy from copy import deepcopy
from optparse import OptionParser as _OptionParser from optparse import OptionParser as _OptionParser, OptionGroup
from optparse import IndentedHelpFormatter from optparse import IndentedHelpFormatter
from calibre.constants import (config_dir, CONFIG_DIR_MODE, __appname__, from calibre.constants import (config_dir, CONFIG_DIR_MODE, __appname__,
@ -159,6 +159,10 @@ class OptionParser(_OptionParser):
upper.__dict__[dest] == opt.default: upper.__dict__[dest] == opt.default:
upper.__dict__[dest] = lower.__dict__[dest] upper.__dict__[dest] = lower.__dict__[dest]
def add_option_group(self, *args, **kwargs):
if isinstance(args[0], type(u'')):
args = [OptionGroup(self, *args, **kwargs)] + list(args[1:])
return _OptionParser.add_option_group(self, *args, **kwargs)
class DynamicConfig(dict): class DynamicConfig(dict):
''' '''