U
    PhL                  +   @  s  d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZmZ dd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2g+ZG d3d deeZerd d4lmZ ned5ejed6d7d8\ZZG d9d	 d	eZG d:d deZG d;d
 d
eZG d<d deZG d=d deZG d>d deZG d?d deZG d@d deZG dAd deZG dBd deZG dCd deZG dDd deZ G dEd deZ!G dFd deZ"G dGd deZ#G dHd deZ$G dId deZ%G dJd deZ&G dKd deZ'G dLd deZ(G dMd deZ)G dNd deZ*G dOd deZ+G dPd  d eZ,G dQd! d!eZ-G dRdS dSeZ.G dTd" d"eZ/G dUdV dVeZ0G dWd# d#eZ1G dXdY dYeZ2G dZd[ d[eZ3G d\d$ d$eZ4G d]d% d%eZ5G d^d& d&eZ6G d_d' d'eZ7G d`d( d(eZ8G dad) d)eZ9G dbd* d*eZ:G dcd+ d+eZ;e
dddedfdgG dhd, d,eZ<G did- d-eZ=G djd. d.eZ>G dkd/ d/eZ?G dld0 d0eZ@G dmd1 d1eZAG dnd2 d2eZBG dodp dpeZCG dqdr dreZDG dsdt dteZEG dudv dveZFdS )w    )annotationsN)Enum)TYPE_CHECKING)
IgniteInfo)
deprecated)min_versionoptional_importStrEnumNumpyPadModeGridSampleMode
SplineModeInterpolateModeUpsampleMode	BlendModePytorchPadModeNdimageModeGridSamplePadModeAverageMetricReductionLossReductionDiceCEReductionWeightChannelMatchingSkipModeMethod	TraceKeysTraceStatusKeys
CommonKeysGanKeysPostFixForwardModeTransformBackendsCompInitModeBoxModeNameGridPatchSortFastMRIKeys	SpaceKeysMetaKeys
ColorOrderEngineStatsKeysDataStatsKeysImageStatsKeysLabelStatsKeysAlgoEnsembleKeysHoVerNetModeHoVerNetBranchLazyAttrBundlePropertyBundlePropertyConfigAlgoKeysc                   @  s    e Zd ZdZdd Zdd ZdS )r	   a  
    Enum subclass that converts its value to a string.

    .. code-block:: python

        from monai.utils import StrEnum

        class Example(StrEnum):
            MODE_A = "A"
            MODE_B = "B"

        assert (list(Example) == ["A", "B"])
        assert Example.MODE_A == "A"
        assert str(Example.MODE_A) == "A"
        assert monai.utils.look_up_option("A", Example) == "A"
    c                 C  s   | j S Nvalueself r9   F/home/dell461/cl/sdc2/HISourceFinder-master-l/src/monai/utils/enums.py__str__W   s    zStrEnum.__str__c                 C  s   | j S r4   r5   r7   r9   r9   r:   __repr__Z   s    zStrEnum.__repr__N)__name__
__module____qualname____doc__r;   r<   r9   r9   r9   r:   r	   E   s   )	EventEnumzignite.enginerA   base)as_typec                   @  s<   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdS )r
   zQ
    See also: https://numpy.org/doc/1.18/reference/generated/numpy.pad.html
    constantedgelinear_rampmaximummeanmedianminimumreflect	symmetricwrapemptyN)r=   r>   r?   r@   CONSTANTZEDGEZLINEAR_RAMPZMAXIMUMMEANZMEDIANZMINIMUMREFLECT	SYMMETRICWRAPEMPTYr9   r9   r9   r:   r
   f   s   c                   @  s0   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
S )r   z
    The available options determine how the input array is extended beyond its boundaries when interpolating.
    See also: https://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.map_coordinates.html
    rK   zgrid-mirrorrD   zgrid-constantnearestmirrorz	grid-wraprM   N)r=   r>   r?   r@   rQ   ZGRID_MIRRORrO   ZGRID_CONSTANTNEARESTZMIRRORZ	GRID_WRAPrS   r9   r9   r9   r:   r   x   s   c                   @  s   e Zd ZdZdZdZdZdS )r   a  
    See also: https://pytorch.org/docs/stable/generated/torch.nn.functional.grid_sample.html

    interpolation mode of `torch.nn.functional.grid_sample`

    Note:
        (documentation from `torch.nn.functional.grid_sample`)
        `mode='bicubic'` supports only 4-D input.
        When `mode='bilinear'` and the input is 5-D, the interpolation mode used internally will actually be trilinear.
        However, when the input is 4-D, the interpolation mode will legitimately be bilinear.
    rU   bilinearbicubicN)r=   r>   r?   r@   rW   BILINEARBICUBICr9   r9   r9   r:   r      s   c                   @  s(   e Zd ZdZdZdZdZdZdZdZ	dS )	r   z
    Order of spline interpolation.

    See also: https://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.map_coordinates.html
    r                  N)
