§
    º³Ùgí  ã                   ó>   — d Z ddlmZ ddlmZ  G d„ de¦  «        ZdS )z*Check if a property reached a fixed point.é    )Údeepcopy)ÚAnalysisPassc                   ó(   ‡ — e Zd ZdZˆ fd„Zd„ Zˆ xZS )Ú
FixedPointzÓCheck if a property reached a fixed point.

    A dummy analysis pass that checks if a property reached a fixed point.
    The result is saved in ``property_set['<property>_fixed_point']``
    as a boolean.
    c                 óV   •— t          ¦   «                              ¦   «          || _        dS )zˆFixedPoint initializer.

        Args:
            property_to_check (str): The property to check if a fixed point was reached.
        N)ÚsuperÚ__init__Ú	_property)ÚselfÚproperty_to_checkÚ	__class__s     €ú`/granary/edev/quantum/lib/python3.11/site-packages/qiskit/transpiler/passes/utils/fixed_point.pyr	   zFixedPoint.__init__   s&   ø€ õ 	‰Œ×ÒÑÔÐØ*ˆŒˆˆó    c                 óò   — | j         | j                 }d| j        › �}| j         |         €d| j         | j        › d�<   n#| j         |         |k    }|| j         | j        › d�<   t          |¦  «        | j         |<   dS )z!Run the FixedPoint pass on `dag`.Ú_fixed_point_previous_NFÚ_fixed_point)Úproperty_setr
   r   )r   ÚdagÚcurrent_valueÚfixed_point_previous_propertyÚfixed_point_reacheds        r   ÚrunzFixedPoint.run%   s”   € àÔ)¨$¬.Ô9ˆØ(QÀÄÐ(QÐ(QÐ%àÔÐ:Ô;ÐCØAFˆDÔ ¤Ð=Ð=Ð=Ñ>Ð>à"&Ô"3Ð4QÔ"RÐVcÒ"cÐØATˆDÔ ¤Ð=Ð=Ð=Ñ>å;CÀMÑ;RÔ;RˆÔÐ7Ñ8Ð8Ð8r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r	   r   Ú__classcell__)r   s   @r   r   r      sX   ø€ € € € € ðð ð+ð +ð +ð +ð +ðSð Sð Sð Sð Sð Sð Sr   r   N)r   Úcopyr   Úqiskit.transpiler.basepassesr   r   © r   r   ú<module>r!      so   ðð 1Ð 0à Ð Ð Ð Ð Ð à 5Ð 5Ð 5Ð 5Ð 5Ð 5ðSð Sð Sð Sð S�ñ Sô Sð Sð Sð Sr   