Skip to content

Entity and methods

Task

Bases: UnversionedEntity

A class representing a task.

Source code in digitalhub_core/entities/task/entity.py
class Task(UnversionedEntity):
    """
    A class representing a task.
    """

    ENTITY_TYPE = EntityTypes.TASK.value

    def __init__(
        self,
        project: str,
        uuid: str,
        kind: str,
        metadata: Metadata,
        spec: TaskSpec,
        status: TaskStatus,
        user: str | None = None,
    ) -> None:
        super().__init__(project, uuid, kind, metadata, spec, status, user)
        self.spec: TaskSpec
        self.status: TaskStatus

    ##############################
    #  Task methods
    ##############################

    def run(
        self,
        run_kind: str,
        local_execution: bool = False,
        **kwargs,
    ) -> Run:
        """
        Run task.

        Parameters
        ----------
        run_kind : str
            Kind the object.
        local_execution : bool
            Flag to indicate if the run will be executed locally.
        **kwargs : dict
            Keyword arguments.

        Returns
        -------
        Run
            Run object.
        """
        return self.new_run(
            project=self.project,
            task=self._get_task_string(),
            kind=run_kind,
            local_execution=local_execution,
            **kwargs,
        )

    def _get_task_string(self) -> str:
        """
        Get task string.

        Returns
        -------
        str
            Task string.
        """
        splitted = self.spec.function.split("://")
        return f"{self.kind}://{splitted[1]}"

    ##############################
    # CRUD Methods for Run
    ##############################

    def new_run(self, **kwargs) -> Run:
        """
        Create a new run.

        Parameters
        ----------
        **kwargs : dict
            Keyword arguments.

        Returns
        -------
        Run
            Run object.
        """
        if kwargs["local_execution"]:
            return run_from_parameters(**kwargs)
        return new_run(**kwargs)

    def get_run(self, entity_key: str) -> Run:
        """
        Get run.

        Parameters
        ----------
        entity_key : str
            Entity key.

        Returns
        -------
        Run
            Run object.
        """
        return get_run(entity_key)

    def delete_run(self, entity_key: str) -> None:
        """
        Delete run.

        Parameters
        ----------
        entity_key : str
            Entity key.

        Returns
        -------
        None
        """
        delete_run(entity_key)

delete_run(entity_key)

Delete run.

Parameters:

Name Type Description Default
entity_key str

Entity key.

required

Returns:

Type Description
None
Source code in digitalhub_core/entities/task/entity.py
def delete_run(self, entity_key: str) -> None:
    """
    Delete run.

    Parameters
    ----------
    entity_key : str
        Entity key.

    Returns
    -------
    None
    """
    delete_run(entity_key)

get_run(entity_key)

Get run.

Parameters:

Name Type Description Default
entity_key str

Entity key.

required

Returns:

Type Description
Run

Run object.

Source code in digitalhub_core/entities/task/entity.py
def get_run(self, entity_key: str) -> Run:
    """
    Get run.

    Parameters
    ----------
    entity_key : str
        Entity key.

    Returns
    -------
    Run
        Run object.
    """
    return get_run(entity_key)

new_run(**kwargs)

Create a new run.

Parameters:

Name Type Description Default
**kwargs dict

Keyword arguments.

{}

Returns:

Type Description
Run

Run object.

Source code in digitalhub_core/entities/task/entity.py
def new_run(self, **kwargs) -> Run:
    """
    Create a new run.

    Parameters
    ----------
    **kwargs : dict
        Keyword arguments.

    Returns
    -------
    Run
        Run object.
    """
    if kwargs["local_execution"]:
        return run_from_parameters(**kwargs)
    return new_run(**kwargs)

run(run_kind, local_execution=False, **kwargs)

Run task.

Parameters:

Name Type Description Default
run_kind str

Kind the object.

required
local_execution bool

Flag to indicate if the run will be executed locally.

False
**kwargs dict

Keyword arguments.

{}

Returns:

Type Description
Run

Run object.

Source code in digitalhub_core/entities/task/entity.py
def run(
    self,
    run_kind: str,
    local_execution: bool = False,
    **kwargs,
) -> Run:
    """
    Run task.

    Parameters
    ----------
    run_kind : str
        Kind the object.
    local_execution : bool
        Flag to indicate if the run will be executed locally.
    **kwargs : dict
        Keyword arguments.

    Returns
    -------
    Run
        Run object.
    """
    return self.new_run(
        project=self.project,
        task=self._get_task_string(),
        kind=run_kind,
        local_execution=local_execution,
        **kwargs,
    )