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: Auxiliary function to determine the number of basis states given the
  number of systems and a quantum device.
  
  This function is meant to be used with the Probability measurement to
  determine how many outcomes there will be. With qubit based devices
  we'll have two outcomes for each subsystem. With continuous variable
  devices that impose a Fock cutoff the number of basis states per
  subsystem equals the cutoff value.
  
  Args:
      num_wires (int): the number of qubits/qumodes
      device (pennylane.Device): a PennyLane device
  
  Returns:
      int: the number of basis states
code: def _get_num_basis_states(num_wires, device):
      """Auxiliary function to determine the number of basis states given the
      number of systems and a quantum device.
  
      This function is meant to be used with the Probability measurement to
      determine how many outcomes there will be. With qubit based devices
      we'll have two outcomes for each subsystem. With continuous variable
      devices that impose a Fock cutoff the number of basis states per
      subsystem equals the cutoff value.
  
      Args:
          num_wires (int): the number of qubits/qumodes
          device (pennylane.Device): a PennyLane device
  
      Returns:
          int: the number of basis states
      """
      cutoff = getattr(device, "cutoff", None)
      base = 2 if cutoff is None else cutoff
      return base**num_wires
  
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 10 for calling the MeasurementProcess obj's underlying member method code with example usage: obj._get_num_basis_states(num_wires, device) and returns: unknown