This project adheres to Semantic Versioning and Keep a Changelog format.
- New
FutureYAMLConfigManager
object, prep for v1. - Improved file locking system with
read_lock
andwrite_lock
context managers - New
from_x
object construction API.
- new functionality for handling names of config files
- bugs with selecting a config file
- bug with exiting Python on system interrupt
.priority_get()
function onYAMLConfigManager
object
This is a transition release that is compatible with the 0.X series, and also provides new capability from 1.0, which will not be backwards-compatible
- new
YAMLConfigManager
object, to replace YacAttMap, which will be the new interface in 1.0.
- a bug that prevented writing a readonly file to an external path
- removed use2to3 for compatibility with setuptools upgrade.
- if file is empty, initialize its contents to an empty dict, which prevents failure
- check for previously applied path to
yaml.SafeLoader
before patching
- Clarified message for
__internal
key.
- jsonschema validation support. The
YacAttMap
contents can be validated when object is constructed and on every call to thewrite
method __internal
key inYacAttMap
object, which stores aattamp.AttMap
of meta attributes.__internal
can be accessed in clients as:yacman.IK
- use of the following properties, which should be accessed via
__internal
key from now on:YacAttMap.file_path
YacAttMap.writable
- environment variables expansion in provided paths in
select_config
function
- issues with locking nonexistant files; #41
AliasedYacAttMap
class that supports top-level key aliases
- improved file locking
- possibility to provide a file path as
entries
in theYacAttMap
constructor
- extended lock wait time and the frequency of checks
- drop Python 2 support
- a problem with file locking after other process unlocked it before the timeout
- load_yaml function can accommodate URLs.
- possibility to use
YacAttMap
in a context manager even if it was not read from a file, but a file path attribute has been set
- context manager functionality to
YacAttMap
class
- method name:
unlock
tomake_readonly
make_writable
behavior: it re-reads the source file now
- distribute license file with the package
- silent lock creation failures in case the lock directory does not exist; #24
YacAttMap
properties:file_path
andwritable
- in
select_config
always use default config file path when no valid path is determined
strict_env
argument to theselect_config
function
- in
select_config
use thedefault_config_filepath
even if noconfig_env_vars
were specified
- add support for multi-user context operation
writable
argument to create the object in a read-only or writable modewait_max
argument to specify the wait time for the lock before raising aRuntimeError
unlock
methodmake_writable
method
- entries argument accepting a file path becomes deprecated and throws a
DeprecationWarning
and will be removed altogether in the future release
- Force all indexes to be strings (not floats or ints).
- Allow providing a yaml string to constructor.
- Improve constructor to allow either a dict or a filepath
- Make printing prettier
- Parameterize existence check for
select_config
.
- Parameterize behavior when
select_config
filepath argument does not exist.
- Fix bug when building a
YacAttMap
with a filepath in Python 2.7: Issue 6
- Defer exception handling from
load_yaml
to client code.
- Allow a YacAttMap to remember its own path so it can use
write
without an argument.
- Changed
select_load
to justselect
so you load on your own.
- Fixed packaging bug
- First functional public release of
yacman
.