view CHANGES.txt @ 391:fd948c62908d v0.16.1

+++++ v0.16.1
author Franz Glasner <fzglas.hg@dom66.de>
date Wed, 10 Nov 2021 09:39:23 +0100
parents 8c3aaa894089
children e05195ee869d
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
--------------

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.