o
    lQi                     @  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 )z2
Entrypoint for transcript-variant shard workers.
    )annotationsN   )	EnvConfig)TranscriptVariantWorkerc                   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   src/variant_main.pysetup_logging   s   r   returnargparse.Namespacec                  C  s   t jdd} | jdd d | jdd d | jdtd d | jdtd d | jd	td d | jd
td d | jdtd d | jdtd d |  S )NzTranscript variant worker)descriptionz--worker-id)defaultz
--gpu-typez--key-index)typer   z
--max-jobsz--max-rows-per-jobz--concurrent-requestsz--pack-target-videosz--pack-target-rows)argparseArgumentParseradd_argumentint
parse_args)parserr   r   r   r       s   r    c                  C  s  t   t } td}| jr| jtjd< | jr| jtjd< | jd ur*t	| jtjd< | j
d ur7t	| j
tjd< | jd urDt	| jtjd< | jd urQt	| jtjd< | jd ur^t	| jtjd< | jd urkt	| jtjd	< t }g }|js|js{|d
 |js|d |js|d |r|D ]}|d| qtd |d|j |d|jt|j |d|j t|}t|  d S )Nvariant_main	WORKER_IDGPU_TYPEGEMINI_KEY_INDEXVARIANT_MAX_JOBSVARIANT_MAX_ROWS_PER_JOBVARIANT_CONCURRENT_REQUESTSVARIANT_PACK_TARGET_VIDEOSVARIANT_PACK_TARGET_ROWSz At least one GEMINI_KEY requiredzDATABASE_URL is requiredzR2_ENDPOINT_URL is requiredzConfig error: %sr   z%Starting transcript variant worker %sz#  Gemini key index: %s (of %s keys)z  GPU type: %s)r   r    r   r   	worker_idosenvirongpu_type	key_indexstrmax_jobsmax_rows_per_jobconcurrent_requestspack_target_videospack_target_rowsr   	mock_modegemini_keysappenddatabase_urlr2_endpoint_urlerrorr   exitinfogemini_key_indexlenr   asynciorunstart)argsloggerconfigerrorsr;   workerr   r   r   main(   sJ   










rH   __main__)r   r   )__doc__
__future__r   r   r@   r   r,   r   rE   r   variant_workerr   r   r    rH   __name__r   r   r   r   <module>   s    
,
