A qvm with a based on a real device.

    This is the most realistic QVM.

    :param name: The full name of this QVM
    :param device: The device from :py:func:`get_lattice`.
    :param noisy: Whether to construct a noisy quantum computer by using the device's
        associated noise model.
    :param connection: An optional :py:class:`ForestConnection` object. If not specified,
        the default values for URL endpoints will be used.
    :return: A pre-configured QuantumComputer based on the named device.

def _get_qvm_based_on_real_device(name: str, device: Device,
                                  noisy: bool, connection: ForestConnection = None,
                                  qvm_type: str = 'qvm'):
    """
    A qvm with a based on a real device.

    This is the most realistic QVM.

    :param name: The full name of this QVM
    :param device: The device from :py:func:`get_lattice`.
    :param noisy: Whether to construct a noisy quantum computer by using the device's
        associated noise model.
    :param connection: An optional :py:class:`ForestConnection` object. If not specified,
        the default values for URL endpoints will be used.
    :return: A pre-configured QuantumComputer based on the named device.
    """
    if noisy:
        noise_model = device.noise_model
    else:
        noise_model = None
    return _get_qvm_qc(name=name, connection=connection, device=device,
                       noise_model=noise_model, requires_executable=True,
                       qvm_type=qvm_type)