r=   r>   r?   r@   ZEROONETWOTHREEFOURFIVEr9   r9   r9   r:   r      s   c                   @  s,   e Zd ZdZdZdZdZdZdZdZ	dZ
d	S )
r   zb
    See also: https://pytorch.org/docs/stable/generated/torch.nn.functional.interpolate.html
    rU   znearest-exactlinearrX   rY   	trilinearareaN)r=   r>   r?   r@   rW   ZNEAREST_EXACTZLINEARrZ   r[   Z	TRILINEARZAREAr9   r9   r9   r:   r      s   c                   @  s    e Zd ZdZdZdZdZdZdS )r   z>
    See also: :py:class:`monai.networks.blocks.UpSample`
    deconvZdeconvgroupZnontrainablepixelshuffleN)r=   r>   r?   r@   ZDECONVZDECONVGROUPZNONTRAINABLEZPIXELSHUFFLEr9   r9   r9   r:   r      s
   c                   @  s   e Zd ZdZdZdZdS )r   zG
    See also: :py:class:`monai.data.utils.compute_importance_map`
    rD   gaussianN)r=   r>   r?   r@   rO   ZGAUSSIANr9   r9   r9   r:   r      s   c                   @  s    e Zd ZdZdZdZdZdZdS )r   zZ
    See also: https://pytorch.org/docs/stable/generated/torch.nn.functional.pad.html
    rD   rK   	replicatecircularN)r=   r>   r?   r@   rO   rQ   Z	REPLICATEZCIRCULARr9   r9   r9   r:   r      s
   c                   @  s   e Zd ZdZdZdZdZdS )r   zb
    See also: https://pytorch.org/docs/stable/generated/torch.nn.functional.grid_sample.html
    zerosborder
reflectionN)r=   r>   r?   r@   ZZEROSZBORDERZ
REFLECTIONr9   r9   r9   r:   r      s   c                   @  s    e Zd ZdZdZdZdZdZdS )r   zD
    See also: :py:class:`monai.metrics.rocauc.compute_roc_auc`
    macroweightedmicrononeN)r=   r>   r?   r@   ZMACROZWEIGHTEDZMICRONONEr9   r9   r9   r:   r      s
   c                   @  s,   e Zd ZdZdZdZdZdZdZdZ	dZ
d	S )
r   zF
    See also: :py:func:`monai.metrics.utils.do_metric_reduction`
    ru   rH   sumZ
mean_batchZ	sum_batchZmean_channelZsum_channelN)r=   r>   r?   r@   rv   rP   SUMZ
MEAN_BATCHZ	SUM_BATCHZMEAN_CHANNELZSUM_CHANNELr9   r9   r9   r:   r      s   c                   @  s   e Zd ZdZdZdZdZdS )r   z
    See also:
        - :py:class:`monai.losses.dice.DiceLoss`
        - :py:class:`monai.losses.dice.GeneralizedDiceLoss`
        - :py:class:`monai.losses.focal_loss.FocalLoss`
        - :py:class:`monai.losses.tversky.TverskyLoss`
    ru   rH   rw   N)r=   r>   r?   r@   rv   rP   rx   r9   r9   r9   r:   r      s   c                   @  s   e Zd ZdZdZdZdS )r   zF
    See also:
        - :py:class:`monai.losses.dice.DiceCELoss`
    rH   rw   N)r=   r>   r?   r@   rP   rx   r9   r9   r9   r:   r     s   c                   @  s   e Zd ZdZdZdZdZdS )r   zE
    See also: :py:class:`monai.losses.dice.GeneralizedDiceLoss`
    squaresimpleuniformN)r=   r>   r?   r@   ZSQUARESIMPLEZUNIFORMr9   r9   r9   r:   r     s   c                   @  s   e Zd ZdZdZdZdS )r   z@
    See also: :py:class:`monai.networks.nets.HighResBlock`
    padprojectN)r=   r>   r?   r@   ZPADZPROJECTr9   r9   r9   r:   r     s   c                   @  s   e Zd ZdZdZdZdZdS )r   zD
    See also: :py:class:`monai.networks.layers.SkipConnection`
    cataddmulN)r=   r>   r?   r@   ZCATADDMULr9   r9   r9   r:   r   $  s   c                   @  s   e Zd ZdZdZdZdS )r   zI
    See also: :py:class:`monai.transforms.croppad.array.SpatialPad`
    rL   endN)r=   r>   r?   r@   rR   ENDr9   r9   r9   r:   r   .  s   c                   @  s   e Zd ZdZdZdZdS )r    zL
    See also: :py:class:`monai.transforms.engines.evaluator.Evaluator`
    trainevalN)r=   r>   r?   r@   ZTRAINEVALr9   r9   r9   r:   r    7  s   c                   @  s   e Zd ZU dZdZded< dZded< dZded< d	Zded
