idmtools.entities.itask module#
Defines our ITask interface.
Copyright 2021, Bill & Melinda Gates Foundation. All rights reserved.
- class idmtools.entities.itask.ITask(command: str | ~idmtools.entities.command_line.CommandLine = <property object>, platform_requirements: ~typing.Set[~idmtools.entities.platform_requirements.PlatformRequirements] = <factory>, _ITask__pre_creation_hooks: ~typing.List[~typing.Callable[[Simulation | IWorkflowItem, IPlatform], ~typing.NoReturn]] = <factory>, _ITask__post_creation_hooks: ~typing.List[~typing.Callable[[Simulation | IWorkflowItem, IPlatform], ~typing.NoReturn]] = <factory>, common_assets: ~idmtools.assets.asset_collection.AssetCollection = <factory>, transient_assets: ~idmtools.assets.asset_collection.AssetCollection = <factory>)[source]#
Bases:
object
ITask represents a task to be ran on a remote system.
A Task should provide all the files and command needed to run remotely.
- platform_requirements: Set[PlatformRequirements]#
- common_assets: AssetCollection#
Common(Experiment-level) assets
- transient_assets: AssetCollection#
Transient(Simulation-level) assets
- property command#
The Command to run
- property metadata_fields#
Collect all metadata fields.
Returns: set of metadata filed names
- add_pre_creation_hook(hook: Callable[[Simulation | IWorkflowItem, IPlatform], NoReturn])[source]#
Called before a simulation is created on a platform. Each hook receives either a Simulation or WorkflowTask.
- Parameters:
hook – Function to call on event
- Returns:
None
- add_post_creation_hook(hook: Callable[[Simulation | IWorkflowItem, IPlatform], NoReturn])[source]#
Called after a simulation has been created on a platform. Each hook receives either a Simulation or WorkflowTask.
- Parameters:
hook – Function to call on event
- Returns:
None
- add_platform_requirement(requirement: PlatformRequirements | str) NoReturn [source]#
Adds a platform requirements to a task.
- Parameters:
requirement – Requirement to add task
- Returns:
None
- pre_creation(parent: Simulation | IWorkflowItem, platform: IPlatform)[source]#
Optional Hook called at the time of creation of task. Can be used to setup simulation and experiment level hooks.
- Parameters:
parent – Parent of Item
platform – Platform executing the task. Useful for querying platform before execution
- Returns:
None
- post_creation(parent: Simulation | IWorkflowItem, platform: IPlatform)[source]#
Optional Hook called at the after creation task. Can be used to setup simulation and experiment level hooks.
- Parameters:
parent – Parent of Item
platform – Platform executing the task. Useful for querying platform before execution
- Returns:
None
- abstract gather_common_assets() AssetCollection [source]#
Function called at runtime to gather all assets in the collection.
- abstract gather_transient_assets() AssetCollection [source]#
Function called at runtime to gather all assets in the collection.
- gather_all_assets() AssetCollection [source]#
Collect all common and transient assets.
Returns: new AssetCollection
- copy_simulation(base_simulation: Simulation) Simulation [source]#
Called when copying a simulation for batching. Override you your task has specific concerns when copying simulations.
- reload_from_simulation(simulation: Simulation)[source]#
Optional hook that is called when loading simulations from a platform.
- pre_getstate()[source]#
Return default values for
pickle_ignore_fields()
.Call before pickling.
Returns: dict
- property pickle_ignore_fields#
Pickle ignore fields.
- Returns:
List of fields to ignore
- __init__(command: str | ~idmtools.entities.command_line.CommandLine = <property object>, platform_requirements: ~typing.Set[~idmtools.entities.platform_requirements.PlatformRequirements] = <factory>, _ITask__pre_creation_hooks: ~typing.List[~typing.Callable[[Simulation | IWorkflowItem, IPlatform], ~typing.NoReturn]] = <factory>, _ITask__post_creation_hooks: ~typing.List[~typing.Callable[[Simulation | IWorkflowItem, IPlatform], ~typing.NoReturn]] = <factory>, common_assets: ~idmtools.assets.asset_collection.AssetCollection = <factory>, transient_assets: ~idmtools.assets.asset_collection.AssetCollection = <factory>) None #