def _from_object_internal_computational_basis_sampling()

in src/braket/tasks/gate_model_quantum_task_result.py [0:0]


    def _from_object_internal_computational_basis_sampling(cls, result: GateModelTaskResult):
        task_metadata = result.taskMetadata
        additional_metadata = result.additionalMetadata
        if result.measurements:
            measurements = np.asarray(result.measurements, dtype=int)
            m_counts = GateModelQuantumTaskResult.measurement_counts_from_measurements(measurements)
            m_probs = GateModelQuantumTaskResult.measurement_probabilities_from_measurement_counts(
                m_counts
            )
            measurements_copied_from_device = True
            m_counts_copied_from_device = False
            m_probabilities_copied_from_device = False
        elif result.measurementProbabilities:
            shots = task_metadata.shots
            m_probs = result.measurementProbabilities
            measurements = GateModelQuantumTaskResult.measurements_from_measurement_probabilities(
                m_probs, shots
            )
            m_counts = GateModelQuantumTaskResult.measurement_counts_from_measurements(measurements)
            measurements_copied_from_device = False
            m_counts_copied_from_device = False
            m_probabilities_copied_from_device = True
        else:
            raise ValueError(
                'One of "measurements" or "measurementProbabilities" must be populated in',
                " the result obj",
            )
        measured_qubits = result.measuredQubits
        if len(measured_qubits) != measurements.shape[1]:
            raise ValueError(
                f"Measured qubits {measured_qubits} is not equivalent to number of qubits "
                + f"{measurements.shape[1]} in measurements"
            )
        result_types = GateModelQuantumTaskResult._calculate_result_types(
            additional_metadata.action.json(), measurements, measured_qubits
        )
        values = [rt.value for rt in result_types]
        return cls(
            task_metadata=task_metadata,
            additional_metadata=additional_metadata,
            result_types=result_types,
            values=values,
            measurements=measurements,
            measured_qubits=measured_qubits,
            measurement_counts=m_counts,
            measurement_probabilities=m_probs,
            measurements_copied_from_device=measurements_copied_from_device,
            measurement_counts_copied_from_device=m_counts_copied_from_device,
            measurement_probabilities_copied_from_device=m_probabilities_copied_from_device,
        )