< dZ	ded< dZ
ded< dZded< dZded< dZded< dZded< dS )r   z2Extra metadata keys used for traceable transforms.classstr
CLASS_NAMEidIDZ	orig_size	ORIG_SIZEZ
extra_info
EXTRA_INFOZdo_transformsDO_TRANSFORMZ_transforms
KEY_SUFFIXru   rv   tracingTRACINGZstatusesSTATUSESlazyLAZYN)r=   r>   r?   r@   r   __annotations__r   r   r   r   r   rv   r   r   r   r9   r9   r9   r:   r   @  s   
c                   @  s   e Zd ZdZdZdS )r   z4Enumerable status keys for the TraceKeys.STATUS flagZpending_during_applyN)r=   r>   r?   r@   ZPENDING_DURING_APPLYr9   r9   r9   r:   r   O  s   c                   @  s$   e Zd ZdZdZdZdZdZdZdS )r   a  
    A set of common keys for dictionary based supervised training process.
    `IMAGE` is the input image data.
    `LABEL` is the training or evaluation label of segmentation or classification task.
    `PRED` is the prediction data of model output.
    `LOSS` is the loss value of current iteration.
    `INFO` is some useful information during training or evaluation, like loss value, etc.

    imagelabelpredlossmetadataN)	r=   r>   r?   r@   IMAGELABELZPREDZLOSSMETADATAr9   r9   r9   r:   r   U  s   
c                   @  s$   e Zd ZdZdZdZdZdZdZdS )r   zD
    A set of common keys for generative adversarial networks.

    realsfakesZlatentsZg_lossZd_lossN)	r=   r>   r?   r@   REALSFAKESZLATENTSZGLOSSZDLOSSr9   r9   r9   r:   r   g  s   c                   @  sh   e Zd ZdZeddddddZeddddd	d
ZeddddddZeddddddZdS )r   zPost-fixes.z
str | Noner   )prefixsuffixreturnc                 C  s   | d kr|S |  d| S )N_r9   )r   r   r9   r9   r:   _get_strw  s    zPostFix._get_strN)keyr   c                 C  s   t | dS )NZ	meta_dictr   r   r   r9   r9   r:   meta{  s    zPostFix.metac                 C  s   t | dS )NZorig_meta_dictr   r   r9   r9   r:   	orig_meta  s    zPostFix.orig_metac                 C  s   t | tjdd  S )Nr\   )r   r   r   r   r   r9   r9   r:   
transforms  s    zPostFix.transforms)N)N)N)	r=   r>   r?   r@   staticmethodr   r   r   r   r9   r9   r9   r:   r   t  s   c                   @  s   e Zd ZdZdZdZdZdS )r!   a  
    Transform backends. Most of `monai.transforms` components first converts the input data into ``torch.Tensor`` or
    ``monai.data.MetaTensor``. Internally, some transforms are made by converting the data into ``numpy.array`` or
    ``cupy.array`` and use the underlying transform backend API to achieve the actual output array and
    converting back to ``Tensor``/``MetaTensor``. Transforms with more than one backend indicate the that they may
    convert the input data types to accommodate the underlying API.
    torchnumpycupyN)r=   r>   r?   r@   ZTORCHNUMPYCUPYr9   r9   r9   r:   r!     s   c                   @  s   e Zd ZdZdZdZdZdS )r"   z~
    Mode names for instantiating a class or calling a callable.

    See also: :py:func:`monai.utils.module.instantiate`
    defaultcallabledebugN)r=   r>   r?   r@   DEFAULTCALLABLEDEBUGr9   r9   r9   r:   r"     s   c                   @  s    e Zd ZdZdZdZdZdZdS )JITMetadataKeysz
    Keys stored in the metadata file for saved Torchscript models. Some of these are generated by the routines
    and others are optionally provided by users.
    name	timestampversiondescriptionN)r=   r>   r?   r@   NAME	TIMESTAMPVERSIONDESCRIPTIONr9   r9   r9   r:   r     s
   r   c                   @  s4   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdS )r#   z
    Box mode names.
    ZxyxyZxyzxyzZxxyyZxxyyzzZxyxyzzZxywhZxyzwhdZccwhZcccwhdN)r=   r>   r?   r@   ZXYXYZXYZXYZZXXYYZXXYYZZZXYXYZZZXYWHZXYZWHDZCCWHZCCCWHDr9   r9   r9   r:   r#     s   c                   @  s    e Zd ZdZdZdZdZdZdS )ProbMapKeyszN
    The keys to be used for generating the probability maps from patches
    Zmask_locationZ	mask_sizeZnum_patchesr   N)r=   r>   r?   r@   LOCATIONSIZECOUNTr   r9   r9   r9   r:   r     s
   r   c                   @  s@   e Zd ZdZdZdZdZedd Zedd Z	ed	d
 Z
