airflow.contrib.sensors.imap_attachment_sensor

This module allows you to poke for attachments on a mail server.

Module Contents

class airflow.contrib.sensors.imap_attachment_sensor.ImapAttachmentSensor(attachment_name, check_regex=False, mail_folder='INBOX', mail_filter='All', conn_id='imap_default', *args, **kwargs)[source]

Bases: airflow.sensors.base_sensor_operator.BaseSensorOperator

Waits for a specific attachment on a mail server.

Parameters
  • attachment_name (str) – The name of the attachment that will be checked.

  • check_regex (bool) – If set to True the attachment’s name will be parsed as regular expression. Through this you can get a broader set of attachments that it will look for than just only the equality of the attachment name.

  • mail_folder (str) – The mail folder in where to search for the attachment.

  • mail_filter (str) – If set other than ‘All’ only specific mails will be checked. See imaplib.IMAP4.search() for details.

  • conn_id (str) – The connection to run the sensor against.

template_fields = ['attachment_name', 'mail_filter'][source]
poke(self, context)[source]

Pokes for a mail attachment on the mail server.

Parameters

context (dict) – The context that is being provided when poking.

Returns

True if attachment with the given name is present and False if not.

Return type

bool