
    z	i*                     *    S r SSKJr   " S S\5      rg)z*Check if a property reached a fixed point.    )AnalysisPassc                   >   ^  \ rS rSrSrSS\4U 4S jjjrS rSrU =r	$ )ContainsInstruction   a  An analysis pass to detect if the DAG contains a specific instruction.

This pass takes in a single instruction name for example ``'delay'`` and
will set the property set ``contains_delay`` to ``True`` if the DAG contains
that instruction and ``False`` if it does not.
recursec                 ~   > [         TU ]  5         [        U[        5      (       a  U1O
[	        U5      U l        X l        g)aU  ContainsInstruction initializer.

Args:
    instruction_name (str | Iterable[str]): The instruction or instructions to check are in
        the DAG. The output in the property set is set to ``contains_`` prefixed on each
        value for this parameter.
    recurse (bool): if ``True`` (default), then recurse into control-flow operations.
N)super__init__
isinstancestrset_instruction_names_recurse)selfinstruction_namer   	__class__s      m/home/james-whalen/.local/lib/python3.13/site-packages/qiskit/transpiler/passes/utils/contains_instruction.pyr
   ContainsInstruction.__init__   s;     	",-=s"C"CM]I^ 	      c                     UR                  U R                  S9nU R                   H  nX2;   U R                  SU 3'   M     g)z(Run the ContainsInstruction pass on dag.)r   	contains_N)	count_opsr   r   property_set)r   dagnamesnames       r   runContainsInstruction.run)   s?    dmm4++D48MD	$01 ,r   )r   r   )T)
__name__
__module____qualname____firstlineno____doc__boolr
   r   __static_attributes____classcell__)r   s   @r   r   r      s%     $    B Br   r   N)r#   qiskit.transpiler.basepassesr   r    r   r   <module>r)      s    1 5B, Br   