class_docstr: Default qubit device for performing mixed-state computations in PennyLane.
  
  .. warning::
  
      The API of ``DefaultMixed`` will be updated soon to follow a new device interface described
      in :class:`pennylane.devices.Device`.
  
      This change will not alter device behaviour for most workflows, but may have implications for
      plugin developers and users who directly interact with device methods. Please consult
      :class:`pennylane.devices.Device` and the implementation in
      :class:`pennylane.devices.DefaultQubit` for more information on what the new
      interface will look like and be prepared to make updates in a coming release. If you have any
      feedback on these changes, please create an
      `issue <https://github.com/PennyLaneAI/pennylane/issues>`_ or post in our
      `discussion forum <https://discuss.pennylane.ai/>`_.
  
  Args:
      wires (int, Iterable[Number, str]): Number of subsystems represented by the device,
          or iterable that contains unique labels for the subsystems as numbers
          (i.e., ``[-1, 0, 2]``) or strings (``['ancilla', 'q1', 'q2']``).
      shots (None, int): Number of times the circuit should be evaluated (or sampled) to estimate
          the expectation values. Defaults to ``None`` if not specified, which means that
          outputs are computed exactly.
      readout_prob (None, int, float): Probability for adding readout error to the measurement
          outcomes of observables. Defaults to ``None`` if not specified, which means that the outcomes are
          without any readout error.
class_docstr_tok: ["Default","qubit","device","for","performing","mixed-state","computations","in","PennyLane",".","..","warning",":",":","The","API","of","``","DefaultMixed","``","will","be","updated","soon","to","follow","a","new","device","interface","described","in",":","class",":","`","pennylane.devices.Device","`",".","This","change","will","not","alter","device","behaviour","for","most","workflows",",","but","may","have","implications","for","plugin","developers","and","users","who","directly","interact","with","device","methods",".","Please","consult",":","class",":","`","pennylane.devices.Device","`","and","the","implementation","in",":","class",":","`","pennylane.devices.DefaultQubit","`","for","more","information","on","what","the","new","interface","will","look","like","and","be","prepared","to","make","updates","in","a","coming","release",".","If","you","have","any","feedback","on","these","changes",",","please","create","an","`","issue","<","https",":","\/\/github.com\/PennyLaneAI\/pennylane\/issues",">","`","_","or","post","in","our","`","discussion","forum","<","https",":","\/\/discuss.pennylane.ai\/",">","`","_",".","Args",":","wires","(","int",",","Iterable","[","Number",",","str","]",")",":","Number","of","subsystems","represented","by","the","device",",","or","iterable","that","contains","unique","labels","for","the","subsystems","as","numbers","(","i.e.",",","``","[","-1",",","0",",","2","]","``",")","or","strings","(","``","[","'ancilla","'",",","'q1","'",",","'q2","'","]","``",")",".","shots","(","None",",","int",")",":","Number","of","times","the","circuit","should","be","evaluated","(","or","sampled",")","to","estimate","the","expectation","values",".","Defaults","to","``","None","``","if","not","specified",",","which","means","that","outputs","are","computed","exactly",".","readout_prob","(","None",",","int",",","float",")",":","Probability","for","adding","readout","error","to","the","measurement","outcomes","of","observables",".","Defaults","to","``","None","``","if","not","specified",",","which","means","that","the","outcomes","are","without","any","readout","error","."]
docstr: Execute a queue of quantum operations on the device and then
  measure the given observables.
  
  Applies a readout error to the measurement outcomes of any observable if
  readout_prob is non-zero. This is done by finding the list of measured wires on which
  BitFlip channels are applied in the :meth:`apply`.
  
  For plugin developers: instead of overwriting this, consider
  implementing a suitable subset of
  
  * :meth:`apply`
  
  * :meth:`~.generate_samples`
  
  * :meth:`~.probability`
  
  Additional keyword arguments may be passed to this method
  that can be utilised by :meth:`apply`. An example would be passing
  the ``QNode`` hash that can be used later for parametric compilation.
  
  Args:
      circuit (QuantumTape): circuit to execute on the device
  
  Raises:
      QuantumFunctionError: if the value of :attr:`~.Observable.return_type` is not supported
  
  Returns:
      array[float]: measured value(s)
