Types API π
FlowyML exposes a set of shared type definitions β data classes, enums, and typed configuration objects β that flow through the framework. These types enforce a consistent contract between steps, orchestrators, and storage backends, enabling static analysis, IDE auto-completion, and runtime validation. Understanding these types is key to writing well-typed pipelines and custom plugins.
Type definitions used in flowyml.
Resource Requirements
Resource requirements for a pipeline step.
Orchestrator-agnostic resource specification that can be translated to platform-specific formats (Kubernetes, Vertex AI, SageMaker, etc.).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
cpu
|
str | None
|
CPU cores (e.g., "2", "500m", "2.5") |
None
|
memory
|
str | None
|
RAM amount (e.g., "4Gi", "8192Mi", "16G") |
None
|
storage
|
str | None
|
Ephemeral storage (e.g., "100Gi", "50G") |
None
|
gpu
|
GPUConfig | None
|
GPU configuration |
None
|
node_affinity
|
NodeAffinity | None
|
Node selection rules |
None
|
Examples:
>>> # With GPU
>>> resources = ResourceRequirements(cpu="4", memory="16Gi", gpu=GPUConfig(gpu_type="nvidia-tesla-v100", count=2))
>>> # With node affinity
>>> resources = ResourceRequirements(
... cpu="8",
... memory="32Gi",
... node_affinity=NodeAffinity(
... required={"gpu": "true"}, tolerations=[{"key": "nvidia.com/gpu", "operator": "Exists"}]
... ),
... )
Functions
__getitem__(key: str) -> Any
Provide dict-style access for backwards compatibility.
Source code in flowyml/core/resources.py
__post_init__()
Validate resource specifications.
Source code in flowyml/core/resources.py
get_gpu_count() -> int
has_gpu() -> bool
merge_with(other: ResourceRequirements) -> ResourceRequirements
Merge with another ResourceRequirements, taking maximum of each.
This is used when grouping steps to aggregate their resource needs. Strategy: - CPU: Take maximum - Memory: Take maximum - Storage: Take maximum - GPU: Merge configs (max count, best type) - Node affinity: Merge constraints
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
other
|
ResourceRequirements
|
Another ResourceRequirements to merge with |
required |
Returns:
| Type | Description |
|---|---|
ResourceRequirements
|
New ResourceRequirements with merged specifications |
Source code in flowyml/core/resources.py
to_dict() -> dict[str, Any]
Convert to dictionary representation.
Source code in flowyml/core/resources.py
Scheduler Config
Bases: BaseModel
Scheduler configuration.
Functions
from_env() -> SchedulerConfig
classmethod
Load from environment variables.
Source code in flowyml/core/scheduler_config.py
See Also
- Assets API β asset types and metadata classes
- Step API β the
Stepclass and related type hierarchy