Skip to content

v1.3.1 Official Release

Choose a tag to compare

@b7binw13 b7binw13 released this 19 Mar 09:15
· 3 commits to main since this release
Immutable release. Only release title and notes can be modified.

Release Summary

CleverTools 1.3.1 extends the library’s file and configuration capabilities with native YAML support and a more powerful configuration loading workflow.

This release introduces dedicated YAML read and write helpers and expands load_config() so it can combine multiple configuration files across TOML, JSON, YAML, and YML into one merged configuration object. Nested mappings are merged recursively, later files override earlier values when keys overlap, and the final configuration can be accessed conveniently through attributes, dictionary-style access, or dot-path lookups.

Alongside these functional changes, the release also updates the public API surface, improves dependency handling for TOML writing through lazy imports, adds focused documentation for the new workflows, and broadens automated test coverage around YAML handling and multi-source configuration loading.

Highlights

  • Added read_yaml() and write_yaml() as first-class YAML file helpers
  • Extended load_config() to support .toml, .json, .yaml, and .yml
  • Enabled recursive merging of configuration data across mixed file formats
  • Added top-level exports for the new YAML and configuration helpers
  • Added dedicated documentation for YAML file handling and mixed-format config loading
  • Improved TOML writing behavior by importing tomli_w only when needed
  • Expanded automated coverage for YAML parsing, writing, and config merging scenarios

Why This Release Matters

Many real-world projects do not keep configuration in a single file or even in a single format. Different parts of a system may generate or own TOML, JSON, or YAML configuration independently, which often leaves application code responsible for reading, validating, and merging those sources manually.

CleverTools 1.3.1 reduces that overhead by providing one consistent built-in workflow for loading and combining structured configuration from multiple sources. This makes it easier to support layered configuration setups, shared defaults, environment overrides, and mixed tooling ecosystems without repeating merge logic across projects.

Testing

This release adds or expands automated coverage for:

  • YAML read and write roundtrips
  • invalid YAML handling
  • mixed-format configuration loading across TOML, JSON, and YAML
  • recursive merge behavior for overlapping nested sections
  • attribute-based and dot-path-based access to merged configuration values
  • validation for unsupported config structures and non-mapping roots

Verification attempted:

  • pytest -q

Current status in this environment:

  • Test collection fails because the yaml dependency is not installed locally.
  • Because clevertools.__init__ now exposes the YAML-backed configuration loader, this missing dependency also affects imports in other tests during collection.

Notes

  • pyyaml is now required for YAML support.
  • The package version was updated to 1.3.1.
  • This release does not include any UI changes.