L iHddlmZddlZddlZddlZddlmZddlmZddl m Z ddl m Z dZ dZd Zdd Zdd Zdd Zdd ZddZ ddZy)) annotationsN)Path)runtime)caching)calc_md5z3\d{2}:\d{2}:\d{2},\d{3} --> \d{2}:\d{2}:\d{2},\d{3}z(\d{2}:\d{2}:\d{2}),(\d{3})).srt.vttct|trtj|}t|tr$tj|j d}|j d|jd} |jdj}|jd}t|dk\r3|djr tjt |d}|ryy#t$rYywxYw) Nutf-8r!F T) isinstancebytesioBytesIOstrencodeseekreaddecodestripUnicodeDecodeErrorsplitlenisdigitresearchSRT_VALIDATION_REGEX)streamheader header_strlinesmatchs k/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/streamlit/elements/lib/subtitle_utils.py_is_srtr'$s&% F#&#FMM'23 KKN [[_F]]7+113   T "E 5zQ58++- .a9   s=C// C;:C;cNt|tr |jd}t|t st dt|dtjtd|}d|z}|jjdS#t$r}t d|d}~wwxYw)a Convert subtitles from SubRip (.srt) format to WebVTT (.vtt) format. This function accepts the content of the .srt file either as a string or as a BytesIO stream. Parameters ---------- srt_data : str or bytes The content of the .srt file as a string or a bytes stream. Returns ------- bytes The content converted into .vtt format. r z+Could not decode the input stream as UTF-8.Nz.Input must be a string or a bytes stream, not .z\1.\2zWEBVTT ) rrrr ValueErrorr TypeErrortypersubSRT_CONVERSION_REGEXrr)srt_dataevtt_data vtt_contents r& _srt_to_vttr3Gs$(E" Sw/H h $?@@!'')N  *n.B$$W--~>** T UU " "s =DD(ct|jd|j}t|r t|S|S)AHandles io.BytesIO data, converting SRT to VTT content if needed.r)rgetvaluer'r3)r! stream_datas r&_handle_stream_datarKs/ KKN//#K'.v;{ #GKGc2t|r t|S|S)rH)r'r3)datas r&_handle_bytes_datarOs ' ;t 747rLct|ttfr t|}nZt|tj r t |}n4t|tr t|}ntdt|dtjrft|j}tjj j#|d||d}t%j&|d||Sy)Nz)Invalid binary data format for subtitle: r)ztext/vttr ) path_or_datamimetype coordinates file_namer7)rrrrFrrrKrrOr+r,rexistsrr get_instancemedia_file_mgraddrsave_media_data)rSrNlabel subtitle_datafilenamefile_urls r&process_subtitle_datar^s $d $3D9 D"** %+D1 D% *40 CDJrgsz# %# N5+ F$/NV4H8  )  rL