models.workflow.Workflow, Transition and Status¶
- class Workflow(json, **kwargs)[source]¶
Workflow object.
Initialize a Workflow Object.
- edit(name: str = <pykechain.utils.Empty object>, description: str = <pykechain.utils.Empty object>, *args, **kwargs) None [source]¶
Change the workflow object.
Change the name and description of a workflow. It is also possible to update the workflow options and also the ‘active’ flag. To change the active flag of the workflow we kindly refer to the activate() and deactivate() methods on the workflow.
- classmethod list(client: Client, **kwargs) List[Workflow] [source]¶
Retrieve a list of Workflow objects through the client.
- classmethod get(client: Client, **kwargs) Workflow [source]¶
Retrieve a single Workflow object using the client.
- classmethod create(client: Client, name: str, scope: Scope | str | UUID, category: WorkflowCategory = 'DEFINED', description: str = None, options: dict = None, active: bool = False, **kwargs) Workflow [source]¶
Create a new Workflow object using the client.
- Parameters:
client – Client object.
name – Name of the workflow
scope – Scope of the workflow
category – (optional) category of the workflow, defaults to WorkflowCategory.DEFINED
description – (optional) description of the workflow
options – (optional) JSON/dictionary with workflow options
active – (optional) boolean flag to set the workflow to active. Defaults to False
kwargs – (optional) additional kwargs.
- Returns:
a Workflow object
- Raises:
APIError – When the Workflow could not be created.
- transition(value: str | None = None, attr: str | None = None) Transition [source]¶
Retrieve the Transition belonging to this workflow based on its name, ref or uuid.
- Parameters:
value – transition name, ref or UUID to search for
attr – the attribute to match on. E.g. to_status=<Status Obj>
- Returns:
a single
Transition
- Raises:
NotFoundError – if the Transition is not part of the Workflow
:raises MultipleFoundError
Example
>>> workflow = project.workflow('Simple Flow') >>> transition = workflow.transition('in progress') >>> todo_status = client.status(name="To Do") >>> transition = workflow.transition(todo_status, attr="to_status")
- property transitions¶
Retrieve the Transitions belonging to this workflow.
- Returns:
multiple
Transition
- status(value: str | None = None, attr: str | None = None) Status [source]¶
Retrieve the Status belonging to this workflow based on its name, ref or uuid.
- Parameters:
value – status name, ref or UUID to search for
attr – the attribute to match on.
- Returns:
a single
Status
- Raises:
NotFoundError – if the Status is not part of the Workflow
:raises MultipleFoundError
Example
>>> workflow = project.workflow('Simple Flow') >>> status = workflow.status('To Do')
- clone(target_scope: Scope = <pykechain.utils.Empty object>, name: str | None = <pykechain.utils.Empty object>, description: str | None = <pykechain.utils.Empty object>) Workflow [source]¶
Clone the current workflow into a new workflow.
Also used to ‘import’ a catalog workflow into a scope.
- Parameters:
target_scope – (optional) target scope where to clone the Workflow to. Defaults current scope.
name – (optional) name of the new workflow
description – (optional) description of the new workflow
- update_transition(transition: ~pykechain.models.workflow.Transition | str | ~uuid.UUID, name: str | None = <pykechain.utils.Empty object>, description: str | None = <pykechain.utils.Empty object>, from_status: ~typing.List[str] | None = <pykechain.utils.Empty object>) Transition [source]¶
Update a specific Transition in the current workflow.
Update the transition inside the worfklow based on a transition_id.
- Parameters:
transition – Transition object or transition id to alter
name – (optional) name to change
description – (optional) description to change
from_status – (optional) a list of from statuses to update
- delete_transition(transition: Transition | str | UUID) None [source]¶
Remove Transition from the current Workflow and delete it.
If the Transition is still connected to other Workflows, it will not be removed, and will result in a 400 reporting all attached Workflows.
- Parameters:
transition – object or uuid of a transition to delete.
- create_transition(name: str, to_status: ~pykechain.models.workflow.Status | str | ~uuid.UUID, transition_type: ~pykechain.enums.TransitionType = 'GLOBAL', from_status: ~typing.List[str | ~uuid.UUID | ~pykechain.models.workflow.Status] | None = <pykechain.utils.Empty object>, description: str | None = <pykechain.utils.Empty object>)[source]¶
Create a new Transition and associate it to the current Workflow.
- Parameters:
name – name of the transition.
to_status – status where to transition to (a single status or status id)
transition_type – transition type to transition to. (defaults to Global)
from_status – (optional) status to transition from. Not used for Global transitions.
description – (optional) description.
- create_status(name: str, category: ~pykechain.enums.StatusCategory = 'UNDEFINED', description: str | None = <pykechain.utils.Empty object>) Status [source]¶
Create a new Status.
Will create a new status, a new global transition to that status and will link the new Global transition to that status to the current workflow.
- Parameters:
name – name of the status
category – status category (defaults to UNDEFINED)
description – (optional) description of the status
- link_transitions(transitions: List[Transition | str | UUID])[source]¶
Link a list of Transitions to a Workflow.
- Parameters:
transitions – a list of Transition Objects or transition_ids to link to the workflow.
- unlink_transitions(transitions: List[Transition | str | UUID]) None [source]¶
Unlink a list of Transitions to a Workflow.
- Parameters:
transitions – a list of Transition Objects or transition_ids to link to the workflow.
- class Transition(json, **kwargs)[source]¶
Transition Object.
Initialise a Transition object.
- classmethod list(client: Client, **kwargs) List[Transition] [source]¶
Retrieve a list of Transition objects through the client.
- classmethod get(client: Client, **kwargs) Transition [source]¶
Retrieve a Transition object through the client.