o  i @sddlmZddlmZddlmZddlmZmZddl m Z m Z m Z e de j e d\ZZer7ddlmZn e de j e d \ZZGd d d Zd S) ) annotations)Callable) TYPE_CHECKING)IterationEventsengine_apply_transform) IgniteInfo min_versionoptional_importz ignite.engineEvents)Enginer c@s0eZdZdZddd d Zdd dZdddZdS)PostProcessinga Ignite handler to execute additional post processing after the post processing in engines. So users can insert other handlers between engine postprocessing and this post processing handler. If using components from `monai.transforms` as the `transform`, recommend to decollate `engine.state.batch` and `engine.state.batch` in the engine(set `decollate=True`) or in the `DecollateBatch` handler first. MODEL_COMPLETED transformreventstrreturnNonecCs(||_|}|dvrtd||_dS)aQ Args: transform: callable function to execute on the `engine.state.batch` and `engine.state.output`. can also be composed transforms. event: expected EVENT to attach the handler, should be "MODEL_COMPLETED" or "ITERATION_COMPLETED". default to "MODEL_COMPLETED". )r ITERATION_COMPLETEDz;event should be `MODEL_COMPLETED` or `ITERATION_COMPLETED`.N)rupper ValueErrorr)selfrrr_/home/dell461/cl/sdc2/last_ska_mid/HISourceFinder-master-l/src/monai/handlers/postprocessing.py__init__$s   zPostProcessing.__init__enginer cCs.|jdkr|tj|dS|tj|dS)g Args: engine: Ignite Engine, it can be a trainer, validator or evaluator. r N)radd_event_handlerrr r r)rrrrrattach3s zPostProcessing.attachcCst|jjtrt|jjts"t|jj|jj|jd\|j_|j_dStt|jj|jjD]\}\}}t|||j\|jj|<|jj|<q-dS)r)batchoutputrN) isinstancestaterlistrrr enumeratezip)rriborrr__call__=s"$zPostProcessing.__call__N)r )rrrrrr)rr rr)__name__ __module__ __qualname____doc__rrr(rrrrr s    r N) __future__rcollections.abcrtypingrmonai.engines.utilsrr monai.utilsrrr OPT_IMPORT_VERSIONr _ ignite.enginer r rrrrs