
    j                        d dl mZ d dlZd dlmZ d dlmZmZmZ d dl	m
Z
mZmZmZ d dlmZ ddhZd	ZddZddZddZddZddZddZd dZdS )!    )annotationsN)uuid4)get_face_library_statusrebuild_face_librarysync_face_library)get_active_face_library_jobget_face_library_joblist_face_library_jobssave_face_library_job)submit_taskrebuildsync)messagestage	processedtotaltaskdict | Nonereturnc                (    | d S t          |           S N)dict)r   s    L/home/longshao/multi-rider-rag/modules/face/services/library_task_service.py_task_snapshotr      s    |t::    
list[dict]c                 6    d t          d          D             S )Nc                ,    g | ]}t          |          S  )r   ).0r   s     r   
<listcomp>z+list_face_library_tasks.<locals>.<listcomp>   s     NNNTN4  NNNr   2   )limit)r
   r   r   r   list_face_library_tasksr$      s"    NN-C"-M-M-MNNNNr   task_idstrc                :    t          t          |                     S r   )r   r	   r%   s    r   get_face_library_taskr)   "   s    .w77888r   c                 8    t          t                                S r   )r   r   r   r   r   get_running_face_library_taskr+   &   s    577888r   r   Nonec                N    |                      |           t          |            d S r   )updater   )r   valuess     r   _update_taskr0   +   s(    KK$r   c           
     L    t                               d          pd                                          }|t          vrt	          d|           d fd}	 t          t          j                              }t           d	                     d
          p|                     d          pd	                     d          pd	           |dk    rt          |          }nt          |          }t           dt          t          j                              |t                      d           d S # t          $ rd}t           dt          t          j                              t          |          t          |          t                                 Y d }~d S d }~ww xY w)Naction !unsupported face library action: r.   r   r   r,   c                R      fdt           D             }|rt          fi | d S d S )Nc                *    i | ]}|v ||         S r   r   )r    keyr.   s     r   
<dictcomp>z?_run_face_library_task.<locals>.progress_cb.<locals>.<dictcomp>6   s$    NNNv3sr   )PROGRESS_KEYSr0   )r.   payloadr   s   ` r   progress_cbz+_run_face_library_task.<locals>.progress_cb5   sK    NNNN}NNN 	*)))))))	* 	*r   runningstart_tsr   r   )statusr=   r   r   r   )r;   done	completed)r>   end_tsresultlibraryr   error)r>   rA   rD   r   rC   )r.   r   r   r,   )r&   getstripVALID_ACTIONS
ValueErrorinttimer0   r   r   r   	Exception)r   r2   r;   nowrB   excs   `     r   _run_face_library_taskrN   0   s   (##)r**0022F]""EVEEFFF* * * * * *

$)++XXj))0SHHY''49((7##0y	
 	
 	
 	
 V&;???FF)kBBBFty{{##+--	
 	
 	
 	
 	
 	
  
 
 
ty{{##c((HH+--	
 	
 	
 	
 	
 	
 	
 	
 	
 	

s   CD5 5
F#?AFF#r2   tuple[dict, bool]c                   t          | pd                                          } | t          vrt          d|            t	                      }||dfS t          t          j                              }t                      j        | ddddd||d di t                      d}t          |           t          dd|d	         i|d	         
           t          |          dfS )Nr3   r4   Fqueuedr   )idr2   r>   r   r   r   r   
created_tsr=   rA   rD   rB   rC   face_libraryjob_idrR   r(   T)r&   rF   rG   rH   r+   rI   rJ   r   hexr   r   r   r   )r2   activerL   r   s       r   start_face_library_taskrX   \   s    2$$&&F]""EVEEFFF*,,Fu}
dikk

Cggk*,, D $4: 6T
KKKK$%%r   )r   r   r   r   )r   r   )r%   r&   r   r   )r   r   )r   r   r   r,   )r2   r&   r   rO   )
__future__r   rJ   uuidr   %modules.face.services.library_servicer   r   r   shared.db.sqliter   r	   r
   r   shared.task_queuer   rG   r9   r   r$   r)   r+   r0   rN   rX   r   r   r   <module>r^      s`   " " " " " "                
            * ) ) ) ) ) F#:   O O O O9 9 9 99 9 9 9
       
)
 )
 )
 )
X& & & & & &r   