dataflow.platform.models.base¶
Base Platform Models - Foundation Layer
This module provides the foundation platform model for all Haive systems with intelligent inheritance patterns. All platform models inherit from BasePlatform to ensure consistent behavior and capabilities.
Key Features: - Pure Pydantic models (no __init__ methods) - Platform-based inheritance architecture - Intelligent design patterns with composition - Comprehensive validation and field management
Classes¶
Foundation platform model for all Haive systems. |
|
Platform operational status. |
Module Contents¶
- class dataflow.platform.models.base.BasePlatform(/, **data: Any)¶
Bases:
pydantic.BaseModelFoundation platform model for all Haive systems.
This is the base class that all platform models inherit from, providing: - Core platform identification and metadata - Standard configuration and state management - Lifecycle tracking (created_at, updated_at, status) - Capability flags for different platform features - Comprehensive validation for platform fields
Design Philosophy: - Pure Pydantic model (no __init__ method) - All configuration via Field definitions - Validation through field validators - Extensible through inheritance
Examples
Basic platform creation:
platform = BasePlatform( platform_id="my-platform", platform_name="My Platform", description="A sample platform" )
With capabilities:
platform = BasePlatform( platform_id="advanced-platform", platform_name="Advanced Platform", description="Platform with enhanced capabilities", supports_discovery=True, supports_health_monitoring=True, supports_authentication=True )
- add_metadata(key: str, value: Any) None¶
Add metadata entry to platform.
- Parameters:
key – Metadata key
value – Metadata value
- get_capability_summary() Dict[str, bool]¶
Get summary of all platform capabilities.
- Returns:
Dictionary mapping capability names to their status
- update_status(new_status: PlatformStatus, update_timestamp: bool = True) None¶
Update platform status and optionally timestamp.
- Parameters:
new_status – New platform status
update_timestamp – Whether to update the updated_at timestamp
- classmethod validate_platform_id(v: str) str¶
Validate platform ID format.
Platform IDs must be: - Lowercase only - Alphanumeric characters - Hyphens (-) and underscores (_) allowed - No spaces or special characters
- Parameters:
v – Platform ID to validate
- Returns:
Validated platform ID
- Raises:
ValueError – If platform ID format is invalid
- classmethod validate_version(v: str) str¶
Validate semantic version format.
Versions must follow semantic versioning (semver) format: - MAJOR.MINOR.PATCH - Optional pre-release: 1.0.0-beta.1 - Optional build metadata: 1.0.0+20210101
- Parameters:
v – Version string to validate
- Returns:
Validated version string
- Raises:
ValueError – If version format is invalid
- created_at: datetime.datetime = None¶
- model_config¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- status: PlatformStatus = None¶
- updated_at: datetime.datetime | None = None¶