Exemplo n.º 1
0
    def _reduce(self, keys):
        try:
            metadata_for_keys = [
                self._keymap[self._keys[key] if int in
                             key.__class__.__mro__ else key] for key in keys
            ]
        except KeyError as ke:
            self._key_fallback(ke.args[0], ke, True)

        indexes, new_keys, extra = zip(*metadata_for_keys)

        if self._translated_indexes:
            indexes = [self._translated_indexes[idx] for idx in indexes]

        tup = tuplegetter(*indexes)

        new_metadata = SimpleResultMetaData(
            new_keys,
            extra=extra,
            _tuplefilter=tup,
            _translated_indexes=indexes,
            _processors=self._processors,
            _unique_filters=self._unique_filters,
        )

        return new_metadata
Exemplo n.º 2
0
 def __setstate__(self, state):
     if state["_translated_indexes"]:
         _translated_indexes = state["_translated_indexes"]
         _tuplefilter = tuplegetter(*_translated_indexes)
     else:
         _translated_indexes = _tuplefilter = None
     self.__init__(
         state["_keys"],
         _translated_indexes=_translated_indexes,
         _tuplefilter=_tuplefilter,
     )