class_docstr: Represents a measurement process occurring at the end of a
  quantum variational circuit.
  
  Args:
      obs (Union[.Operator, .MeasurementValue, Sequence[.MeasurementValue]]): The observable that
          is to be measured as part of the measurement process. Not all measurement processes
          require observables (for example ``Probability``); this argument is optional.
      wires (.Wires): The wires the measurement process applies to.
          This can only be specified if an observable was not provided.
      eigvals (array): A flat array representing the eigenvalues of the measurement.
          This can only be specified if an observable was not provided.
      id (str): custom label given to a measurement instance, can be useful for some applications
          where the instance has to be identified
class_docstr_tok: ["Represents","a","measurement","process","occurring","at","the","end","of","a","quantum","variational","circuit",".","Args",":","obs","(","Union","[",".Operator",",",".MeasurementValue",",","Sequence","[",".MeasurementValue","]","]",")",":","The","observable","that","is","to","be","measured","as","part","of","the","measurement","process",".","Not","all","measurement","processes","require","observables","(","for","example","``","Probability","``",")",";","this","argument","is","optional",".","wires","(",".Wires",")",":","The","wires","the","measurement","process","applies","to",".","This","can","only","be","specified","if","an","observable","was","not","provided",".","eigvals","(","array",")",":","A","flat","array","representing","the","eigenvalues","of","the","measurement",".","This","can","only","be","specified","if","an","observable","was","not","provided",".","id","(","str",")",":","custom","label","given","to","a","measurement","instance",",","can","be","useful","for","some","applications","where","the","instance","has","to","be","identified"]
docstr: Returns a copy of the current measurement process with its wires changed according to
  the given wire map.
  
  Args:
      wire_map (dict): dictionary containing the old wires as keys and the new wires as values
  
  Returns:
      .MeasurementProcess: new measurement process
code: def map_wires(self, wire_map: dict):
      """Returns a copy of the current measurement process with its wires changed according to
      the given wire map.
  
      Args:
          wire_map (dict): dictionary containing the old wires as keys and the new wires as values
  
      Returns:
          .MeasurementProcess: new measurement process
      """
      new_measurement = copy.copy(self)
      if self.mv is not None:
          new_measurement.mv = (
              self.mv.map_wires(wire_map=wire_map)
              if getattr(self.mv, "name", None) == "MeasurementValue"
              else [m.map_wires(wire_map=wire_map) for m in self.mv]
          )
      elif self.obs is not None:
          new_measurement.obs = self.obs.map_wires(wire_map=wire_map)
      elif self._wires is not None:
          new_measurement._wires = Wires(
              [wire_map.get(wire, wire) for wire in self.wires]
          )
      return new_measurement
  
imports: import copy
  import functools
  from warnings import warn
  from abc import ABC, abstractmethod
  from enum import Enum
  from typing import Sequence, Tuple, Optional, Union
  import pennylane
  from pennylane.operation import Operator, DecompositionUndefinedError, EigvalsUndefinedError
  from pennylane.pytrees import register_pytree
  from pennylane.typing import TensorLike
  from pennylane.wires import Wires
  from .shots import Shots
label_desc: Use image node_id 26 for calling the MeasurementProcess obj's underlying member method code with example usage: obj.map_wires(wire_map) and returns: new_measurement