# HG changeset patch # User Franz Glasner # Date 1556869395 -7200 # Node ID 7cfdc972af42af3370c9141c84c2acd9943a958b # Parent e87fa5bd68e77a9dc1292f89c4fef7991a6de765 Refactor: Renamed public functions to be conform with the new loader search diff -r e87fa5bd68e7 -r 7cfdc972af42 configmix/__init__.py --- a/configmix/__init__.py Fri May 03 09:31:56 2019 +0200 +++ b/configmix/__init__.py Fri May 03 09:43:15 2019 +0200 @@ -19,8 +19,8 @@ __date__ = "|VCSJustDate|" __all__ = ["load", "safe_load", - "set_loader", "get_loader", - "get_default_loader", + "set_assoc", "get_assoc", "clear_assoc", + "get_default_assoc", "Configuration", "try_determine_filemode"] @@ -160,7 +160,7 @@ """Default associations between file modes and loader functions""" -DEFAULT_EXTENSIONS = [ +DEFAULT_ASSOC = [ ("*.yml", "yaml"), ("*.yaml", "yaml"), ("*.json", "json"), @@ -178,20 +178,22 @@ DEFAULT_LOADER = object() -"""Marker for the default loader for an extension. +"""Marker for the default association for an extension. -To be used in :func:`set_loader`. +To be used in :func:`set_assoc`. """ -def get_default_loader(pattern): - """Return the default loader for the :mod:`fnmatch` pattern `pattern`. + +def get_default_assoc(pattern): + """Return the default file-mode association for the :mod:`fnmatch` + pattern `pattern`. :raises: :class:`KeyError` if the `pattern` is not found. """ - for pat, loader in _default_loaders: + for pat, fmode in DEFAULT_ASSOC: if pattern == pat: - return loader + return fmode else: raise KeyError("No loader for pattern %r" % pattern) @@ -206,34 +208,34 @@ _extensions = [] """All configured assiciations of filename extensions with file modes. -See :data:`DEFAULT_EXTENSIONS` +See :data:`DEFAULT_ASSOC` """ -def clear_loader(): +def clear_assoc(): """Remove all configured loader associations. The :data:`_default_loaders` are **not** changed. """ - del _loaders[:] + del _extensions[:] -def get_loader(pattern): +def get_assoc(pattern): """Return the default loader for the :mod:`fnmatch` pattern `pattern`. :raises: :class:`KeyError` if the `pattern` is not found. """ - for pat, loader in _loaders: + for pat, fmode in _extensions: if pattern == pat: - return loader + return fmode else: - raise KeyError("No loader for pattern %r" % pattern) + raise KeyError("No associated file-mode for pattern %r" % pattern) -def set_loader(fnpattern, mode): +def set_assoc(fnpattern, mode): """Associate a :mod:`fnmatch` style pattern `fnpattern` with a file-mode `mode` that determines what will be called when :func:`load` encounters a file argument that matches `fnpattern`. @@ -251,12 +253,12 @@ :func:`fnmatch.fnmatch` applies (i.e. :func:`os.path.normpath` will be called for both arguments). - If `loader` is :data:`DEFAULT_LOADER` then the default association + If `loader` is :data:`DEFAULT_ASSOC` then the default association from :data:`_default_loaders` will be used -- if any. """ if mode is DEFAULT_LOADER: - for p, m in DEFAULT_EXTENSIONS: + for p, m in DEFAULT_ASSOC: if p == fnpattern: _extensions.insert(0, (fnpattern, m)) break @@ -426,5 +428,5 @@ # Init loader defaults: mode->loader and extension->mode # _mode_loaders.update(DEFAULT_MODE_LOADERS) -for _pattern, _mode in DEFAULT_EXTENSIONS: - set_loader(_pattern, _mode) +for _pattern, _mode in DEFAULT_ASSOC: + set_assoc(_pattern, _mode) diff -r e87fa5bd68e7 -r 7cfdc972af42 tests/test.py --- a/tests/test.py Fri May 03 09:31:56 2019 +0200 +++ b/tests/test.py Fri May 03 09:43:15 2019 +0200 @@ -311,12 +311,12 @@ self._reset() def _reset(self): - configmix.clear_loader() - for pat, loader in configmix._default_loaders: - configmix.set_loader(pat, loader) + configmix.clear_assoc() + for pat, fmode in configmix.DEFAULT_ASSOC: + configmix.set_assoc(pat, fmode) def test01_additional(self): - configmix.set_loader("*.conf", configmix.get_default_loader("*.yml")) + configmix.set_assoc("*.conf", configmix.get_default_assoc("*.yml")) cfg = configmix.load( os.path.join(TESTDATADIR, "conf1.ini"), os.path.join(TESTDATADIR, "conf30.conf")) @@ -324,8 +324,8 @@ self.assertEqual(u("new value"), cfg.getvar_s("key-new")) def test02_only_style_wrong_style(self): - configmix.clear_loader() - configmix.set_loader("*.conf", configmix.get_default_loader("*.yml")) + configmix.clear_assoc() + configmix.set_assoc("*.conf", configmix.get_default_assoc("*.yml")) def _ld(): return configmix.load(os.path.join(TESTDATADIR, "conf1.ini"), @@ -334,8 +334,8 @@ self.assertRaises(ValueError, _ld) def test03_only_style_corrrect_style(self): - configmix.clear_loader() - configmix.set_loader("*.conf", configmix.get_default_loader("*.yml")) + configmix.clear_assoc() + configmix.set_assoc("*.conf", configmix.get_default_assoc("*.yml")) cfg = configmix.load(os.path.join(TESTDATADIR, "conf30.conf")) self.assertEqual(u("new value"), cfg.getvar_s("key-new"))