async def results_async(self) -> Sequence[EngineResult]:
        """Returns the job results, blocking until the job is complete."""
        import cirq_google.engine.engine as engine_base

        if self._results is None:
            result_response = await self._await_result_async()
            result = result_response.result
            result_type = result.type_url[len(engine_base.TYPE_PREFIX) :]
            if (
                result_type == 'cirq.google.api.v1.Result'
                or result_type == 'cirq.api.google.v1.Result'
            ):
                v1_parsed_result = v1.program_pb2.Result.FromString(result.value)
                self._results = self._get_job_results_v1(v1_parsed_result)  # pragma: no cover
            elif (
                result_type == 'cirq.google.api.v2.Result'
                or result_type == 'cirq.api.google.v2.Result'
            ):
                v2_parsed_result = v2.result_pb2.Result.FromString(result.value)
                self._results = self._get_job_results_v2(v2_parsed_result)
            else:
                raise ValueError(f'invalid result proto version: {result_type}')
        return self._results
Returns the job results, blocking until the job is complete.
cirq-google/cirq_google/engine/engine_job.py