o
    6i	                     @  s   d Z ddlmZ ddlZddlZddlZddlZddlZddlm	Z	 ddl
mZ dd ZdddZdd Zedkr>e  dS dS )z
Docker entrypoint: parse args, init worker, run pipeline.
Usage: python -m src.main [--mock] [--worker-id ID] [--gpu-type TYPE] [--key-index 0|1|2]
    )annotationsN   )	EnvConfig)Workerc                   C  s>   t jt jddtjd t dt j t dt j d S )Nz1%(asctime)s [%(levelname)s] %(name)s: %(message)sz%Y-%m-%d %H:%M:%S)levelformatdatefmtstreamhttpxhttpcore)loggingbasicConfigINFOsysstdout	getLoggersetLevelWARNING r   r   $/home/ubuntu/transcripts/src/main.pysetup_logging   s   r   returnargparse.Namespacec                  C  sd   t jdd} | jdddd | jdd d | jd	d d | jd
td dd | jdtd dd |  S )NzGemini Transcription Worker)descriptionz--mock
store_truez$Run in mock mode (no real API calls))actionhelpz--worker-id)defaultz
--gpu-typez--key-indexzIWhich Gemini key to use as primary (0=GEMINI_KEY, 1=PROJECT2, 2=PROJECT3))typer   r   z--max-videosz1Stop after N videos (0=unlimited). For test runs.)argparseArgumentParseradd_argumentint
parse_args)parserr   r   r   r#      s   

r#   c                  C  s$  t   t } td}| jrdtjd< | jr| jtjd< | jr%| jtjd< | j	d ur2t
| j	tjd< | jd ur?t
| jtjd< t }| }|rZ|D ]
}|d|  qJtd	 |d
|j  |d|j dt|j d |d|j  |d|j  t|}t|  d S )Nmaintrue	MOCK_MODE	WORKER_IDGPU_TYPEGEMINI_KEY_INDEX
MAX_VIDEOSzConfig error: r   zStarting worker z  Gemini key index: z (of z keys)z  Mock mode: z  GPU type: )r   r#   r   r   mockosenviron	worker_idgpu_type	key_indexstr
max_videosr   validateerrorr   exitinfogemini_key_indexlengemini_keys	mock_moder   asynciorunstart)argsloggerconfigerrorseworkerr   r   r   r%   (   s2   




 r%   __main__)r   r   )__doc__
__future__r   r   r<   r   r-   r   rA   r   rD   r   r   r#   r%   __name__r   r   r   r   <module>   s    
!
