
    Xj                     h    d dl Z d dlmZmZ ddlmZmZmZmZ  ee	          Z
 G d de          ZdS )    N)
get_loggerlog_execution   )	JobStatusTrainingConfigTrainingPlatformTrainingResultc                   v    e Zd Zd Z ee          dedefd            Zdede	fdZ
dedefdZdedefdZd	S )
MockPlatformc                     i | _         d S )N)jobs)selfs    U/lsinfo/ai/hellotax_ai/training_center/backend/app/services/training_platform/mock.py__init__zMockPlatform.__init__   s    %'			    configreturnc                     t          t          j                              }|dddd| j        |<   t                              |                              d           |S )Ng        runningr   )r   progressstatuschecksjob_idzMock training job created)struuiduuid4r   loggerbindinfo)r   r   r   s      r   create_training_jobz MockPlatform.create_training_job   sV    TZ\\""'-3)_`aa	&6""''(CDDDr   r   c                 N   || j         vrt          d| d          | j         |         }|dxx         dz  cc<   t          |d         dz  d          |d<   |d         dk    rd|d	<   t          dd
dd          S t          d|d         d|d          dd|d          d          S )NJob 
 not foundr   r   
   d   r   	completedr   g      Y@zTraining completed successfullyzMock training logs)r   r   messagelogsr   zTraining in progress: %zMock training logs at )r   
ValueErrorminr   r   r   jobs      r   get_job_statuszMockPlatform.get_job_status   s   ""6F666777iHc(mb0#66Jz?c!!'CMK%Ij  rF  G  G  G  G	C
OMxfijtfuMxMxMx  @k  Y\  ]g  Yh  @k  @k  @k  l  l  l  	lr   c                     || j         vrt          d| d          | j         |         }|d         dk    rt          d| d          t          d|d d          dd	d
dd| i          S )Nr#   r$   r   r'   z not completed yetmock_model_   g      ?gffffff?)lossaccuracy
model_pathz/mock/models/)model_idmetrics	artifacts)r   r+   r	   r-   s      r   get_job_resultzMockPlatform.get_job_result!   s    ""6F666777ix=K''>F>>>???'AVBQBZ'A'ATXfjKkKk  yE  G_  W]  G_  G_  x`  a  a  a  	ar   c                     || j         vrdS d| j         |         d<   t                              |                              d           dS )NF	cancelledr   r   zMock training job cancelledT)r   r   r   r    )r   r   s     r   
cancel_jobzMockPlatform.cancel_job)   sM    ""5&1	&(#6""''(EFFFtr   N)__name__
__module____qualname__r   r   r   r   r   r!   r   r/   r	   r9   boolr<    r   r   r   r   
   s        ( ( ( ]6. S    	lS 	lY 	l 	l 	l 	laS a^ a a a a       r   r   )r   common_loggingr   r   baser   r   r   r	   r=   r   r   rA   r   r   <module>rD      s     4 4 4 4 4 4 4 4 M M M M M M M M M M M M	H		$ $ $ $ $# $ $ $ $ $r   