cursus.registry.hybrid.models¶
Simplified Data Models for Hybrid Registry System
This module contains essential Pydantic data models for the Phase 3 simplified hybrid registry system with optimized validation using enums.
Models: - StepDefinition: Core step definition with registry metadata - ResolutionContext: Context for step resolution - StepResolutionResult: Result of step resolution - RegistryValidationResult: Results of registry validation - ConflictAnalysis: Basic analysis of step name conflicts
- class RegistryType(*values)[source]¶
-
Registry type enumeration for automatic validation.
- CORE = 'core'¶
- WORKSPACE = 'workspace'¶
- OVERRIDE = 'override'¶
- class ResolutionMode(*values)[source]¶
-
Resolution mode enumeration for automatic validation.
- AUTOMATIC = 'automatic'¶
- INTERACTIVE = 'interactive'¶
- STRICT = 'strict'¶
- class ResolutionStrategy(*values)[source]¶
-
Resolution strategy enumeration for automatic validation.
- WORKSPACE_PRIORITY = 'workspace_priority'¶
- FRAMEWORK_MATCH = 'framework_match'¶
- ENVIRONMENT_MATCH = 'environment_match'¶
- MANUAL = 'manual'¶
- HIGHEST_PRIORITY = 'highest_priority'¶
- CORE_FALLBACK = 'core_fallback'¶
- class ConflictType(*values)[source]¶
-
Conflict type enumeration for automatic validation.
- NAME_CONFLICT = 'name_conflict'¶
- FRAMEWORK_CONFLICT = 'framework_conflict'¶
- VERSION_CONFLICT = 'version_conflict'¶
- WORKSPACE_CONFLICT = 'workspace_conflict'¶
- class StepDefinition(*, name, registry_type, config_class=None, spec_type=None, sagemaker_step_type=None, builder_step_name=None, description=None, framework=None, job_types=<factory>, workspace_id=None, override_source=None, priority=100, compatibility_tags=<factory>, framework_version=None, environment_tags=<factory>, conflict_resolution_strategy=ResolutionStrategy.WORKSPACE_PRIORITY, metadata=<factory>)[source]¶
Bases:
BaseModelEnhanced step definition with registry metadata using Pydantic V2 and enum validation.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'frozen': False, 'str_strip_whitespace': True, 'validate_assignment': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- registry_type: RegistryType¶
- conflict_resolution_strategy: ResolutionStrategy¶
- class ResolutionContext(*, workspace_id=None, preferred_framework=None, environment_tags=<factory>, resolution_mode=ResolutionMode.AUTOMATIC, resolution_strategy=ResolutionStrategy.WORKSPACE_PRIORITY)[source]¶
Bases:
BaseModelContext for step resolution and conflict resolution using Pydantic V2 and enum validation.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'frozen': False, 'validate_assignment': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- resolution_mode: ResolutionMode¶
- resolution_strategy: ResolutionStrategy¶
- class StepResolutionResult(*, step_name, resolved, selected_definition=None, reason=None, conflicting_definitions=<factory>, source_registry, resolution_strategy, workspace_id=None, conflict_detected=False, conflict_analysis=None, errors=<factory>, warnings=<factory>, resolution_metadata=<factory>, **extra_data)[source]¶
Bases:
BaseModelResult of step conflict resolution using Pydantic V2.
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': False, 'validate_assignment': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- selected_definition: StepDefinition | None¶
- conflicting_definitions: List[StepDefinition]¶
- conflict_analysis: ConflictAnalysis | None¶
- class RegistryValidationResult(*, is_valid, registry_type='unknown', issues=<factory>, errors=<factory>, warnings=<factory>, step_count=0, **extra_data)[source]¶
Bases:
BaseModelResults of registry validation using Pydantic V2.
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': False, 'validate_assignment': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class ConflictAnalysis(*, step_name, conflicting_definitions=<factory>, resolution_strategies=<factory>, recommended_strategy=None, impact_assessment=None, conflicting_sources, resolution_strategy, workspace_context=None, conflict_type='name_conflict', **extra_data)[source]¶
Bases:
BaseModelAnalysis of a step name conflict using Pydantic V2.
- model_config: ClassVar[ConfigDict] = {'extra': 'allow', 'frozen': False, 'validate_assignment': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- conflicting_definitions: List[StepDefinition]¶