
    z	i                     .    S r SSKJrJr   " S S\5      rg)zQuantum Operation Mixin.    )ABCabstractmethodc                   j    \ rS rSrSrSr\\S 5       5       r\\S 5       5       r	\\S 5       5       r
Srg)	Operation   a  Quantum operation interface.

The minimal interface that any object must fulfil in order to be added to a
:class:`.QuantumCircuit`.

Concrete instances of this interface include :class:`~qiskit.circuit.Gate`,
:class:`~qiskit.circuit.Reset`, :class:`~qiskit.circuit.Barrier`,
:class:`~qiskit.circuit.Measure`, and operators such as :class:`~qiskit.quantum_info.Clifford`.

The main purpose is to allow abstract mathematical objects to be added directly onto
abstract circuits, and for the exact syntheses of these to be determined later, during
compilation.

Example:

    Add a Clifford and a Toffoli gate to a :class:`QuantumCircuit`.

    .. plot::
       :alt: Circuit diagram output by the previous code.
       :include-source:

       from qiskit import QuantumCircuit
       from qiskit.quantum_info import Clifford, random_clifford

       qc = QuantumCircuit(3)
       cliff = random_clifford(2)
       qc.append(cliff, [0, 1])
       qc.ccx(0, 1, 2)
       qc.draw('mpl')
 c                     [         e)z,Unique string identifier for operation type.NotImplementedErrorselfs    R/home/james-whalen/.local/lib/python3.13/site-packages/qiskit/circuit/operation.pynameOperation.name4   
     "!    c                     [         e)zNumber of qubits.r
   r   s    r   
num_qubitsOperation.num_qubits:   r   r   c                     [         e)zNumber of classical bits.r
   r   s    r   
num_clbitsOperation.num_clbits@   r   r   N)__name__
__module____qualname____firstlineno____doc__	__slots__propertyr   r   r   r   __static_attributes__r   r   r   r   r      s`    > I"  " "  " "  "r   r   N)r   abcr   r   r   r   r   r   <module>r"      s     #2" 2"r   