def _processMicrodescriptorBlockResult(self, result, requested):
        try:
            micro_descs = _decompressAndSplitResult(result)
        except __HOLE__:
            return requested

        processed = {}

        for m in micro_descs:
            hashed = b64encode(sha256(m).digest()).rstrip('=')
            # discard any descriptors we didn't request
            if hashed not in requested:
                continue
            try:
                desc = microdescriptor.Microdescriptor(m)
            except Exception:
            # discard unparseable descriptors (shouldn't happen)
                continue

            processed[desc.digest] = desc
            requested.remove(hashed)

        self._saveProcessedMicrodescriptors(processed)
        # return any requested descriptors that weren't received/processed
        return requested
dataset/ETHPy150Open nskinkel/oppy/oppy/netstatus/microdescriptormanager.py/MicrodescriptorManager._processMicrodescriptorBlockResult