class_docstr: Wraps around a `Registry`. Disable/enable all the key bindings according to
  the given (additional) filter.::
  
      @Condition
      def setting_is_true(cli):
          return True  # or False
  
      registy = ConditionalRegistry(registry, 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 `Registry` objects.
  :param filter: `CLIFilter` object.
docstr: If the original registry was changed. Update our copy version. 
docstr_tok: ["If","the","original","registry","was","changed",".","Update","our","copy","version","."]
code: def _update_cache(self):
      "If the original registry was changed. Update our copy version."
      expected_version = (
          self.registry._version,
          self._extra_registry._version,
      )
  
      if self._last_version != expected_version:
          registry2 = Registry()
  
          # Copy all bindings from `self.registry`, adding our condition.
          for reg in (self.registry, self._extra_registry):
              for b in reg.key_bindings:
                  registry2.key_bindings.append(
                      _Binding(
                          keys=b.keys,
                          handler=b.handler,
                          filter=self.filter & b.filter,
                          eager=b.eager,
                          save_before=b.save_before,
                      )
                  )
  
          self._registry2 = registry2
          self._last_version = expected_version
  
imports: from __future__ import unicode_literals
  from abc import ABCMeta, abstractmethod
  from prompt_toolkit.cache import SimpleCache
  from prompt_toolkit.filters import CLIFilter, to_cli_filter, Never
  from prompt_toolkit.keys import Key, Keys
  from six import text_type, with_metaclass
label_desc: Use image node_id 2 for calling the ConditionalRegistry obj's underlying member method code with example usage: obj._update_cache() without return types