You are viewing an outdated version of the documentation.

This documentation is for an older version (1.4.7) of Dagster. You can view the version of this page from our latest release below.

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.

property hook_def

The hook that the context object belongs to.

property instance

The instance configured to run the current job.

property job_name

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

property log

Centralized log dispatch from user code.

property op_config

The parsed config specific to this op.

property op_exception

The thrown exception in a failed op.

property op_output_values

Computed output values in an op.

property required_resource_keys

Resources required by this hook.

property resources

Resources available in the hook context.

property run_id

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

property step_key

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

dagster.build_hook_context(resources=None, op=None, run_id=None, job_name=None, op_exception=None, instance=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.

  • instance (Optional[DagsterInstance]) – The Dagster instance configured to run the hook.

Examples

context = build_hook_context()
hook_to_invoke(context)

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