dS )r$   zE
    The sorting method for the generated patches in `GridPatch`
    randomminmaxc                 C  s   | d   S Nr   rw   xr9   r9   r:   min_fn  s    zGridPatchSort.min_fnc                 C  s   | d    S r   r   r   r9   r9   r:   max_fn  s    zGridPatchSort.max_fnc                 C  sP   | t jkrtjS | t jkr t jS | t jkr0t jS td|  ddd t D d S )Nz0sort_fn should be one of the following values, "z" was given:c                 S  s   g | ]
}|j qS r9   r5   ).0er9   r9   r:   
<listcomp>  s     z-GridPatchSort.get_sort_fn.<locals>.<listcomp>)r$   RANDOMr   MINr   MAXr   
ValueError)Zsort_fnr9   r9   r:   get_sort_fn  s    



zGridPatchSort.get_sort_fnN)r=   r>   r?   r@   r   r   r   r   r   r   r   r9   r9   r9   r:   r$     s   

c                   @  s   e Zd ZdZdZdZdZdS )	PatchKeyszV
    The keys to be used for metadata of patches extracted from any kind of image
    locationsizecountN)r=   r>   r?   r@   r   r   r   r9   r9   r9   r:   r     s   r   c                   @  s*   e Zd ZdZejZejZejZdZdZ	dS )WSIPatchKeyszW
    The keys to be used for metadata of patches extracted from whole slide images
    levelpathN)
r=   r>   r?   r@   r   r   r   r   ZLEVELPATHr9   r9   r9   r:   r     s   r   c                   @  s0   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
S )r%   zJ
    The keys to be used for extracting data from the fastMRI dataset
    ZkspacemaskfilenameZreconstruction_rssZacquisitionr   normZ
patient_idN)r=   r>   r?   r@   ZKSPACEMASKZFILENAMEZRECONZACQUISITIONr   ZNORMZPIDr9   r9   r9   r:   r%     s   c                   @  s   e Zd ZdZdZdZdS )r&   z
    The coordinate system keys, for example, Nifti1 uses Right-Anterior-Superior or "RAS",
    DICOM (0020,0032) uses Left-Posterior-Superior or "LPS". This type does not distinguish spatial 1/2/3D.
    RASLPSN)r=   r>   r?   r@   r   r   r9   r9   r9   r:   r&     s   c                   @  s$   e Zd ZdZdZdZdZdZdZdS )r'   z'
    Typical keys for MetaObj.meta
    affineZoriginal_affineZspatial_shapespaceZoriginal_channel_dimN)	r=   r>   r?   r@   AFFINEZORIGINAL_AFFINEZSPATIAL_SHAPESPACEZORIGINAL_CHANNEL_DIMr9   r9   r9   r:   r'     s   c                   @  s   e Zd ZdZdZdZdS )r(   z5
    Enums for color order. Expand as necessary.
    RGBBGRN)r=   r>   r?   r@   r   r   r9   r9   r9   r:   r(   $  s   c                   @  s,   e Zd ZdZdZdZdZdZdZdZ	dZ
d	S )
r)   zL
    Default keys for the statistics of trainer and evaluator engines.

    rankZcurrent_iterationZcurrent_epochZtotal_epochsZtotal_iterationsZbest_validation_epochZbest_validation_metricN)r=   r>   r?   r@   RANKZCURRENT_ITERATIONZCURRENT_EPOCHZTOTAL_EPOCHSZTOTAL_ITERATIONSZBEST_VALIDATION_EPOCHZBEST_VALIDATION_METRICr9   r9   r9   r:   r)   -  s   c                   @  s0   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
