class_docstr: Wraps around a `KeyBindings`. Disable/enable all the key bindings according to
  the given (additional) filter.::
  
      @Condition
      def setting_is_true():
          return True  # or False
  
      registry = ConditionalKeyBindings(key_bindings, setting_is_true)
  
  When new key bindings are added to this object. They are also
  enable/disabled according to the given `filter`.
  
  :param registries: List of :class:`.KeyBindings` objects.
  :param filter: :class:`~prompt_toolkit.filters.Filter` object.
docstr: If the original key bindings was changed. Update our copy version.
docstr_tok: ["If","the","original","key","bindings","was","changed",".","Update","our","copy","version","."]
code: def _update_cache(self) -> None:
      "If the original key bindings was changed. Update our copy version."
      expected_version = self.key_bindings._version
  
      if self._last_version != expected_version:
          bindings2 = KeyBindings()
  
          # Copy all bindings from `self.key_bindings`, adding our condition.
          for b in self.key_bindings.bindings:
              bindings2.bindings.append(
                  Binding(
                      keys=b.keys,
                      handler=b.handler,
                      filter=self.filter & b.filter,
                      eager=b.eager,
                      is_global=b.is_global,
                      save_before=b.save_before,
                      record_in_macro=b.record_in_macro,
                  )
              )
  
          self._bindings2 = bindings2
          self._last_version = expected_version
  
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 2 for calling the ConditionalKeyBindings obj's underlying member method code with example usage: obj._update_cache() without return types