o
    "Æil  ã                   @   sz   d dl mZmZ d dlmZ d dlmZmZmZ eG dd„ dƒƒZ	eG dd„ dƒƒZ
eG dd	„ d	ƒƒZG d
d„ deƒZdS )é    )ÚABCÚabstractmethod)Ú	dataclass)ÚDictÚAnyÚOptionalc                   @   s>   e Zd ZU eed< eed< eed< eed< eeef ed< dS )ÚTrainingConfigÚnameÚdescriptionÚ
dataset_idÚ
model_nameÚhyperparametersN©Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__r   r   © r   r   úU/lsinfo/ai/hellotax_ai/training_center/backend/app/services/training_platform/base.pyr      s   
 r   c                   @   s6   e Zd ZU eed< eed< eed< dZee ed< dS )Ú	JobStatusÚstatusÚprogressÚmessageNÚlogs)r   r   r   r   r   Úfloatr   r   r   r   r   r   r      s
   
 r   c                   @   s6   e Zd ZU eed< eeef ed< eeef ed< dS )ÚTrainingResultÚmodel_idÚmetricsÚ	artifactsNr   r   r   r   r   r      s   
 r   c                   @   sd   e Zd Zededefdd„ƒZededefdd„ƒZedede	fdd	„ƒZ
ededefd
d„ƒZdS )ÚTrainingPlatformÚconfigÚreturnc                 C   ó   d S ©Nr   )Úselfr!   r   r   r   Úcreate_training_job   ó   z$TrainingPlatform.create_training_jobÚjob_idc                 C   r#   r$   r   ©r%   r(   r   r   r   Úget_job_status#   r'   zTrainingPlatform.get_job_statusc                 C   r#   r$   r   r)   r   r   r   Úget_job_result'   r'   zTrainingPlatform.get_job_resultc                 C   r#   r$   r   r)   r   r   r   Ú
cancel_job+   r'   zTrainingPlatform.cancel_jobN)r   r   r   r   r   r   r&   r   r*   r   r+   Úboolr,   r   r   r   r   r       s    r    N)Úabcr   r   Údataclassesr   Útypingr   r   r   r   r   r   r    r   r   r   r   Ú<module>   s    