U
    |Ph^                     @  sv   d dl mZ d dlmZmZmZmZ d dlmZ ddl	m
Z
mZ G dd dZG dd	 d	eeZG d
d dee
ZdS )    )annotations)TYPE_CHECKINGAnyMappingSequence)optional_import   )TensorBoardImageHandlerTensorBoardStatsHandlerc                
   @  s.   e Zd ZdZdddddddddd		d
dZdS )ClearMLHandleraU  
    Base class for the handlers to log everything to ClearML.
    For more details of ClearML usage, please refer to:
    https://clear.ml/docs/latest/docs/references/sdk/task

    Usage example is available in the tutorial:
    https://github.com/Project-MONAI/tutorials/blob/master/3d_segmentation/unet_segmentation_3d_ignite.ipynb.

    
str | None
str | boolSequence[str] | Nonebool&bool | Mapping[str, bool | str | list]bool | Mapping[str, bool]None)	project_name	task_name
output_uritagsreuse_last_task_idcontinue_last_taskauto_connect_frameworksauto_connect_arg_parserreturnc	              
   C  sT   t rddl}	ntd\}	}
|	j r2|	j | _n|	jj||||||||d| _dS )  
        Args:
            project_name: ClearML project name, default to 'MONAI'.
            task_name: ClearML task name, default to 'monai_experiment'.
            output_uri: The default location for output models and other artifacts, default to 'True'.
            tags: Add a list of tags (str) to the created Task, default to 'None'.
            reuse_last_task_id: Force a new Task (experiment) with a previously used Task ID, default to 'True'.
            continue_last_task: Continue the execution of a previously executed Task (experiment), default to 'False'.
            auto_connect_frameworks: Automatically connect frameworks, default to 'True'.
            auto_connect_arg_parser: Automatically connect an argparse object to the Task, default to 'True'.

        r   Nclearmlr   r   r   r   r   r   r   r   )r   r   r   Taskcurrent_taskZclearml_taskinit)selfr   r   r   r   r   r   r   r   r   _ r$   T/home/dell461/cl/sdc2/HISourceFinder-master-l/src/monai/handlers/clearml_handlers.py__init__    s    

zClearMLHandler.__init__N__name__
__module____qualname____doc__r&   r$   r$   r$   r%   r      s   
r   c                   @  s4   e Zd ZdZddddd	d
d
ddddddddZdS )ClearMLStatsHandlera<  

    Class to write tensorboard stats by inheriting TensorBoardStatsHandler class.
    Everything from Tensorboard is logged automatically to ClearML.

    Usage example is available in the tutorial:
    https://github.com/Project-MONAI/tutorials/blob/master/3d_segmentation/unet_segmentation_3d_ignite.ipynb.

    MONAImonai_experimentTNFr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   argskwargsr   c	                 O  s2   t j| ||||||||d	 tj| f|	|
 dS r   r   N)r   r&   r
   r"   r   r   r   r   r   r   r   r   r0   r1   r$   r$   r%   r&   Y   s    zClearMLStatsHandler.__init__)r-   r.   TNTFTTr'   r$   r$   r$   r%   r,   N   s           r,   c                   @  s4   e Zd ZdZddddd	d
d
ddddddddZdS )ClearMLImageHandlera8  

    This class inherits all functionality from TensorBoardImageHandler class.
    Everything from Tensorboard is logged automatically to ClearML.

    Usage example is available in the tutorial:
    https://github.com/Project-MONAI/tutorials/blob/master/3d_segmentation/unet_segmentation_3d_ignite.ipynb.

    r-   r.   TNFr   r   r   r   r   r   r   r   r/   c	                 O  s2   t j| ||||||||d	 tj| f|	|
 dS r2   )r   r&   r	   r3   r$   r$   r%   r&      s    zClearMLImageHandler.__init__)r-   r.   TNTFTTr'   r$   r$   r$   r%   r4      s           r4   N)
__future__r   typingr   r   r   r   monai.utilsr   tensorboard_handlersr	   r
   r   r,   r4   r$   r$   r$   r%   <module>   s   93