
    z	iK	                     N    S r SSKJr  SSKJr  SSKJr  SSKJr   " S S\5      r	g)	zRChoose a Layout by assigning ``n`` circuit qubits to device qubits ``0, .., n-1``.    )Layout)AnalysisPass)TranspilerError)Targetc                   2   ^  \ rS rSrSrU 4S jrS rSrU =r$ )TrivialLayout   aD  Choose a Layout by assigning ``n`` circuit qubits to device qubits ``0, .., n-1``.

A pass for choosing a Layout of a circuit onto a Coupling graph, using a simple
round-robin order.

This pass associates a physical qubit (int) to each virtual qubit
of the circuit (Qubit) in increasing order.

Does not assume any ancilla.
c                    > [         TU ]  5         [        U[        5      (       a&  Xl        U R                  R                  5       U l        gSU l        Xl        g)zTrivialLayout initializer.

Args:
    coupling_map (Union[CouplingMap, Target]): directed graph representing a coupling map.

Raises:
    TranspilerError: if invalid options
N)super__init__
isinstancer   targetbuild_coupling_mapcoupling_map)selfr   	__class__s     h/home/james-whalen/.local/lib/python3.13/site-packages/qiskit/transpiler/passes/layout/trivial_layout.pyr   TrivialLayout.__init__!   sD     	lF++&K $ > > @DDK ,    c                    U R                   b4  UR                  5       U R                   R                  :  a  [        S5      eO7UR                  5       U R                  R	                  5       :  a  [        S5      e[
        R                  " UR                  [        UR                  R                  5       5      -   6 U R                  S'   g)zRun the TrivialLayout pass on `dag`.

Args:
    dag (DAGCircuit): DAG to find layout for.

Raises:
    TranspilerError: if dag wider than the target backend
Nz%Number of qubits greater than device.layout)r   
num_qubitsr   r   sizer   generate_trivial_layoutqubitslistqregsvaluesproperty_set)r   dags     r   runTrivialLayout.run2   s     ;;"~~$++"8"88%&MNN 9^^ 1 1 6 6 88!"IJJ&,&D&Djj4		 0 0 233'
(#r   )r   r   )	__name__
__module____qualname____firstlineno____doc__r   r!   __static_attributes____classcell__)r   s   @r   r   r      s    	-"
 
r   r   N)
r'   qiskit.transpiler.layoutr   qiskit.transpiler.basepassesr   qiskit.transpiler.exceptionsr   qiskit.transpiler.targetr   r    r   r   <module>r/      s#    Y + 5 8 +-
L -
r   