Hooks

@dagster.success_hook(hook_fn=None, *, 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

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

op_config

The parsed config specific to this op.

Type

Any

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

op_exception

The thrown exception in a failed op.

Type

Optional[BaseException]

op_output_values

Computed output values in an op.

Type

Dict

dagster.build_hook_context(resources=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.

  • op (Optional[OpDefinition, PendingNodeInvocation]) – The op 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)