cursus.api.factory.field_extractor¶
Field Requirement Extraction Utilities
This module provides utilities for extracting field requirements from Pydantic configuration classes. The extracted requirements are returned as simple dictionaries that are easy to print and use in interactive configuration workflows.
Key Functions: - extract_field_requirements: Extract field requirements from Pydantic class - extract_non_inherited_fields: Extract only non-inherited fields from derived class - print_field_requirements: Print field requirements in user-friendly format - get_field_type_string: Convert field type annotation to readable string
- extract_field_requirements(config_class)[source]¶
Extract field requirements directly from Pydantic V2 class definition.
- Parameters:
config_class (Type[BaseModel]) – Pydantic V2 model class to extract fields from
- Returns:
- {
‘name’: str, # Field name ‘type’: str, # Field type as string ‘description’: str, # Field description from Pydantic Field() ‘required’: bool, # True for required fields, False for optional ‘default’: Any # Default value (only for optional fields)
}
- Return type:
List of field requirement dictionaries with format
- extract_field_constraints(config_class, field_name)[source]¶
Return the closed-value constraint for one field, or None if unconstrained.
Prefers the DRIFT-PROOF Literal/Enum annotation; falls back to scraping the
allowed = {...}set from the field’s@field_validatorsource (the common cursus pattern). Shape:{allowed_values: [...], case_sensitive: bool, source: 'literal'|'validator'}.
- extract_non_inherited_fields(derived_class, base_class)[source]¶
Extract fields from derived class that are not inherited from base class.