class_docstr: A bookkeeping class for wires, which are ordered collections of unique objects.
  
  If the input `wires` can be iterated over, it is interpreted as a sequence of wire labels that have to be
  unique and hashable. Else it is interpreted as a single wire label that has to be hashable. The
  only exception are strings which are interpreted as wire labels.
  
  The hash function of a wire label is considered the source of truth when deciding whether
  two wire labels are the same or not.
  
  Indexing an instance of this class will return a wire label.
  
  .. warning::
  
      In order to support wire labels of any hashable type, integers and 0-d arrays are considered different.
      For example, running ``qml.RX(1.1, qml.numpy.array(0))`` on a device initialized with ``wires=[0]``
      will fail because ``qml.numpy.array(0)`` does not exist in the device's wire map.
  
  Args:
       wires (Any): the wire label(s)
class_docstr_tok: ["A","bookkeeping","class","for","wires",",","which","are","ordered","collections","of","unique","objects",".","If","the","input","`","wires","`","can","be","iterated","over",",","it","is","interpreted","as","a","sequence","of","wire","labels","that","have","to","be","unique","and","hashable",".","Else","it","is","interpreted","as","a","single","wire","label","that","has","to","be","hashable",".","The","only","exception","are","strings","which","are","interpreted","as","wire","labels",".","The","hash","function","of","a","wire","label","is","considered","the","source","of","truth","when","deciding","whether","two","wire","labels","are","the","same","or","not",".","Indexing","an","instance","of","this","class","will","return","a","wire","label",".","..","warning",":",":","In","order","to","support","wire","labels","of","any","hashable","type",",","integers","and","0-d","arrays","are","considered","different",".","For","example",",","running","``","qml.RX","(","1.1",",","qml.numpy.array","(","0",")",")","``","on","a","device","initialized","with","``","wires=","[","0","]","``","will","fail","because","``","qml.numpy.array","(","0",")","``","does","not","exist","in","the","device","'s","wire","map",".","Args",":","wires","(","Any",")",":","the","wire","label","(","s",")"]
docstr: Return the wires that are unique to any Wire object in the list.
  
  Args:
      list_of_wires (List[Wires]): list of Wires objects
  
  Returns:
      Wires: unique wires
  
  **Example**
  
  >>> wires1 = Wires([4, 0, 1])
  >>> wires2 = Wires([0, 2, 3])
  >>> wires3 = Wires([5, 3])
  >>> Wires.unique_wires([wires1, wires2, wires3])
  <Wires = [4, 1, 2, 5]>
docstr_tok: ["Return","the","wires","that","are","unique","to","any","Wire","object","in","the","list",".","Args",":","list_of_wires","(","List","[","Wires","]",")",":","list","of","Wires","objects","Returns",":","Wires",":","unique","wires","*","*","Example","*","*",">",">",">","wires1","=","Wires","(","[","4",",","0",",","1","]",")",">",">",">","wires2","=","Wires","(","[","0",",","2",",","3","]",")",">",">",">","wires3","=","Wires","(","[","5",",","3","]",")",">",">",">","Wires.unique_wires","(","[","wires1",",","wires2",",","wires3","]",")","<","Wires","=","[","4",",","1",",","2",",","5","]",">"]
code: def unique_wires(list_of_wires):
      """Return the wires that are unique to any Wire object in the list.
  
      Args:
          list_of_wires (List[Wires]): list of Wires objects
  
      Returns:
          Wires: unique wires
  
      **Example**
  
      >>> wires1 = Wires([4, 0, 1])
      >>> wires2 = Wires([0, 2, 3])
      >>> wires3 = Wires([5, 3])
      >>> Wires.unique_wires([wires1, wires2, wires3])
      <Wires = [4, 1, 2, 5]>
      """
  
      for wires in list_of_wires:
          if not isinstance(wires, Wires):
              raise WireError(
                  f"Expected a Wires object; got {wires} of type {type(wires)}."
              )
  
      label_sets = [wire.toset() for wire in list_of_wires]
      seen_ever = set()
      seen_once = set()
  
      # Find unique set in O(n) time.
      for labels in label_sets:
          # (seen_once ^ labels) finds all of the unique labels seen once
          # (seen_ever - seen_once) is the set of labels already seen more than once
          # Subtracting these two sets makes a set of labels only seen once so far.
          seen_once = (seen_once ^ labels) - (seen_ever - seen_once)
          # Update seen labels with all new seen labels
          seen_ever.update(labels)
  
      # Get unique values in order they appear.
      unique = []
      for wires in list_of_wires:
          for wire in wires.tolist():
              # check that wire is only contained in one of the Wires objects
              if wire in seen_once:
                  unique.append(wire)
  
      return Wires(tuple(unique), _override=True)
  
imports: import functools
  import itertools
  from collections.abc import Iterable, Sequence
  import numpy
  from pennylane.pytrees import register_pytree
label_desc: Use image node_id 26 for calling the Wires obj's underlying member method code with example usage: obj.unique_wires(list_of_wires) and returns: Wires