Mercurial > hgrepos > Python > libs > ConfigMix
view CHANGES.txt @ 428:090a25f36a3d
FIX: Allow jailed configurations to use correctly use base configurations that use a different "default" marker object.
Jailed configurations assumed that their "default" marker object is
identical to the "default" marker object in the unjailed base
configuration. This is not always true, especially if
"_JailedConfiguration.rebind()" is used.
Removed the explicit "default" keyword argument and passed the complete
keywords argument dictionary to the base instead. This triggers correct
default handling in the base.
| author | Franz Glasner <f.glasner@feldmann-mg.com> |
|---|---|
| date | Thu, 09 Dec 2021 13:02:17 +0100 |
| parents | 7193d900978b |
| children | 5b928606fa00 |
line wrap: on
line source
.. -*- coding: utf-8; mode: rst; indent-tabs-mode: nil; -*- .. .. Valid tags: breaking, feature, bugfix, misc, test, doc .. .. _changelog: Changelog ========= Pre-1.0 Series -------------- n/a (not yet) ~~~~~~~~~~~~~ - **[bugfix]** Jailed configurations assumed that their "default" marker object is identical to the "default" marker object in the unjailed base configuration. This is not always true, especially if :py:meth:`~configmix.config._JailedConfiguration.rebind` is used. 0.18 (2021-12-02) ~~~~~~~~~~~~~~~~~ - **[feature]** Allow empty variable names in some cases to get the root object of a configuration. - **[feature]** Allow to get sub-jails from an already jailed configuration. - **[feature]** Implement :meth:`~configmix.config.Configuration.getkeysl` and :meth:`~configmix.config.Configuration.getkeys` that return generators over all keys of a configuration value. 0.17 (2021-11-22) ~~~~~~~~~~~~~~~~~ - **[feature]** Complete the set of configuration retrieval methods for the jailed configuration. 0.17b2 (2021-11-19) ~~~~~~~~~~~~~~~~~~~ - **[feature]** All configuration objects carry a flag `is_jail` that allows to determine whether a configuration is jailed - **[feature]** Allow a jailed configuration to be rebound to another unjailed configuration - **[feature}** A public accessor property to the base configuration of a jailed configuration 0.17b1 (2021-11-19) ~~~~~~~~~~~~~~~~~~~ - **[feature]** Jailed (aka "restricted" or "rooted") configurations with :py:meth:`~configmix.config.Configuration.jailed` 0.16.1 (2021-11-10) ~~~~~~~~~~~~~~~~~~~ - **[feature]** New access methods :py:meth:`~configmix.config.Configuration.getfirstvarl`, :py:meth:`~configmix.config.Configuration.getfirstvarl_s`, :py:meth:`~configmix.config.Configuration.getfirstintvarl_s` :py:meth:`~configmix.config.Configuration.getfirstboolvarl_s`, :py:meth:`~configmix.config.Configuration.getfirstfloatvarl_s` - **[feature]** New access method :py:meth:`~configmix.config.Configuration.getfirstfloatvar_s` 0.16 (2021-07-11) ~~~~~~~~~~~~~~~~~ - **[feature]** New access methods :py:meth:`~configmix.config.Configuration.getfirstvar`, :py:meth:`~configmix.config.Configuration.getfirstvar_s`, :py:meth:`~configmix.config.Configuration.getfirstintvar_s` and :py:meth:`~configmix.config.Configuration.getfirstboolvar_s` 0.15.1 (2021-07-09) ~~~~~~~~~~~~~~~~~~~ - **[bugfix]** Handle the `default` keyword parameter in :py:meth:`configmix.config.Configuration.getvar` properly. 0.15 (2021-06-25) ~~~~~~~~~~~~~~~~~ - **[feature]** New filter function :py:func:`urlquote_plus` - **[feature]** New filter functions :py:func:`None` and :py:func:`Empty`. They are useful in variable interpolation context where they suppress possible lookup errors (aka :py:exc:`KeyError`) and instead return with :py:obj:`None` or an empty string. 0.14 (2021-05-10) ~~~~~~~~~~~~~~~~~ - **[breaking] [feature]** Allowed quoting of variable and namespace names. This is mostly important for variable names that contain ``.``, ``:`` or ``|`` but probably useful for characters like ``"` ``'`` and ``#`` also. - **[breaking] [misc]** Moved some important public constants from :py:mod:`configmix` into the :py:mod:`configmix.constants` module. - **[feature]** Configuration tree references are implemented in the ``ref`` namespace - **[feature]** Implemented new access methods :py:meth:`configmix.config.Configuration.getvarl` and :py:meth:`configmix.config.Configuration.getvarl_s` 0.13 (2021-04-21) ~~~~~~~~~~~~~~~~~ - **[feature]** All YAML load functions got a new optional keyword `strict` to detect and prevent duplicate keys within a single YAML document. The top-level load function also understands this flag and provides it to low-level-loaders that understand it. 0.12 (2020-12-07) ~~~~~~~~~~~~~~~~~ - **[feature]** Provide an ``AWS`` namespace to retrieve some AWS instance metadata. 0.11 (2020-10-05) ~~~~~~~~~~~~~~~~~ - **[feature]** Allow the deletion of key-value pairs while merging configurations. This is done by recognizing and handling the special configuration value ``{{::DEL::}}``. 0.10 (2020-09-10) ~~~~~~~~~~~~~~~~~ - **[feature]** Allow loading configuration files from directories when using the "<dir>" prefix in filenames. Unknown filetypes within these directories are ignored automatically. - **[feature]** Implemented a function to delete an association: :py:func:`configmix.del_assoc`. 0.9 (2020-07-28) ~~~~~~~~~~~~~~~~ - **[breaking] [feature]** Do not set "root", "self" and "here" variables any more. The old behaviour hindered proper automatic configuration on some PyPy configurations when using `genapplib`. Only the INI-parser did set this variables automatically. 0.8.1 (2020-07-08) ~~~~~~~~~~~~~~~~~~ - **[bugfix]** Allow non-string keys when merging configurations. 0.8 (2020-07-08) ~~~~~~~~~~~~~~~~ - **[breaking] [feature]** Do not implicitely convert a configuration value to text if the value is the result of just a variable expansion. 0.7.4 (2020-05-21) ~~~~~~~~~~~~~~~~~~ - **[feature]** Implemented new namespace function ``OS:node`` to return the node's computername. - **[bugfix]** The ``OS`` namespace lookup did not handle non-existing variables properly and ignored the `default` parameter. 0.7.3 (2020-05-13) ~~~~~~~~~~~~~~~~~~ - No code changes. 0.7.2 (2019-05-13) ~~~~~~~~~~~~~~~~~~ - **[feature]** Implemented a loader with key ``-*-ignore-*-`` effectively ignores the contents of given file. No file extensions are by default associated with this loader. 0.7.1 (2019-05-10) ~~~~~~~~~~~~~~~~~~ - **[feature]** :py:func:`configmix.load` and :py:func:`configmix.safe_load` got a new keyword argument `extras` that (if given) will be used as the *last* configuration dictionary to be merged into the configuration. This can be used to overwrite configuration file settings from commandline arguments. - **[bugfix]** :py:func:`configmix.safe_load` did some preliminary unsafe merges from `defaults` and an extra additional unneeded merge. 0.7 (2019-05-06) ~~~~~~~~~~~~~~~~ - **[breaking]** Additional or alternative loaders can be installed by changing the :py:data:`configmix.mode_loaders` dictionary directly. - **[breaking]** The public functions to associate filename extensions to filemodes have been renamed to :py:func:`configmix.set_assoc`, :py:func:`configmix.get_assoc`, :py:func:`configmix.clear_assoc`, :py:func:`configmix.get_default_assoc`. The filemodes must be keys in the :py:data:`configmix.mode_loaders` dictionary. - **[breaking] [feature]** The associations from filename extensions to parsers are :py:mod:`fnmatch` style patterns now. Calling :py:func:`configmix.set_assoc` by default prepends to the currently defined associations and therefore gets the highest priority. Appending is possible also. - **[feature]** :py:func:`configmix.load` and :py:func:`configmix.safe_load` got a keyword argument `defaults` that allow the provision of an already existing default configuration into which all additional configuration settings are merged into. - **[feature]** Added support for TOML style configuration files. This needs the external package :py:mod:`toml` (from https://github.com/uiri/toml). 0.6 (2019-03-14) ~~~~~~~~~~~~~~~~ - **[breaking] [feature]** Reimplemented :py:func:`configmix.safe_merge` to do a deepcopy of all source configurations when merging. Previously is was sort of a shallow copy. - **[breaking] [feature]** The default file encoding when reading INI style files with :py:func:`configmix.ini.load` is now "UTF-8". Previously it was undefined and therefore dependent on the user's locale. An `encoding` keyword argument can be specified explicitely now. - **[breaking] [feature]** Support comment-like key-value pairs with configuration keys starting with ``__doc`` or ``__comment``. - **[misc]** Use the filesystem encoding where appripriate. - **[doc]** Begin the documentation with `Sphinx <http://www.sphinx-doc.org>`_ - **[test]** Begin formal unittests - **[feature]** Build a tree of configuration settings from INI files - **[feature]** Support JSON formatted files as configuration files also (suffix ".json"). - **[feature]** Allow custom configuration filename extensions and custom loaders that can handle custom configuration file syntax styles. 0.5 (2016-04-19) ~~~~~~~~~~~~~~~~ - **[feature]]** First really used release.
