
    z	iz	                         S r SSKJrJr  SSKJr   " S S\5      r " S S\5      r\ " S S	5      5       r	\ " S
 S5      5       r
g)z@A property set dictionary that shared among optimization passes.    )	dataclassfield)Enumc                       \ rS rSrSrS rSrg)PropertySet   z!A default dictionary-like object.c                     g )N )selfkeys     _/home/james-whalen/.local/lib/python3.13/site-packages/qiskit/passmanager/compilation_status.py__missing__PropertySet.__missing__   s        r
   N)__name__
__module____qualname____firstlineno____doc__r   __static_attributes__r
   r   r   r   r      s
    +r   r   c                   $    \ rS rSrSrSrSrSrSrg)RunState   z2Allowed values for the result of a pass execution.r         r
   N)	r   r   r   r   r   SUCCESSFAILSKIPr   r
   r   r   r   r      s    <GDDr   r   c                   d    \ rS rSr% SrSr\\S'    \" \	S9r
\	\S'    \R                  r\\S'   Srg	)
WorkflowStatus#   aZ  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_runr
   N)r   r   r   r   r   r"   int__annotations__r   setr$   r   r   r%   r   r
   r   r   r    r    #   s9     E3N+!#6c6<%]]L(*(r   r    c                   0    \ rS rSr% Sr\\S'    \\S'   Srg)PassManagerState7   ah  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_setr
   N)	r   r   r   r   r   r    r'   r   r   r
   r   r   r*   r*   7   s     $#5/r   r*   N)r   dataclassesr   r   enumr   dictr   r   r    r*   r
   r   r   <module>r1      s]    G ) $ t  ) ) )& 0 0 0r   