Releases: Udhul/dynamic-config-manager
v1.4.0: Add get_field_names() helper
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 onConfigInstancefor 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(), andget_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
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
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