§
    º³Ùg*  ã                   ó2   — d Z ddlmZ  G d„ de¦  «        ZdS )z*Check if a property reached a fixed point.é    )ÚAnalysisPassc                   ó0   ‡ — e Zd ZdZddefˆ fd„Zd„ Zˆ xZS )ÚContainsInstructiona  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.
    TÚrecursec                 ó®   •— t          ¦   «                              ¦   «          t          |t          ¦  «        r|hnt	          |¦  «        | _        || _        dS )a…  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      €úi/granary/edev/quantum/lib/python3.11/site-packages/qiskit/transpiler/passes/utils/contains_instruction.pyr	   zContainsInstruction.__init__   sU   ø€ õ 	‰Œ×ÒÑÔÐå",Ð-=½sÑ"CÔ"CÐ^ÐÐÐÍÐM]ÑI^ÔI^ð 	Ôð  ˆŒˆˆó    c                 ón   — |                      | j        ¬¦  «        }| j        D ]}||v | j        d|› �<   ŒdS )z(Run the ContainsInstruction pass on dag.)r   Ú	contains_N)Ú	count_opsr   r   Úproperty_set)r   ÚdagÚnamesÚnames       r   ÚrunzContainsInstruction.run)   sT   € à—’ d¤m�Ñ4Ô4ˆØÔ+ð 	Bð 	BˆDØ48¸E°MˆDÔÐ0¨$Ð0Ð0Ñ1Ð1ð	Bð 	Br   )T)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úboolr	   r   Ú__classcell__)r   s   @r   r   r      si   ø€ € € € € ðð ð ð  °$ð  ð  ð  ð  ð  ð  ðBð Bð Bð Bð Bð Bð Br   r   N)r   Úqiskit.transpiler.basepassesr   r   © r   r   ú<module>r$      s]   ðð 1Ð 0à 5Ð 5Ð 5Ð 5Ð 5Ð 5ðBð Bð Bð Bð B˜,ñ Bô Bð Bð Bð Br   