code: def filter_keys(self, **kwargs):
          "Return a set of keys filtered according to the given arguments."
          self._used_index = False
          keys = set(self.data.keys())
          for key_filter, v_filter in kwargs.items():
              if key_filter in self.indexes:
                  self._used_index = True
                  if v_filter not in self.indexes[key_filter]:
                      keys = set([])
                  else:
                      keys = keys.intersection(
                          self.indexes[key_filter][v_filter])
              else:
                  keys = keys.intersection(
                      self.simple_filter(key_filter, v_filter))
          return keyf filter_keys(self, **kwargs):
          "Return a set of keys filtered according to the given arguments."
          self._used_index = False
          keys = set(self.data.keys())
          for key_filter, v_filter in kwargs.items():
              if key_filter in self.indexes:
                  self._used_index = True
                  if v_filter not in self.indexes[key_filter]:
                      keys = set([])
                  else:
                      keys = keys.intersection(
                          self.indexes[key_filter][v_filter])
              else:
                  keys = keys.intersection(
                      self.simple_filter(key_filter, v_filter))
          return keys
docs: Return a set of keys filtered according to the given arguments.