class_docstr: Waits for one or multiple keys (a file-like instance on S3) to be present in a S3 bucket.
  
  The path is just a key/value pointer to a resource for the given S3 path.
  Note: S3 does not support folders directly, and only provides key/value pairs.
  
  .. seealso::
      For more information on how to use this sensor, take a look at the guide:
      :ref:`howto/sensor:S3KeySensor`
  
  :param bucket_key: The key(s) being waited on. Supports full s3:// style url
      or relative path from root level. When it's specified as a full s3://
      url, please leave bucket_name as `None`
  :param bucket_name: Name of the S3 bucket. Only needed when ``bucket_key``
      is not provided as a full ``s3://`` url. When specified, all the keys passed to ``bucket_key``
      refers to this bucket
  :param wildcard_match: whether the bucket_key should be interpreted as a
      Unix wildcard pattern
  :param check_fn: Function that receives the list of the S3 objects,
      and returns a boolean:
      - ``True``: the criteria is met
      - ``False``: the criteria isn't met
      **Example**: Wait for any S3 object size more than 1 megabyte  ::
  
          def check_fn(files: List) -> bool:
              return any(f.get('Size', 0) > 1048576 for f in files)
  :param aws_conn_id: a reference to the s3 connection
  :param verify: Whether to verify SSL certificates for S3 connection.
      By default, SSL certificates are verified.
      You can provide the following values:
  
      - ``False``: do not validate SSL certificates. SSL will still be used
               (unless use_ssl is False), but SSL certificates will not be
               verified.
      - ``path/to/cert/bundle.pem``: A filename of the CA cert bundle to uses.
               You can specify this argument if you want to use a different
               CA cert bundle than the one used by botocore.
  :param deferrable: Run operator in the deferrable mode
  :param use_regex: whether to use regex to check bucket
class_docstr_tok: ["Waits","for","one","or","multiple","keys","(","a","file-like","instance","on","S3",")","to","be","present","in","a","S3","bucket",".","The","path","is","just","a","key\/value","pointer","to","a","resource","for","the","given","S3","path",".","Note",":","S3","does","not","support","folders","directly",",","and","only","provides","key\/value","pairs",".","..","seealso",":",":","For","more","information","on","how","to","use","this","sensor",",","take","a","look","at","the","guide",":",":","ref",":","`","howto\/sensor",":","S3KeySensor","`",":","param","bucket_key",":","The","key","(","s",")","being","waited","on",".","Supports","full","s3",":","\/\/","style","url","or","relative","path","from","root","level",".","When","it","'s","specified","as","a","full","s3",":","\/\/","url",",","please","leave","bucket_name","as","`","None","`",":","param","bucket_name",":","Name","of","the","S3","bucket",".","Only","needed","when","``","bucket_key","``","is","not","provided","as","a","full","``","s3",":","\/\/","``","url",".","When","specified",",","all","the","keys","passed","to","``","bucket_key","``","refers","to","this","bucket",":","param","wildcard_match",":","whether","the","bucket_key","should","be","interpreted","as","a","Unix","wildcard","pattern",":","param","check_fn",":","Function","that","receives","the","list","of","the","S3","objects",",","and","returns","a","boolean",":","-","``","True","``",":","the","criteria","is","met","-","``","False","``",":","the","criteria","is","n't","met","*","*","Example","*","*",":","Wait","for","any","S3","object","size","more","than","1","megabyte",":",":","def","check_fn","(","files",":","List",")","-",">","bool",":","return","any","(","f.get","(","'Size","'",",","0",")",">","1048576","for","f","in","files",")",":","param","aws_conn_id",":","a","reference","to","the","s3","connection",":","param","verify",":","Whether","to","verify","SSL","certificates","for","S3","connection",".","By","default",",","SSL","certificates","are","verified",".","You","can","provide","the","following","values",":","-","``","False","``",":","do","not","validate","SSL","certificates",".","SSL","will","still","be","used","(","unless","use_ssl","is","False",")",",","but","SSL","certificates","will","not","be","verified",".","-","``","path\/to\/cert\/bundle.pem","``",":","A","filename","of","the","CA","cert","bundle","to","uses",".","You","can","specify","this","argument","if","you","want","to","use","a","different","CA","cert","bundle","than","the","one","used","by","botocore",".",":","param","deferrable",":","Run","operator","in","the","deferrable","mode",":","param","use_regex",":","whether","to","use","regex","to","check","bucket"]
docstr: Airflow runs this method on the worker and defers using the trigger.
docstr_tok: ["Airflow","runs","this","method","on","the","worker","and","defers","using","the","trigger","."]
code: def execute(self, context: Context) -> None:
      """Airflow runs this method on the worker and defers using the trigger."""
      if not self.deferrable:
          super().execute(context)
      else:
          if not self.poke(context=context):
              self._defer()
  
imports: from __future__ import annotations
  import fnmatch
  import os
  import re
  from datetime import datetime, timedelta
  from functools import cached_property
  from typing import TYPE_CHECKING, Any, Callable, Sequence, cast
  from deprecated import deprecated
  from airflow.configuration import conf
  from airflow.exceptions import AirflowException, AirflowProviderDeprecationWarning, AirflowSkipException
  from airflow.providers.amazon.aws.hooks.s3 import S3Hook
  from airflow.providers.amazon.aws.triggers.s3 import S3KeysUnchangedTrigger, S3KeyTrigger
  from airflow.sensors.base import BaseSensorOperator, poke_mode_only
label_desc: Use image node_id 4 for calling the S3KeySensor obj's underlying member method code with example usage: obj.execute(context) without return types