Ask AI

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_metadata

The applied output metadata.

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

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

property op_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

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)