log configmix/config.py @ 633:9ab72688278b v0.20.4

age author description
Wed, 12 Jan 2022 00:44:02 +0100 Franz Glasner C-implementations of Configuration.getvarl_s() and Configuration.getvar()
Tue, 11 Jan 2022 02:50:17 +0100 Franz Glasner C-implementations for Configuration.getvarl() and Configuration.getvar_s()
Sun, 09 Jan 2022 21:04:11 +0100 Franz Glasner Adjust copyright year (the end) to 2022
Mon, 03 Jan 2022 00:11:41 +0100 Franz Glasner Implement a C-version of Configuration.interpolate_variables
Sun, 02 Jan 2022 20:43:24 +0100 Franz Glasner Do not rstrip() the remaining variable name when parsing out filters from variable names
Sun, 02 Jan 2022 20:40:09 +0100 Franz Glasner Provide a C implementation of configmix.config._split_filters.
Sun, 02 Jan 2022 16:05:35 +0100 Franz Glasner Try to interpolate only if the length of the source string exceeds a minimum length
Sun, 02 Jan 2022 02:04:07 +0100 Franz Glasner Provide a C-implementation of configmix.config.quote() also: fast_quote
Sat, 01 Jan 2022 21:38:46 +0100 Franz Glasner FIX: Assign to _JailedConfiguration._path_string only if not yet done
Sat, 01 Jan 2022 18:01:32 +0100 Franz Glasner Added also a fast C-implementation of configmix.config._split_ns
Fri, 31 Dec 2021 21:24:16 +0100 Franz Glasner Add an optional C-implementation for configmix.config.unquote and configmix.config.pathstr2path.
Wed, 29 Dec 2021 13:33:11 +0100 Franz Glasner Docs for _split_ns() and _split_filters()
Tue, 28 Dec 2021 19:22:28 +0100 Franz Glasner _split_ns() and _split_filters() are now module-globals
Tue, 28 Dec 2021 17:28:19 +0100 Franz Glasner Refactor: the parsing of the quoted and dot-separated path string is put into a function that handles also empty inputs properly
Mon, 20 Dec 2021 22:31:58 +0100 Franz Glasner Optimize jailed configuration somewhat: do not append empty tuples
Mon, 20 Dec 2021 14:33:54 +0100 Franz Glasner FIX: Handle non-cacheable interpolations properly.
Mon, 20 Dec 2021 14:33:09 +0100 Franz Glasner Docs
Mon, 20 Dec 2021 13:39:11 +0100 Franz Glasner Apply None and Empty interpolation filters only on KeyErrors
Mon, 20 Dec 2021 13:12:14 +0100 Franz Glasner Implement a simple interpolation cache for text types
Mon, 20 Dec 2021 12:45:48 +0100 Franz Glasner Rename internal cache from __cache to __lookup_cache
Mon, 20 Dec 2021 12:43:17 +0100 Franz Glasner Change Configuration.expand_variable() to Configuration.interpolate_variables()
Mon, 20 Dec 2021 02:00:03 +0100 Franz Glasner Implement Configuration.getvar_s() by using Configuration.getvarl() instead of Configuration.getvar().
Sun, 19 Dec 2021 19:01:43 +0100 Franz Glasner Configuration._split_filters() now does the special filter check for None and Empty also
Sun, 19 Dec 2021 18:51:27 +0100 Franz Glasner Formatting of NameErrors in ._apply_filters(): put "name" into a tuple explicitely
Sun, 19 Dec 2021 18:37:37 +0100 Franz Glasner Docs
Sun, 19 Dec 2021 16:33:31 +0100 Franz Glasner Remove unneeded "default" keyword argument for Configuration._lookupref() and Configuration.expand_ref_uri()
Sun, 19 Dec 2021 16:04:40 +0100 Franz Glasner Implement Configuration.items() and Configuration.values() without interpolating the values
Sun, 19 Dec 2021 14:36:18 +0100 Franz Glasner FIX: Do not filter-out all False values then interpolating (zero int, boolean False)
Sun, 19 Dec 2021 14:10:28 +0100 Franz Glasner Performance: compute the length of the constant input strinc only once and compute the new rest earlier and use the computed value also in comparisons
Sun, 19 Dec 2021 10:38:20 +0100 Franz Glasner str.join(): use a list comprehension instead of a generator expression for performance reasons
Sun, 19 Dec 2021 10:35:06 +0100 Franz Glasner Remove a temporary variable usage
Sat, 18 Dec 2021 18:44:21 +0100 Franz Glasner Using generator expressions to directly create tuples is a not so good idea performance-wise.
Sat, 18 Dec 2021 18:41:11 +0100 Franz Glasner FIX: Some other lists that need to converted to tuples
Sat, 18 Dec 2021 18:36:50 +0100 Franz Glasner FIX: Convert a list ito a tuple before appending it to another tuple
Sat, 18 Dec 2021 11:19:51 +0100 Franz Glasner Docs
Sat, 18 Dec 2021 11:06:34 +0100 Franz Glasner Implement clear_cache() for the configuration
Sat, 18 Dec 2021 02:35:42 +0100 Franz Glasner .lstrip() seems to be a little bit faster than .rstrip() when testing whether quoting is needed
Sat, 18 Dec 2021 01:49:48 +0100 Franz Glasner Use generator comprehensions where possible instead of list comprehensions that are converted to tuples
Sat, 18 Dec 2021 01:26:41 +0100 Franz Glasner Make quote() and unquote() module globals and also export from configmix
Sat, 18 Dec 2021 01:03:49 +0100 Franz Glasner "quote()" and "unquote()" are now static methods
Sat, 18 Dec 2021 00:43:36 +0100 Franz Glasner Configuration._lookupvar() now uses an internal cache (positive and negative).
Fri, 17 Dec 2021 23:53:38 +0100 Franz Glasner Optimize .substitute_variables_in_obj: use dict.items() to avoid one dict lookup
Fri, 17 Dec 2021 19:34:38 +0100 Franz Glasner Performance: module-level variable lookup is much faster (similar to local) than class-level (either via CLASS.VARIABLE or self.VARIABLE).
Fri, 17 Dec 2021 18:58:06 +0100 Franz Glasner Remove default (i.e. all keyword arguments) from .expand_if_reference() because no-one uses it
Fri, 17 Dec 2021 16:56:31 +0100 Franz Glasner Remove repeated type(obj) calls
Fri, 17 Dec 2021 16:37:26 +0100 Franz Glasner Reorder type comparisons by usage
Fri, 17 Dec 2021 16:28:09 +0100 Franz Glasner Remove unused keyword params for ._lookupvar().
Fri, 17 Dec 2021 16:17:17 +0100 Franz Glasner Simplify logic by not using many negations
Fri, 17 Dec 2021 16:06:49 +0100 Franz Glasner Instead of using u(str(v)) use specialized functions for PY2 and PY3
Fri, 17 Dec 2021 15:56:33 +0100 Franz Glasner Use the new contant _EMPTY_STR where appropriate
Fri, 17 Dec 2021 15:55:51 +0100 Franz Glasner Avoid repeaded string concatenations in .expand_variable(): use a list of string parts and proper indexes into the source string
Fri, 17 Dec 2021 14:14:36 +0100 Franz Glasner Optimize .quote() by using str.translate() instead of repeatedly calling str.replace()
Fri, 17 Dec 2021 13:53:25 +0100 Franz Glasner Remove unneeded __future__ import because we are on Python 2.6+
Fri, 17 Dec 2021 13:12:19 +0100 Franz Glasner Use a quick-check for .quote() if no quoting is needed
Fri, 17 Dec 2021 12:49:07 +0100 Franz Glasner Because we are Pytho 2.6+ remove some compatibility code for pre-Python 2.6
Fri, 17 Dec 2021 11:52:56 +0100 Franz Glasner Optimize .unquote(): instead of doing string comparisone do this with characters
Fri, 17 Dec 2021 11:46:36 +0100 Franz Glasner Avoid some repeated string/unicode conversions for constants used by quoting
Fri, 17 Dec 2021 11:42:47 +0100 Franz Glasner Optimize .unquote() by aliasing some methods to locals and avoiding the first append call
Fri, 17 Dec 2021 11:09:14 +0100 Franz Glasner Optimize ._split_filters() for the most common case of no-filters: use s.partition() first
Fri, 17 Dec 2021 10:57:59 +0100 Franz Glasner Optimize ._split_ns(): use str.partition() if possible instead of str.split(n, 1)
Thu, 16 Dec 2021 09:19:50 +0100 Franz Glasner Docs
Thu, 16 Dec 2021 09:15:18 +0100 Franz Glasner Index list-access for jailed configurations: be more generic by calling also __getitem__ in the base
Wed, 15 Dec 2021 22:59:05 +0100 Franz Glasner len-support for jailed configurations: implement a proper __len__() method
Wed, 15 Dec 2021 09:10:01 +0100 Franz Glasner Proper boolean context for jailed configurations: __bool__()/__nonzero__()
Wed, 15 Dec 2021 08:48:37 +0100 Franz Glasner Implement proper iteration support for jailed configurations
Wed, 15 Dec 2021 00:17:27 +0100 Franz Glasner "yield" is only supported for older Python versions if "generators" are imported from __future__
Tue, 14 Dec 2021 14:35:39 +0100 Franz Glasner Make exception formatting more robuts: pack all %-style formatting args explicitely into tuples
Tue, 14 Dec 2021 14:28:10 +0100 Franz Glasner FIX: KeyError formatting.
Sat, 11 Dec 2021 19:56:35 +0100 Franz Glasner Attribute-style access for jailed configurations
Fri, 10 Dec 2021 09:27:47 +0100 Franz Glasner FIX: Merge properly when the configuration's __getitem__ do now interpolate: prohibit duplicate interpolation and interpolation while merging
Fri, 10 Dec 2021 03:00:11 +0100 Franz Glasner Add proper .get() support for jailed and unjailed configurations
Fri, 10 Dec 2021 02:20:54 +0100 Franz Glasner FIX: Handle "list"-type keys in __contains__ and __getitem__ properly: convert to tuples for contatenation with tuple
Fri, 10 Dec 2021 02:18:16 +0100 Franz Glasner Optimize __getitem__() in jailed configurations: call base directly
Fri, 10 Dec 2021 02:15:00 +0100 Franz Glasner Optimized __contains__() implementation for jailed and unjailed configurations
Fri, 10 Dec 2021 01:44:12 +0100 Franz Glasner Style
Fri, 10 Dec 2021 01:33:37 +0100 Franz Glasner - Dict-level access to a configuration key now does variable interpolation.
Thu, 09 Dec 2021 22:51:10 +0100 Franz Glasner Proper "repr()" for a jailed configuration: put the root path into the output
Thu, 09 Dec 2021 13:02:17 +0100 Franz Glasner FIX: Allow jailed configurations to use correctly use base configurations that use a different "default" marker object.
Tue, 07 Dec 2021 09:38:33 +0100 Franz Glasner Docs: more on jails and sub-jails
Thu, 02 Dec 2021 09:22:22 +0100 Franz Glasner Allow the empty variable name to retrieve the root configuration object
Thu, 02 Dec 2021 01:24:53 +0100 Franz Glasner Implement .getkeysl() and .getkeys() for configuration objects that iterate over all the keys of a configuration value
Wed, 01 Dec 2021 23:10:20 +0100 Franz Glasner Implement sub-jails: allow to get a jailed configuration from a jail
Wed, 01 Dec 2021 23:09:00 +0100 Franz Glasner FIX: Handle .jailed() with an empty "root" properly
Sat, 20 Nov 2021 13:52:08 +0100 Franz Glasner Provide coercing methods for the jailed configuration: getintXXX(), getboolXXX(), getfloatXXX() and friends.
Fri, 19 Nov 2021 15:52:01 +0100 Franz Glasner Optimize the creation of a jailed config.
Fri, 19 Nov 2021 13:27:41 +0100 Franz Glasner Allow a jailed configuration to return its base configuration via a property
Fri, 19 Nov 2021 13:26:53 +0100 Franz Glasner Allow to rebind a jailed configuration to another "similar" base
Fri, 19 Nov 2021 12:40:23 +0100 Franz Glasner Implement a ".is_jail" flag for configuration objects: to test/assert whether we expect a jail configuration
Fri, 19 Nov 2021 09:28:49 +0100 Franz Glasner Docs
Fri, 19 Nov 2021 01:59:42 +0100 Franz Glasner Docs
Fri, 19 Nov 2021 01:39:18 +0100 Franz Glasner Jailed configuration: implement more methods: getfirstvarl, getfirstvarl_s, getfirstvar and getfirstvar_s
Thu, 18 Nov 2021 22:29:05 +0100 Franz Glasner Docs
Thu, 18 Nov 2021 22:14:34 +0100 Franz Glasner Style
Thu, 18 Nov 2021 18:30:59 +0100 Franz Glasner Begin a jailed configuration with access to a sub-tree of the original configuration
Wed, 10 Nov 2021 09:37:44 +0100 Franz Glasner Docs
Wed, 10 Nov 2021 02:43:23 +0100 Franz Glasner Docs: document Configuration.getfirstvarl_s()
Wed, 10 Nov 2021 02:11:12 +0100 Franz Glasner First documentation of getfirstvarl()
Wed, 10 Nov 2021 01:53:50 +0100 Franz Glasner Implemented Configuration.getfirstintvarl_s(), .getfirstboolvar_s() and .getfirstfloatvarl_s()
Wed, 10 Nov 2021 01:53:23 +0100 Franz Glasner Implemented Configuration.getfirstfloatvar_s().
Wed, 10 Nov 2021 01:42:15 +0100 Franz Glasner Renamed "names" arguments into the more proper "path"
Wed, 10 Nov 2021 01:37:36 +0100 Franz Glasner Implemented Configuration.getfirstvarl() and Configuration.getfirstvarl_s()
Tue, 09 Nov 2021 21:58:05 +0100 Franz Glasner Docu: "namespace" in getvarl() is a keyword argument
Sun, 11 Jul 2021 17:28:01 +0200 Franz Glasner FIX: Doc strings
Sun, 11 Jul 2021 17:08:06 +0200 Franz Glasner Implement ".getfirstintvar_s()" and ".getfirstboolvar_s()" with unittests
Fri, 09 Jul 2021 09:40:49 +0200 Franz Glasner Implement ".getfirstvar()" and ".getfirstvar_s()".
Fri, 09 Jul 2021 08:53:30 +0200 Franz Glasner FIX: Handle a "default" keyword parameter in ".getvar()" properly.
Thu, 24 Jun 2021 21:20:37 +0200 Franz Glasner Use constants for the names of the "None" and "Empty" filters
Thu, 24 Jun 2021 19:26:53 +0200 Franz Glasner Implement the "Empty" filter.
Thu, 24 Jun 2021 19:22:53 +0200 Franz Glasner FIX: Do not apply the type convertion None -> "" if the expansions comprises the whole expression
Thu, 24 Jun 2021 09:33:22 +0200 Franz Glasner Implement a special filter named "None" that suppresses "KeyErrors" from interpolation lookups and returns a Python "None" instead
Fri, 07 May 2021 10:35:21 +0200 Franz Glasner By default quote also the characters "{", "}", "[" and "]" because they are special in YAML
Fri, 07 May 2021 09:31:22 +0200 Franz Glasner Docs: quoting
Fri, 07 May 2021 09:18:41 +0200 Franz Glasner FIX: Handle the unquoting of namespaces within Configuration.getvar() properly.
Thu, 06 May 2021 22:16:56 +0200 Franz Glasner By default quote '"' and "'" also
Thu, 06 May 2021 20:55:43 +0200 Franz Glasner By default quote the "#" character also because it is typically a comment in all the configuration file formats.
Thu, 06 May 2021 11:17:56 +0200 Franz Glasner Comment: typo
Thu, 06 May 2021 11:06:50 +0200 Franz Glasner FIX: Python2 compatibility: keyword arguments after *args not allowed: use **kwds and manual retrieval with .pop() instead
Thu, 06 May 2021 09:45:51 +0200 Franz Glasner Allow variable name quoting to be used in .getvar() and .getvar_s() and references
Wed, 05 May 2021 01:32:07 +0200 Franz Glasner Implemented new access methods .getvarl() and .getvarl_s
Wed, 28 Apr 2021 09:23:14 +0200 Franz Glasner Docu