- Remove support for Python 3.8
- Remove support for Python < 3.8
()
can now load object attributes, such as static methods (e.g.(): module.MyClass.generate
)
!ext
can now load object attributes, such as enum members (e.g.!ext module.MyEnum.MY_VALUE
)
- Fixed loading
!import
or!cfg
tags in a!cfg
tag
- Added a
logging_config_path
keyword parameter toconfigue.load
to set up a logging configuration while loading a configuration file
- Loading a null
!path
will now returnNone
instead of raising an Exception
- The
!env
tag has been removed, environment variables can now be loaded anywhere - The
cfg://
syntax has been replaced with!cfg path.to.value
!cfg
now redirects to a path in the current file (instead of the first loaded file)- Use
!import
to load a path in another file
- Use
- The
ext://module.submodule.object
syntax has been replaced with!ext module.submodule.object
- Replaced
load_config_from_file
with aconfigue.load
function, which is now the main entrypoint of the library- use
configue.load("/path/to/file.yml")
to load a file - use
configue.load("/path/to/file.yml", "path.to.section")
to load only a section of a file - loading a path in a file recursively loads all children (replaced the lazy-loading with path loading), see README for more details
- use
- Removed the
load_config_from_dict
function - The
!list
tag has been removed, set your environment variable to[value_1, value_2]
instead
- Remove all
!env
tags - Remove all
!list
tags, and replace your environment variables fromvalue1,value2
to[value1,value2]
- Replace
ext://path.to.load
with!ext path.to.load
- If you are using
!import
to import a file containing values withcfg://path.to.load
, replace thecfg://...
with!import:path/to/root/file.yml path.to.load
- Replace
cfg://path.to.load
with!cfg path.to.load
- Replace
configue.load_config_from_file(...)
withconfigue.load(...)
- Replace
configue.load_config_from_file(...)["path"]["to"]["load"]
withconfigue.load(..., "path.to.load")
- The
!import
tag can now specify the path to load in the other file, with the syntax:!import:path.to.load path/to/file.yml
- Dictionaries and lists are now JSON dumpable and picklable
- Removed warning about missing environment variables from unloaded paths
- Added Python 3.10 support
- Updated PyYAML dependency version
- Added Python 3.9 support
- Fixed DeprecationWarning on collections import
- Fixed key errors when loading
cfg://
paths from file
- Fixed top-level object loading
- Fixed PyPI package description
- Renamed into
configue
- Removed json loading
- Updated dependency:
pyyaml
to5.1
- Fixed warnings for missing environment variables appearing when a default was set
- Added a warning log when an environment variable is missing
- Using
**kwargs
,.items()
or.values()
with a dictionary created with theConfigLoader
now converts the value
- An error log has been added when a class instantiation fails
!path
and!import
now work as expected when used after importing a file from another folder
~
paths are correctly expanded when used with!path
in yaml files
- Emojis are now supported in yaml files
- Environment variables can now contain lists in YAML files, use
!list ${my_var}
to create a python list when loading the file.
- Environment variables can now be inserted in
!path
values - Values that contain environment variables are now cast into strings, booleans, ints or floats
- You can use
!import
to concatenate files
- Multiple environment variables can now be inserted in the same value
- Removed escaped callable syntax
\()
- Fixed a bug where tuples where not converted on access
- Fixed a bug that prevented accessing objects properties with
cfg://
- Added environment variables templating with
${var_name-default}
when loading from YAML files - Added path completion with
!path folder/my_file.txt
when loading from YAML files (prepends the absolute path to the folder containing the configuration file)
load_config_from_json
has been deprecated in favor ofload_config_from_yaml
load_config_from_file
has been deprecated when using JSON files (use YAML files instead)
- Added callable list support
- Added
\()
special value to escape callable key
- Added
load_config_from_file
,load_config_from_dict
,load_config_from_yaml_file
,load_config_from_json_file
methods - Added
ConfigLoader
object