o
    lQi                     @  s   d dl mZ d dlZd dlZd dlZd dlmZ d dlZd dlm	Z	 edZ
ejd ee
 e	e
d  d dlmZ d dlmZ dddZdddZdddZdd Zedkr]e  dS dS )    )annotationsN)Path)load_dotenvz/home/ubuntu/transcriptsz.env)FinalExportConfig)FinalExportPostgresDBreturnargparse.Namespacec                  C  sj   t jdd} | jdttd d d | jdd d | jd	td
d | jddg d | jdtd
d |  S )Nz:Seed final export video queue from canonical final parquet)descriptionz--input
final_datazIfinal_cleaned_segments_with_variants_rerouted_repetition_filtered.parquet)typedefaultz--run-id)r   z--limit-videosr   z
--video-idappend)actionr   z
--priority)argparseArgumentParseradd_argumentr   ROOTint
parse_args)parser r   "scripts/init_final_export_queue.pyr      s   
r   args
list[dict]c                 C  s   t  }d}g }| jr"ddd | jD }d| d}|| j | jdkr-d| j nd}|d	| j  d
| d| d|	 }g }|D ]#\}}	}
|
t|d| jt|	pYdd d d d dd |
| j dd qH|S )N z, c                 s  s    | ]}d V  qdS )?Nr   ).0_r   r   r   	<genexpr>&   s    zbuild_jobs.<locals>.<genexpr>zWHERE video_id IN ()r   zLIMIT z
        SELECT
            video_id,
            count(*) AS total_segments,
            min(corrected_language) AS corrected_language
        FROM read_parquet('z')
        z=
        GROUP BY video_id
        ORDER BY video_id
        z	
        pending)corrected_languagesource_input)video_idstatusprioritytotal_segments
claimed_by
claimed_at
spooled_atcompleted_atattempt_counterror_messagemetadata_json)duckdbconnectr#   joinextendlimit_videosexecuteinputas_posixfetchallr   strr%   r   )r   convideo_filterparamsplaceholders	limit_sqlrowsjobsr#   r&   r!   r   r   r   
build_jobs!   sN   	
r?   r>   c                   sR   t  }t|j}| I d H  | I d H  || I d H  | I d H  d S )N)r   from_envr   database_urlr/   init_schemaseed_video_jobsclose)r>   configdbr   r   r   	seed_jobsO   s   
rG   c                  C  sN   t  } | jrdd l}| j|jd< t| }tt| tdt	| d d S )Nr   FINAL_EXPORT_RUN_IDzSeeded z final export queue rows)
r   run_idosenvironr?   asynciorunrG   printlen)r   rJ   r>   r   r   r   mainX   s   rP   __main__)r   r   )r   r   r   r   )r>   r   )
__future__r   r   rL   syspathlibr   r.   dotenvr   r   pathinsertr7   src.final_export_configr   src.final_export_dbr   r   r?   rG   rP   __name__r   r   r   r   <module>   s&    


.	
