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)¶
Bases:
pydantic.BaseModel
Foundation 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 )
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
- Parameters:
data (Any)
- add_metadata(key, value)¶
Add metadata entry to platform.
- Parameters:
key (str) – Metadata key
value (Any) – Metadata value
- Return type:
None
- get_capability_summary()¶
Get summary of all platform capabilities.
- update_status(new_status, update_timestamp=True)¶
Update platform status and optionally timestamp.
- Parameters:
new_status (PlatformStatus) – New platform status
update_timestamp (bool) – Whether to update the updated_at timestamp
- Return type:
None
- classmethod validate_platform_id(v)¶
Validate platform ID format.
Platform IDs must be: - Lowercase only - Alphanumeric characters - Hyphens (-) and underscores (_) allowed - No spaces or special characters
- Parameters:
v (str) – Platform ID to validate
- Returns:
Validated platform ID
- Raises:
ValueError – If platform ID format is invalid
- Return type:
- classmethod validate_version(v)¶
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 (str) – Version string to validate
- Returns:
Validated version string
- Raises:
ValueError – If version format is invalid
- Return type:
- model_config¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].