Changelog
This is a record of BatConf releases and what went into them, in reverse chronological order. All previous releases should still be available on PyPI.
BatConf 0.x
0.4.0 - TBD
Breaking changes:
Remove
batconf.sources.file.FileConfig(deprecated since 0.2.0 — useIniConfigorYamlConfiginstead)
Features:
ConfigSingleton: global singleton proxy for sharing aConfigurationinstance across an applicationinsert_source(): add a configuration source to a runningConfigurationorConfigSingletonat runtimeSubscript access on
Configuration:cfg['key']is equivalent tocfg.keyIniSource— standardised INI file source implementingFileSourceP; replacesIniConfigTomlSource— standardised TOML file source implementingFileSourceP; replacesTomlConfigYamlSource— standardised YAML file source implementingFileSourceP; replacesYamlConfigNew top-level public API —
Configuration,SourceList,NamespaceSource,EnvSource,IniSource,TomlSource,YamlSourceare now importable directly frombatconf
0.3.1 - 2025-11-13
Bug Fixes:
Fix Python version shields in readme and pypi
Update supported version classifiers
Project management:
Add release issue template
0.3.0 - 2025-10-30
Supported versions:
Drop support for python 3.9
Add support for python 3.13t
Add support for python 3.14 and 3.14t
Features:
Support for free-threading/nogil
0.2.1 - 2025-09-18
Project maintenance
Updated links on docs page
Updated example code in readme
Changed build backend to Hatchling
0.2.0 - 2025-07-07
Supported versions:
Drop support for python 3.8
Add support for python 3.13
Documentation:
Extensive additions and improvements
Update Example Project
Add Legacy Example
Add dynamic copyright year (thanks @jgafnea)
Add spiffy config composition diagram
Code:
Freeform Schemas: Config schemas no longer depend on module names.
Add
YamlConfigto replaceFileConfigDeprecate FileConfig <batconf.sources.file.FileConfig>
Add .ini config source
IniConfigAdd .toml config source
TomlConfigMake the pyyaml dependency optional
Make [toml] an optional extra for Python version < 3.11
Docs: added a migration guide for v0.1 -> v0.2
Added Example Jupyter Notebook to notebooks
Modify :Example Project to use .ini instead of .yaml
Update Example Project to use freeform Schemas, instead of schemas bound to module namespaces.
Add default parameters to Configuration class:
The Configuration class now handles default values set in Config dataclasses. As a result, we no longer need the DataclassConfig source to lookup default values.
Improve Configuration repr for paths and child-configs
Remove DataclassConfig from example code and docs
Add _path attribute to
ConfigurationLint with Ruff
0.1.8 - 2024-08-09
Observability improvements
Add expressive repr to Configuration class
Project maintenance
Improve documentation
Add security policy
Add project logo
Add optional extras for dev and docs
0.1.7 - 2024-06-13
Add support for python3.12
Various improvements to type hints
Add design principles section to README
0.1.6 - 2023-07-19
Unpin pyyaml dependency