class_docstr: Implements an arbitrary unitary on the specified wires.
  
  An arbitrary unitary on :math:`n` wires is parametrized by :math:`4^n - 1`
  independent real parameters. This templates uses Pauli word rotations to
  parametrize the unitary.
  
  **Example**
  
  ArbitraryUnitary can be used as a building block, e.g. to parametrize arbitrary
  two-qubit operations in a circuit:
  
  .. code-block:: python
  
      def arbitrary_nearest_neighbour_interaction(weights, wires):
          qml.broadcast(unitary=ArbitraryUnitary, pattern="double", wires=wires, parameters=weights)
  
  Args:
      weights (tensor_like): The angles of the Pauli word rotations, needs to have length :math:`4^n - 1`
          where :math:`n` is the number of wires the template acts upon.
      wires (Iterable): wires that the template acts on
docstr: Compute the expected shape of the weights tensor.
  
  Args:
      n_wires (int): number of wires that template acts on
docstr_tok: ["Compute","the","expected","shape","of","the","weights","tensor",".","Args",":","n_wires","(","int",")",":","number","of","wires","that","template","acts","on"]
code: def shape(n_wires):
      """Compute the expected shape of the weights tensor.
  
      Args:
          n_wires (int): number of wires that template acts on
      """
      return (4**n_wires - 1,)
  
file_path: pennylane/pennylane/templates/subroutines/arbitrary_unitary.py
imports: import pennylane
  from pennylane.operation import Operation, AnyWires
  from pennylane.ops import PauliRot
label_desc: Use image node_id 3 for calling the ArbitraryUnitary obj's underlying member method code with example usage: obj.shape(n_wires) and returns: unknown