
    z	i                     6    S r SSKJr  SSKJr   " S S\5      rg)z<Collect sequences of uninterrupted gates acting on 2 qubits.    )defaultdict)AnalysisPassc                       \ rS rSrSrS rSrg)Collect2qBlocks   zCollect two-qubit subcircuits.c                 x    [        [        5      U R                  S'   UR                  5       U R                  S'   U$ )a  Run the Collect2qBlocks pass on `dag`.

The blocks contain "op" nodes in topological order such that all gates
in a block act on the same qubits and are adjacent in the circuit.

After the execution, ``property_set['block_list']`` is set to a list of
tuples of "op" node.
commutation_set
block_list)r   listproperty_setcollect_2q_runs)selfdags     q/home/james-whalen/.local/lib/python3.13/site-packages/qiskit/transpiler/passes/optimization/collect_2q_blocks.pyrunCollect2qBlocks.run   s8     0;4/@+,*-*=*=*?,'
     N)__name__
__module____qualname____firstlineno____doc__r   __static_attributes__r   r   r   r   r      s
    (r   r   N)r   collectionsr   qiskit.transpiler.basepassesr   r   r   r   r   <module>r      s    C # 5l r   