§
    ¹³Ùgz	  ã                   ó²   — d Z ddlmZmZ ddlmZ  G d„ de¦  «        Z G d„ de¦  «        Ze G d„ d	¦  «        ¦   «         Z	e G d
„ d¦  «        ¦   «         Z
dS )z@A property set dictionary that shared among optimization passes.é    )Ú	dataclassÚfield)ÚEnumc                   ó   — e Zd ZdZd„ ZdS )ÚPropertySetz!A default dictionary-like object.c                 ó   — d S )N© )ÚselfÚkeys     ú[/granary/edev/quantum/lib/python3.11/site-packages/qiskit/passmanager/compilation_status.pyÚ__missing__zPropertySet.__missing__   s   € Øˆtó    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r	   r   r   r   r      s)   € € € € € Ø+Ð+ðð ð ð ð r   r   c                   ó   — e Zd ZdZdZdZdZdS )ÚRunStatez2Allowed values for the result of a pass execution.r   é   é   N)r   r   r   r   ÚSUCCESSÚFAILÚSKIPr	   r   r   r   r      s#   € € € € € Ø<Ð<à€GØ€DØ€D€D€Dr   r   c                   ó`   — e Zd ZU dZdZeed<   	  ee¬¦  «        Z	eed<   	 e
j        Ze
ed<   dS )ÚWorkflowStatusan  Collection of compilation status of workflow, i.e. pass manager run.

    This data structure is initialized when the pass manager is run,
    and recursively handed over to underlying tasks.
    Each pass will update this status once after being executed, and the lifetime of the
    workflow status object is the time during which the pass manager is running.
    r   Úcount)Údefault_factoryÚcompleted_passesÚprevious_runN)r   r   r   r   r   ÚintÚ__annotations__r   Úsetr   r   r   r   r	   r   r   r   r   #   sa   € € € € € € ðð ð €Eˆ3€N€N�NØ+à!˜E°#Ð6Ñ6Ô6Ð�cÐ6Ð6Ñ6Ø<à%œ]€L�(Ð*Ð*Ñ*Ø(Ð(r   r   c                   ó*   — e Zd ZU dZeed<   	 eed<   dS )ÚPassManagerStateaŒ  A portable container object that pass manager tasks communicate through generator.

    This object can contain every information about the running pass manager workflow,
    except for the IR object being optimized.
    The data structure consists of two elements; one for the status of the
    workflow itself, and another one for the additional information about the IR
    analyzed through pass executions. This container aims at just providing
    a robust interface for the :meth:`.Task.execute`, and no logic that modifies
    the container elements must be implemented.

    This object is mutable, and might be mutated by pass executions.
    Úworkflow_statusÚproperty_setN)r   r   r   r   r   r!   r   r	   r   r   r$   r$   7   s9   € € € € € € ðð ð $Ð#Ð#Ñ#Ø5àÐÐÑØ/Ð/r   r$   N)r   Údataclassesr   r   Úenumr   Údictr   r   r   r$   r	   r   r   ú<module>r*      s   ðð GÐ Fð )Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ø Ð Ð Ð Ð Ð ðð ð ð ð �$ñ ô ð ðð ð ð ð ˆtñ ô ð ð ð)ð )ð )ð )ð )ñ )ô )ñ „ð)ð& ð0ð 0ð 0ð 0ð 0ñ 0ô 0ñ „ð0ð 0ð 0r   