Source code for kappa_sdk.user_tasks.simulation.simulated_user_task
from typing import List, Optional
from ...plot import Plot
from ...user_task import UserTask
from ...data import Data
from ...well import Well
from ...file import File
from ...document import Document
[docs]
class SimulatedUserTask(UserTask):
""" User task object.
Presents a KAPPA Automate user task information object.
"""
# noinspection PyMissingConstructor
def __init__(self, well: Well, name: str, outputs: List[Data]):
self.__well: Well = well
self.__outputs: List[Data] = outputs
self.__name: str = name
def create_plot(self, plot_name: str, pane_name: Optional[str] = None, square_log_cycles: bool = False, stacked_bars: bool = False,
x_label: str = "", is_x_log: bool = False, labels: Optional[List[str]] = None) -> Plot:
plot = self.__well.create_plot(plot_name, pane_name, square_log_cycles, stacked_bars, x_label, is_x_log, labels)
self.__well.plots.append(plot)
return plot
@property
def plots(self) -> List[Plot]:
""" Gets the list of the plot instances of the :class:`UserTask`.
"""
return self.__well.plots
@property
def files(self) -> List[File]:
""" Gets the list of the files under this :class:`UserTask`."""
return self.__well.files
@property
def documents(self) -> List[Document]:
""" Gets the list of the documents under this :class:`UserTask`."""
return self.__well.documents
@property
def outputs(self) -> List[Data]:
""" Gets the list of outputs of the :class:`UserTask`.
"""
return self.__outputs
def rename(self, new_name: str) -> None:
""" Rename the User Task"""
print("You cannot rename a simulated user task since it does not exist as a real object in the cluster")
pass
def delete(self) -> None:
""" Delete the User Task"""
print("You cannot delete a simulated user task since it does not exist as a real object in the cluster")
pass
@property
def user_task_instance_id(self) -> None: # type:ignore[override]
""" Gets the user task id (processing service) of the :class:`UserTask` object. Since we are in simulation mode it is None"""
return None
@property
def name(self) -> str:
""" Gets the name of the :class:`UserTask`.
"""
return self.__name
@property
def id(self) -> str:
""" Gets the id of the :class:`UserTask` object"""
return self.__well.id
@property
def workflow_id(self) -> Optional[str]:
""" Get the custom workflow id of the :class:`UserTask` object. Since we are in simulation mode it is None"""
return None
@property
def user_task_definition_name(self) -> None: # type:ignore[override]
return None
@property
def inputs(self) -> None: # type:ignore[override]
"""
Retrieves the user task inputs.
Returns None in simulation mode"""
return None