Mercurial > hgrepos > Python > libs > ConfigMix
changeset 21:ce290b10dac5
Better Py2/Py3 compatibility: mark some strings explicitly as Unicode
| author | Franz Glasner <f.glasner@feldmann-mg.com> |
|---|---|
| date | Thu, 10 Mar 2016 13:28:09 +0100 |
| parents | 9bdc4e421415 |
| children | 6a91db2c2469 |
| files | configmix/ini.py configmix/yaml.py |
| diffstat | 2 files changed, 24 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- a/configmix/ini.py Thu Mar 10 13:06:31 2016 +0100 +++ b/configmix/ini.py Thu Mar 10 13:28:09 2016 +0100 @@ -21,7 +21,7 @@ except ImportError: DictImpl = dict -from .compat import PY2 +from .compat import PY2, u __all__ = ["INIConfigParser", "NoSectionError", "NoOptionError", @@ -68,9 +68,9 @@ if PY2: if isinstance(filename, str): filename = filename.decode(locale.getpreferredencoding()) - self.set(None, "self", filename) - self.set(None, "here", os.path.dirname(filename)) - self.set(None, "root", os.path.dirname(self.executable)) + self.set(None, u("self"), filename) + self.set(None, u("here"), os.path.dirname(filename)) + self.set(None, u("root"), os.path.dirname(self.executable)) SafeConfigParser.readfp(self, fp, filename=filename) self.filename = filename self.root = os.path.dirname(self.executable) @@ -86,20 +86,26 @@ """ v = self.get(section, option) - if v.startswith(":bool:"): + if v.startswith(u(":bool:")): v = v[6:].lower() if v not in self._BOOL_CVT: - raise ValueError("Not a boolean: %s" % (v, )) + raise ValueError("Not a boolean: %r" % v) return self._BOOL_CVT[v] - elif v.startswith(":int:"): + elif v.startswith(u(":int:")): return int(v[5:], 0) - elif v.startswith(":float:"): + elif v.startswith(u(":float:")): return float(v[7:]) else: return v - _BOOL_CVT = {'1': True, 'yes': True, 'true': True, 'on': True, - '0': False, 'no': False, 'false': False, 'off': False} + _BOOL_CVT = {u('1'): True, + u('yes'): True, + u('true'): True, + u('on'): True, + u('0'): False, + u('no'): False, + u('false'): False, + u('off'): False} def load(filename, extract=["config"]):
--- a/configmix/yaml.py Thu Mar 10 13:06:31 2016 +0100 +++ b/configmix/yaml.py Thu Mar 10 13:28:09 2016 +0100 @@ -16,6 +16,8 @@ import yaml import yaml.constructor +from .compat import u + __all__ = ["safe_load", "safe_load_all", "load", "load_all"] @@ -71,14 +73,14 @@ ConfigLoader.add_constructor( - "tag:yaml.org,2002:str", + u("tag:yaml.org,2002:str"), ConfigLoader.construct_yaml_str) if OrderedDict: ConfigLoader.add_constructor( - "tag:yaml.org,2002:map", + u("tag:yaml.org,2002:map"), ConfigLoader.construct_yaml_map) ConfigLoader.add_constructor( - "tag:yaml.org,2002:omap", + u("tag:yaml.org,2002:omap"), ConfigLoader.construct_yaml_map) @@ -133,14 +135,14 @@ ConfigSafeLoader.add_constructor( - "tag:yaml.org,2002:str", + u("tag:yaml.org,2002:str"), ConfigSafeLoader.construct_yaml_str) if OrderedDict: ConfigSafeLoader.add_constructor( - "tag:yaml.org,2002:map", + u("tag:yaml.org,2002:map"), ConfigSafeLoader.construct_yaml_map) ConfigSafeLoader.add_constructor( - "tag:yaml.org,2002:omap", + u("tag:yaml.org,2002:omap"), ConfigSafeLoader.construct_yaml_map)
