code: def _is_decorated_correctly(nodes: list[ast.expr]) -> bool:
      """Whether expected decorators are provided.
  
      Three decorators would allow NEW_SESSION usages:
  
      * ``@provide_session``: The canonical case.
      * ``@overload``: A typing overload and not something to actually execute.
      * ``@abstractmethod``: This will be overridden in a subclass anyway.
      """
      # This only accepts those decorators literally. Should be enough?
      return any(
          isinstance(node, ast.Name)
          and node.id in _ALLOWED_DECORATOR_NAMES
          for node in nodes
      )
  
file_path: airflow/scripts/ci/pre_commit/pre_commit_new_session_in_provide_session.py
imports: from __future__ import annotations
  import ast
  import enum
  import itertools
  import pathlib
  import sys
  import typing
label_desc: Use image node_id 3 for calling a global function with example usage: _is_decorated_correctly(nodes) and returns: any