Skip to content

Releases: Udhul/dynamic-config-manager

v1.4.0: Add get_field_names() helper

31 Jul 09:48

Choose a tag to compare

Implement complete field names API get_field_names() with recursive support and robust error handling

  • Added internal _collect_field_names() helper to recursively gather field names from Pydantic models
  • Introduced get_field_names() method on ConfigInstance for retrieving field names at root or scoped paths
  • Implemented path validation with clear KeyError and ValueError exceptions for invalid or non-model paths
  • Ensured compatibility with existing get_value(), set_value(), and get_metadata() APIs using dot notation
  • Added comprehensive tests covering basic, nested, deep nesting, scoped access, and error scenarios (13 tests total)
  • Provided full example script demonstrating all usage patterns
  • Bumped version to 1.4.0

Replaces previous unsupported approach accessing _model_cls.model_fields.keys() with a clean, supported, and intuitive API for nested config field introspection.

Full Changelog: v1.3.0...v1.4.0

v1.3.0: Full attribute access in metadata

31 Jul 06:57

Choose a tag to compare

Enhance ConfigInstance.get_metadata() with complete field metadata

Implement comprehensive field metadata access as specified in metadata
enhancement ticket. The get_metadata() method now returns all ConfigField
attributes including description, UI hints, options, and validation settings.

Changes:

  • Add 'description' field to metadata response from Pydantic field.description
  • Include full 'json_schema_extra' content in metadata dict
  • Flatten common ConfigField attributes (ui_hint, ui_extra, options, format_spec)
    to top-level metadata keys for convenience
  • Map 'autofix' from json_schema_extra to 'autofix_settings' in metadata
  • Maintain full backward compatibility with existing metadata structure

Implementation:

  • Enhanced ConfigInstance.get_metadata() in dynamic_config_manager/manager.py
  • Added comprehensive test suite in tests/test_metadata.py (275 lines)
  • Created demonstration example in examples/metadata_enhancement_demo.py
  • Updated documentation in docs/api_reference.md, docs/user_guide.md,
    and docs/full_specification.md
  • Moved completed implementation plan to docs/implementation_plans/completed/
  • Bumped version to 1.3.0

This enables complete programmatic access to all field metadata without
requiring direct access to underlying Pydantic models, improving API
consistency and supporting rich UI generation capabilities.

Resolves: metadata enhancement ticket

Full Changelog: v1.2.0...v1.3.0

v1.2.0

31 Jul 06:50

Choose a tag to compare

First release

What's Changed in tis version compared to v1.0.0

  • Add progress tracker plan by @Udhul in #1
  • Merge PROGRESS.md product increments into main by @Udhul in #9
  • Implement PI-1 features by @Udhul in #2
  • Add user and API documentation by @Udhul in #10
  • Improve autofix for numeric fields at zero bounds by @Udhul in #11
  • Add default and saved value accessors by @Udhul in #13

Full Changelog: https://github.com/Udhul/dynamic-config-manager/commits/v1.2.0