Hooks

@dagster.success_hook(name=None, required_resource_keys=None)[source]

Create a hook on step success events with the specified parameters from the decorated function.

Parameters
  • name (Optional[str]) – The name of this hook.

  • required_resource_keys (Optional[AbstractSet[str]]) – Keys for the resources required by the hook.

Examples

@success_hook(required_resource_keys={'slack'})
def slack_message_on_success(context):
    message = 'op {} succeeded'.format(context.op.name)
    context.resources.slack.send_message(message)

@success_hook
def do_something_on_success(context):
    do_something()
@dagster.failure_hook(name=None, required_resource_keys=None)[source]

Create a hook on step failure events with the specified parameters from the decorated function.

Parameters
  • name (Optional[str]) – The name of this hook.

  • required_resource_keys (Optional[AbstractSet[str]]) – Keys for the resources required by the hook.

Examples

@failure_hook(required_resource_keys={'slack'})
def slack_message_on_failure(context):
    message = 'op {} failed'.format(context.op.name)
    context.resources.slack.send_message(message)

@failure_hook
def do_something_on_failure(context):
    do_something()
class dagster.HookDefinition(name, hook_fn, required_resource_keys=None, decorated_fn=None)[source]

Define a hook which can be triggered during a op execution (e.g. a callback on the step execution failure event during a op execution).

Parameters
  • name (str) – The name of this hook.

  • hook_fn (Callable) – The callback function that will be triggered.

  • required_resource_keys (Optional[AbstractSet[str]]) – Keys for the resources required by the hook.

class dagster.HookContext(step_execution_context, hook_def)[source]

The context object available to a hook function on an DagsterEvent.

log

Centralized log dispatch from user code.

Type

DagsterLogManager

hook_def

The hook that the context object belongs to.

Type

HookDefinition

solid

The solid instance associated with the hook.

Type

Solid

op

The op instance associated with the hook.

Type

Op

step_key

The key for the step where this hook is being triggered.

Type

str

required_resource_keys

Resources required by this hook.

Type

Set[str]

resources

Resources available in the hook context.

Type

Resources

solid_config

The parsed config specific to this solid.

Type

Any

op_config

The parsed config specific to this op.

Type

Any

pipeline_name

The name of the pipeline where this hook is being triggered.

Type

str

job_name

The name of the job where this hook is being triggered.

Type

str

run_id

The id of the run where this hook is being triggered.

Type

str

mode_def

The mode with which the pipeline is being run.

Type

ModeDefinition

op_exception

The thrown exception in a failed op.

Type

Optional[BaseException]

op_output_values

Computed output values in an op.

Type

Dict

property solid_exception

The thrown exception in a failed solid.

Returns

the exception object, None if the solid execution succeeds.

Return type

Optional[BaseException]

property solid_output_values

The computed output values.

Returns a dictionary where keys are output names and the values are:
  • the output values in the normal case

  • a dictionary from mapping key to corresponding value in the mapped case

dagster.build_hook_context(resources=None, mode_def=None, solid=None, op=None, run_id=None, job_name=None, op_exception=None)[source]

Builds hook context from provided parameters.

build_hook_context can be used as either a function or a context manager. If there is a provided resource to build_hook_context that is a context manager, then it must be used as a context manager. This function can be used to provide the context argument to the invocation of a hook definition.

Parameters
  • resources (Optional[Dict[str, Any]]) – The resources to provide to the context. These can either be values or resource definitions.

  • mode_def (Optional[ModeDefinition]) – The mode definition used with the context.

  • op (Optional[OpDefinition, PendingNodeInvocation]) – The op definition which the hook may be associated with.

  • solid (Optional[SolidDefinition, PendingNodeInvocation]) – (legacy) The solid definition which the hook may be associated with.

  • run_id (Optional[str]) – The id of the run in which the hook is invoked (provided for mocking purposes).

  • job_name (Optional[str]) – The name of the job in which the hook is used (provided for mocking purposes).

  • op_exception (Optional[Exception]) – The exception that caused the hook to be triggered.

Examples

context = build_hook_context()
hook_to_invoke(context)

with build_hook_context(resources={"foo": context_manager_resource}) as context:
    hook_to_invoke(context)