class_docstr: A trigger that fires exactly once after it finds the requested file or folder.
  
  :param filepath: File or folder name (relative to the base path set within the connection), can
      be a glob.
  :param recursive: when set to ``True``, enables recursive directory matching behavior of
      ``**`` in glob filepath parameter. Defaults to ``False``.
class_docstr_tok: ["A","trigger","that","fires","exactly","once","after","it","finds","the","requested","file","or","folder",".",":","param","filepath",":","File","or","folder","name","(","relative","to","the","base","path","set","within","the","connection",")",",","can","be","a","glob",".",":","param","recursive",":","when","set","to","``","True","``",",","enables","recursive","directory","matching","behavior","of","``","*","*","``","in","glob","filepath","parameter",".","Defaults","to","``","False","``","."]
code: def __init__(
      self,
      filepath: str,
      recursive: bool = False,
      poll_interval: float = 5.0,
  ):
      super().__init__()
      self.filepath = filepath
      self.recursive = recursive
      self.poll_interval = poll_interval
  
file_path: airflow/airflow/triggers/file.py
imports: from __future__ import annotations
  import asyncio
  import datetime
  import os
  import typing
  from glob import glob
  from typing import Any
  from airflow.triggers.base import BaseTrigger, TriggerEvent
label_desc: Use image node_id 1 to create a new FileTrigger object from inherited base classes: BaseTrigger with example: obj = FileTrigger(filepath, recursive, poll_interval)