S )r*   zA
    Defaults keys for dataset statistical analysis modules

    Zstats_summaryZstats_by_casesZimage_filepathZlabel_filepathZimage_statsZimage_foreground_statsZlabel_statsZimage_histogramN)r=   r>   r?   r@   ZSUMMARYZBY_CASEZBY_CASE_IMAGE_PATHZBY_CASE_LABEL_PATHZIMAGE_STATSZFG_IMAGE_STATSZLABEL_STATSZIMAGE_HISTOGRAMr9   r9   r9   r:   r*   <  s   c                   @  s,   e Zd ZdZdZdZdZdZdZdZ	dZ
d	S )
r+   zG
    Defaults keys for dataset statistical analysis image modules

    shapechannelsZcropped_shapespacingZsizemmZ	intensity	histogramN)r=   r>   r?   r@   SHAPEZCHANNELSZCROPPED_SHAPESPACINGZSIZEMMZ	INTENSITYZ	HISTOGRAMr9   r9   r9   r:   r+   L  s   c                   @  s(   e Zd ZdZdZdZdZdZdZdZ	dS )	r,   zG
    Defaults keys for dataset statistical analysis label modules

    labelsZforeground_percentageZimage_intensityr   r   ZncomponentsN)
r=   r>   r?   r@   Z	LABEL_UIDZ	PIXEL_PCTZIMAGE_INTSTr   ZLABEL_SHAPEZLABEL_NCOMPr9   r9   r9   r:   r,   [  s   z1.2z1.4zplease use `AlgoKeys` instead.)sinceremoved
msg_suffixc                   @  s   e Zd ZdZdZdZdZdS )r-   z)
    Default keys for Mixed Ensemble
    
identifierZ
infer_algobest_metricN)r=   r>   r?   r@   r   ALGOSCOREr9   r9   r9   r:   r-   i  s   c                   @  s   e Zd ZdZdZdZdS )r.   z
    Modes for HoVerNet model:
    `FAST`: a faster implementation (than original)
    `ORIGINAL`: the original implementation
    FASTORIGINALN)r=   r>   r?   r@   r   r   r9   r9   r9   r:   r.   t  s   c                   @  s   e Zd ZdZdZdZdZdS )r/   a  
    Three branches of HoVerNet model, which results in three outputs:
    `HV` is horizontal and vertical gradient map of each nucleus (regression),
    `NP` is the pixel prediction of all nuclei (segmentation), and
    `NC` is the type of each nucleus (classification).
    Zhorizontal_verticalZnucleus_predictionZtype_predictionN)r=   r>   r?   r@   ZHVZNPZNCr9   r9   r9   r:   r/     s   c                   @  s,   e Zd ZdZdZdZdZdZdZdZ	dZ
d	S )
r0   aG  
    MetaTensor with pending operations requires some key attributes tracked especially when the primary array
    is not up-to-date due to lazy evaluation.
    This class specifies the set of key attributes to be tracked for each MetaTensor.
    See also: :py:func:`monai.transforms.lazy.utils.resample` for more details.
    Z