docstr_tok: ["Execute","a","queue","of","quantum","operations","on","the","device","and","then","measure","the","given","observables",".","Applies","a","readout","error","to","the","measurement","outcomes","of","any","observable","if","readout_prob","is","non-zero",".","This","is","done","by","finding","the","list","of","measured","wires","on","which","BitFlip","channels","are","applied","in","the",":","meth",":","`","apply","`",".","For","plugin","developers",":","instead","of","overwriting","this",",","consider","implementing","a","suitable","subset","of","*",":","meth",":","`","apply","`","*",":","meth",":","`","~.generate_samples","`","*",":","meth",":","`","~.probability","`","Additional","keyword","arguments","may","be","passed","to","this","method","that","can","be","utilised","by",":","meth",":","`","apply","`",".","An","example","would","be","passing","the","``","QNode","``","hash","that","can","be","used","later","for","parametric","compilation",".","Args",":","circuit","(","QuantumTape",")",":","circuit","to","execute","on","the","device","Raises",":","QuantumFunctionError",":","if","the","value","of",":","attr",":","`","~.Observable.return_type","`","is","not","supported","Returns",":","array","[","float","]",":","measured","value","(","s",")"]
code: def execute(self, circuit, **kwargs):
      """Execute a queue of quantum operations on the device and then
      measure the given observables.
  
      Applies a readout error to the measurement outcomes of any observable if
      readout_prob is non-zero. This is done by finding the list of measured wires on which
      BitFlip channels are applied in the :meth:`apply`.
  
      For plugin developers: instead of overwriting this, consider
      implementing a suitable subset of
  
      * :meth:`apply`
  
      * :meth:`~.generate_samples`
  
      * :meth:`~.probability`
  
      Additional keyword arguments may be passed to this method
      that can be utilised by :meth:`apply`. An example would be passing
      the ``QNode`` hash that can be used later for parametric compilation.
  
      Args:
          circuit (QuantumTape): circuit to execute on the device
  
      Raises:
          QuantumFunctionError: if the value of :attr:`~.Observable.return_type` is not supported
  
      Returns:
          array[float]: measured value(s)
      """
      if self.readout_err:
          wires_list = []
          for m in circuit.measurements:
              if isinstance(m, StateMP):
                  # State: This returns pre-rotated state, so no readout error.
                  # Assumed to only be allowed if it's the only measurement.
                  self.measured_wires = []
                  return super().execute(circuit, **kwargs)
              if isinstance(m, (SampleMP, CountsMP)) and m.wires in (
                  qml.wires.Wires([]),
                  self.wires,
              ):
                  # Sample, Counts: Readout error applied to all device wires when wires
                  # not specified or all wires specified.
                  self.measured_wires = self.wires
                  return super().execute(circuit, **kwargs)
              if isinstance(m, (VnEntropyMP, MutualInfoMP)):
                  # VnEntropy, MutualInfo: Computed for the state prior to measurement. So, readout
                  # error need not be applied on the corresponding device wires.
                  continue
              wires_list.append(m.wires)
          self.measured_wires = qml.wires.Wires.all_wires(wires_list)
      return super().execute(circuit, **kwargs)
  
imports: import functools
  import itertools
  from collections import defaultdict
  from string import ascii_letters
  import numpy
  import pennylane
  import pennylane.math
  from pennylane import BasisState, DeviceError, QubitDensityMatrix, QubitDevice, StatePrep, Snapshot
  from pennylane.measurements import CountsMP, MutualInfoMP, SampleMP, StateMP, VnEntropyMP, PurityMP
  from pennylane.operation import Channel
  from pennylane.ops.qubit.attributes import diagonal_in_z_basis
  from pennylane.wires import Wires
  from .._version import __version__
label_desc: Use image node_id 19 for calling the DefaultMixed obj's underlying member method code with example usage: obj.execute(circuit) and returns: super, super, super