seddy

Multi-workflow SWF decider and workflow management service.

Classes

ChildPolicy

Policy for child executions on parent termination.

Registration(active, task_timeout, …)

Workflow registration configuration.

DecisionsBuilder(workflow, task, Any])

SWF decision builder.

Workflow(name, version, description, …)

SWF workflow specification.

DAGBuilder(workflow, task)

SWF decision builder from DAG-type workflow specification.

DAGWorkflow(name, version, task_specs, Any]])

Dag-type SWF workflow specification.

Functions

load_workflows(workflows_file)

Load workflows specifications file.

class seddy.ChildPolicy[source]

Bases: enum.Enum

Policy for child executions on parent termination.

Attributes

ABANDON

str(object=’’) -> str

REQUEST_CANCEL

str(object=’’) -> str

TERMINATE

str(object=’’) -> str

ABANDON = 'ABANDON'
REQUEST_CANCEL = 'REQUEST_CANCEL'
TERMINATE = 'TERMINATE'
class seddy.Registration(active: bool = True, task_timeout: Union[int, str] = None, execution_timeout: int = None, task_list: str = None, task_priority: int = None, child_policy: seddy._specs._base.ChildPolicy = None, lambda_role: str = None)[source]

Bases: object

Workflow registration configuration.

Parameters
  • active – registration status, False for deprecated

  • task_timeout – default decision task time-out (seconds), or “NONE” for unlimited

  • execution_timeout – default workflow execution time-out (seconds)

  • task_list – default decision task-list

  • task_priority – default decision task priority

  • child_policy – default policy for child executions upon parent execution termination

  • lambda_role – default IAM role for Lambda access

Methods

from_spec(spec, Any])

Construct registration configuration from specification.

classmethod from_spec(spec: Dict[str, Any])[source]

Construct registration configuration from specification.

Parameters

spec – workflow registration configuration specification

class seddy.DecisionsBuilder(workflow: seddy._specs._base.Workflow, task: Dict[str, Any])[source]

Bases: object

SWF decision builder.

Parameters
  • workflow – workflow specification

  • task – decision task

Methods

build_decisions()

Build decisions from workflow history.

abstract build_decisions()[source]

Build decisions from workflow history.

class seddy.Workflow(name: str, version: str, description: str = None, registration: seddy._specs._base.Registration = None)[source]

Bases: object

SWF workflow specification.

Parameters
  • name – workflow name

  • version – workflow version

  • registration – workflow registration configuration

Attributes

decisions_builder

spec_type

Methods

from_spec(spec, Any])

Construct workflow type from specification.

make_decisions(task, Any])

Build decisions from workflow history.

setup()

Set up workflow specification.

abstract property decisions_builder
classmethod from_spec(spec: Dict[str, Any])[source]

Construct workflow type from specification.

Parameters

spec – workflow specification

make_decisions(task: Dict[str, Any]) → List[Dict[str, Any]][source]

Build decisions from workflow history.

Parameters

task – decision task

Returns

workflow decisions

setup()[source]

Set up workflow specification.

Useful for pre-calculation or other initialisation.

abstract property spec_type
class seddy.DAGBuilder(workflow: seddy._specs._dag.DAGWorkflow, task)[source]

Bases: seddy._specs._base.DecisionsBuilder

SWF decision builder from DAG-type workflow specification.

Methods

build_decisions()

Build decisions from workflow history.

build_decisions()[source]

Build decisions from workflow history.

class seddy.DAGWorkflow(name, version, task_specs: List[Dict[str, Any]], description=None)[source]

Bases: seddy._specs._base.Workflow

Dag-type SWF workflow specification.

Parameters
  • name – workflow name

  • version – workflow version

  • task_specs – DAG task specifications

Classes

decisions_builder

SWF decision builder from DAG-type workflow specification.

Methods

setup()

Set up workflow specification.

Attributes

spec_type

str(object=’’) -> str

decisions_builder

alias of DAGBuilder

setup()[source]

Set up workflow specification.

Useful for pre-calculation or other initialisation.

spec_type = 'dag'
seddy.load_workflows(workflows_file: pathlib.Path) → List[seddy._specs._base.Workflow][source]

Load workflows specifications file.

Determines load method from the file suffix. Supported file types:

  • JSON

  • YAML

Parameters

workflows_file – workflows specifications file path

Returns

workflows specifications