lazy_shapeZlazy_affineZlazy_padding_modeZlazy_interpolation_modeZ
lazy_dtypeZlazy_align_cornersZlazy_resample_modeN)r=   r>   r?   r@   r   r   ZPADDING_MODEZINTERP_MODEDTYPEZALIGN_CORNERSZRESAMPLE_MODEr9   r9   r9   r:   r0     s   c                   @  s   e Zd ZdZdZdZdS )r1   z
    Bundle property fields:
    `DESC` is the description of the property.
    `REQUIRED` is flag to indicate whether the property is required or optional.
    r   requiredN)r=   r>   r?   r@   ZDESCZREQUIREDr9   r9   r9   r:   r1     s   c                   @  s   e Zd ZdZdZdZdS )r2   aU  
    additional bundle property fields for config based bundle workflow:
    `ID` is the config item ID of the property.
    `REF_ID` is the ID of config item which is supposed to refer to this property.
    For properties that do not have `REF_ID`, `None` should be set.
    this field is only useful to check the optional property ID.
    r   Zrefer_idN)r=   r>   r?   r@   r   ZREF_IDr9   r9   r9   r:   r2     s   c                   @  s    e Zd ZdZdZdZdZdZdS )r3   aF  
    Default keys for templated Auto3DSeg Algo.
    `ID` is the identifier of the algorithm. The string has the format of <name>_<idx>_<other>.
    `ALGO` is the Auto3DSeg Algo instance.
    `IS_TRAINED` is the status that shows if the Algo has been trained.
    `SCORE` is the score the Algo has achieved after training.
    r   Zalgo_instanceZ
is_trainedr   N)r=   r>   r?   r@   r   r   Z
IS_TRAINEDr   r9   r9   r9   r:   r3     s
   c                   @  s,   e Zd ZdZdZdZdZdZdZdZ	dZ
d	S )
AdversarialKeysaI  
    Keys used by the AdversarialTrainer.
    `REALS` are real images from the batch.
    `FAKES` are fake images generated by the generator. Are the same as PRED.
    `REAL_LOGITS` are logits of the discriminator for the real images.
    `FAKE_LOGIT` are logits of the discriminator for the fake images.
    `RECONSTRUCTION_LOSS` is the loss value computed by the reconstruction loss function.
    `GENERATOR_LOSS` is the loss value computed by the generator loss function. It is the
                discriminator loss for the fake images. That is backpropagated through the generator only.
    `DISCRIMINATOR_LOSS` is the loss value computed by the discriminator loss function. It is the
                discriminator loss for the real images and the fake images. That is backpropagated through the
                discriminator only.
    r   Zreal_logitsr   Zfake_logitsZreconstruction_lossZgenerator_lossZdiscriminator_lossN)r=   r>   r?   r@   r   ZREAL_LOGITSr   ZFAKE_LOGITSZRECONSTRUCTION_LOSSZGENERATOR_LOSSZDISCRIMINATOR_LOSSr9   r9   r9   r:   r    s   r  c                   @  s<   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdS )AdversarialIterationEventszG
    Keys used to define events as used in the AdversarialTrainer.
    Zreconstruction_loss_completedZgenerator_forward_completedZ)generator_discriminator_forward_completedZgenerator_loss_completedZgenerator_backward_completedZgenerator_model_completedZ%discriminator_reals_forward_completedZ%discriminator_fakes_forward_completedZdiscriminator_loss_completedZ discriminator_backward_completedZdiscriminator_model_completedN)r=   r>   r?   r@   ZRECONSTRUCTION_LOSS_COMPLETEDZGENERATOR_FORWARD_COMPLETEDZ)GENERATOR_DISCRIMINATOR_FORWARD_COMPLETEDZGENERATOR_LOSS_COMPLETEDZGENERATOR_BACKWARD_COMPLETEDZGENERATOR_MODEL_COMPLETEDZ%DISCRIMINATOR_REALS_FORWARD_COMPLETEDZ%DISCRIMINATOR_FAKES_FORWARD_COMPLETEDZDISCRIMINATOR_LOSS_COMPLETEDZ DISCRIMINATOR_BACKWARD_COMPLETEDZDISCRIMINATOR_MODEL_COMPLETEDr9   r9   r9   r:   r    s   r  c                   @  s   e Zd ZdZdZdZdS )OrderingTypeZraster_scanZs_curver   N)r=   r>   r?   ZRASTER_SCANZS_CURVEr   r9   r9   r9   r:   r    s   r  c                   @  s   e Zd ZdZdZdZdS )OrderingTransformationsZ	rotate_90	transposerK   N)r=   r>   r?   Z	ROTATE_90Z	TRANSPOSErQ   r9   r9   r9   r:   r    s   r  )G
__future__r   r   enumr   typingr   monai.configr   Zmonai.utilsr   monai.utils.moduler   r   __all__r   r	   Zignite.enginerA   OPT_IMPORT_VERSIONr   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r   r   r   r   r   r!   r"   r   r#   r   r$   r   r   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r  r  r  r  r9   r9   r9   r:   <module>   s   /    
	


	
		 

	
