ogdc_runner.models package¶
OGDC Runner Pydantic models.
- class ogdc_runner.models.ExecutionFunction(**data: Any) None¶
Bases:
OgdcBaseModelRepresents a function or command to execute in parallel.
Exactly one of command or function must be specified.
- name¶
Unique identifier for this execution function
- command¶
Shell command to execute (for shell workflows)
- function¶
Python callable (for Hera @script decorated functions)
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_post_init(_ExecutionFunction__context: Any) None¶
Validate that exactly one execution type is specified.
- Raises:
ValueError – If zero or multiple execution types are specified
- Parameters:
_ExecutionFunction__context (
Any)- Return type:
- class ogdc_runner.models.FilePartition(**data: Any) None¶
Bases:
OgdcBaseModelRepresents a partition of input files for parallel execution.
Each partition represents a unit of work executed in a separate container/task.
- partition_id¶
Unique identifier for this partition
- files¶
File paths or URLs to process in this partition
- execution_function¶
Name of the ExecutionFunction to run
- metadata¶
Additional metadata (e.g., num_files, size)
- Parameters:
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class ogdc_runner.models.OgdcBaseModel(**data: Any) None¶
Bases:
BaseModelBase pydantic model for the ogdc-runner.
- Parameters:
data (
Any)
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class ogdc_runner.models.ParallelConfig(**data: Any) None¶
Bases:
OgdcBaseModelConfiguration for parallel execution behavior.
- enabled¶
Whether parallel execution is enabled
- partition_strategy¶
Strategy for dividing work (“files” or “file_chunks”)
- partition_size¶
Number of files per partition; None means use the orchestrator default (typically 1 000)
- max_parallelism¶
Maximum number of concurrent Argo pods across all parallel stages; None means no cap beyond the cluster default
- Parameters:
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class ogdc_runner.models.RecipeConfig(**data: Any) None¶
Bases:
RecipeMetaModel for a recipe’s configuration.
This includes the data in meta.yaml, plus some internal metadata/config that is generated dynamically at runtime (e.g., recipe_directory).
- Parameters:
data (
Any)name (str)
workflow (ShellWorkflow | VizWorkflow)
input (RecipeInput)
output (DataOneRecipeOutput | TemporaryRecipeOutput | PvcRecipeOutput)
recipe_directory (Path)
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class ogdc_runner.models.RecipeImage(**data: Any) None¶
Bases:
OgdcBaseModelImage configuration for the recipe.
Supports both local and hosted Docker images.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class ogdc_runner.models.RecipeMeta(**data: Any) None¶
Bases:
OgdcBaseModelModel for a recipe’s metadata (meta.yaml).
- Parameters:
data (
Any)name (str)
workflow (ShellWorkflow | VizWorkflow)
input (RecipeInput)
output (DataOneRecipeOutput | TemporaryRecipeOutput | PvcRecipeOutput)
- input: RecipeInput¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- output: DataOneRecipeOutput | TemporaryRecipeOutput | PvcRecipeOutput¶
- workflow: ShellWorkflow | VizWorkflow¶
Submodules¶
- ogdc_runner.models.base module
- ogdc_runner.models.parallel_config module
- ogdc_runner.models.recipe_config module