class_docstr: Key binding: (key sequence + handler + filter).
  (Immutable binding class.)
  
  :param record_in_macro: When True, don't record this key binding when a
      macro is recorded.
code: def __init__(
      self,
      keys: tuple[Keys | str, ...],
      handler: KeyHandlerCallable,
      filter: FilterOrBool = True,
      eager: FilterOrBool = False,
      is_global: FilterOrBool = False,
      save_before: Callable[[KeyPressEvent], bool] = (lambda e: True),
      record_in_macro: FilterOrBool = True,
  ) -> None:
      self.keys = keys
      self.handler = handler
      self.filter = to_filter(filter)
      self.eager = to_filter(eager)
      self.is_global = to_filter(is_global)
      self.save_before = save_before
      self.record_in_macro = to_filter(record_in_macro)
  
imports: from __future__ import annotations
  from abc import ABCMeta, abstractmethod, abstractproperty
  from inspect import isawaitable
  from typing import TYPE_CHECKING, Any, Callable, Coroutine, Hashable, Sequence, Tuple, TypeVar, Union, cast
  from prompt_toolkit.cache import SimpleCache
  from prompt_toolkit.filters import FilterOrBool, Never, to_filter
  from prompt_toolkit.keys import KEY_ALIASES, Keys
label_desc: Use image node_id 1 to create a new Binding object  with example: obj = Binding(keys, handler, filter, eager, is_global, save_before, record_in_macro)