ó
    �®žjä  ã                   ó.  • S SK r S SKJrJr  S SKJr  S SKJr  S SKJ	r	J
r
JrJrJrJr  S SKJrJrJrJrJrJrJrJr  S SKJr  S SKJr  S S	KJr  S S
KJr  S SK J!r!  \ RD                  " \#5      r$\ " S S5      5       r%\ " S S5      5       r& " S S\5      r'g)é    N)Ú	dataclassÚfield)ÚBytesIO)ÚPath)ÚContentLayerÚDocItemLabelÚDoclingDocumentÚDocumentOriginÚ
FormattingÚTrackSource)ÚWebVTTCueBoldSpanÚWebVTTCueComponentÚ WebVTTCueComponentWithTerminatorÚWebVTTCueItalicSpanÚWebVTTCueTextSpanÚWebVTTCueUnderlineSpanÚWebVTTCueVoiceSpanÚ
WebVTTFile)Úoverride)ÚDeclarativeDocumentBackend)ÚInputFormat)ÚInputDocument)ÚDocumentLoadErrorc                   óN   • \ rS rSr% \\S'   Sr\S-  \S'   Sr\S-  \S'   S r	Sr
g)ÚAnnotatedTexté%   ÚtextNÚvoiceÚ
formattingc                 ó†   • [        UU R                  U R                  (       a  U R                  R                  5       S9$ S S9$ )N)r   r   r   )r   r   r   Ú
model_copy)Úselfr   s     Ú[/home/mande/repo/quber/.venv/lib/python3.13/site-packages/docling/backend/webvtt_backend.pyÚ	copy_metaÚAnnotatedText.copy_meta+   s@   € ÜØØ—*‘*Ø7;··�t—‘×1Ñ1Ó3ñ
ð 	
ð MQñ
ð 	
ó    © )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚstrÚ__annotations__r   r   r   r$   Ú__static_attributes__r'   r&   r#   r   r   %   s)   ‡ à
ƒIØ€Eˆ3�‰:ÓØ$(€J�
˜TÑ!Ó(õ
r&   r   c                   ó&   • \ rS rSr% \\   \S'   Srg)ÚAnnotatedParé3   Úitemsr'   N)r(   r)   r*   r+   Úlistr   r-   r.   r'   r&   r#   r0   r0   3   s   ‡ à�ÑÖr&   r0   c                   óÒ   ^ • \ rS rSrSr\S\S\\-  4U 4S jj5       r	\S\
4S j5       r\\S\
4S j5       5       r\S	 5       r\\S\\   4S
 j5       5       r\S\4S j5       rSrU =r$ )ÚWebVTTDocumentBackendé8   a"  Declarative backend for WebVTT (.vtt) files.

This parser reads the content of a WebVTT file and converts
it to a DoclingDocument, following the W3C specs on https://www.w3.org/TR/webvtt1

Each cue becomes a TextItem and the items are appended to the
document body by the cue's start time.
Úin_docÚpath_or_streamc                 óì  >• [         TU ]  X5        SU l         [        U R                  [
        5      (       a.  U R                  R                  5       R                  S5      U l        [        U R                  [        5      (       a3  [        U R                  SS9 nUR                  5       U l        S S S 5        g g ! , (       d  f       g = f! [         a  n[        SU R                   S35      UeS nAff = f)NÚ z	utf-8-sig)Úencodingz;Could not initialize the WebVTT backend for file with hash Ú.)ÚsuperÚ__init__ÚcontentÚ
isinstancer8   r   ÚgetvalueÚdecoder   ÚopenÚreadÚ	Exceptionr   Údocument_hash)r"   r7   r8   ÚfÚeÚ	__class__s        €r#   r>   ÚWebVTTDocumentBackend.__init__B   sÎ   ø€ ä‰Ñ˜Ô0àˆŒð
	Ü˜$×-Ñ-¬w×7Ñ7Ø#×2Ñ2×;Ñ;Ó=×DÑDÀ[ÓQ�”Ü˜$×-Ñ-¬t×4Ñ4Ü˜$×-Ñ-¸ÒDÈØ#$§6¡6£8�D”L÷ EÐDð 5ßDÕDûäó 	Ü#ØMØ×%Ñ%Ð& að)óð ðûð	ús6   ™B C
 ÂB9Â/C
 Â9
CÃC
 ÃC
 Ã

C3ÃC.Ã.C3Úreturnc                 óB   • [         R                  " U R                  5      $ ©N)r   Úverify_signaturer?   ©r"   s    r#   Úis_validÚWebVTTDocumentBackend.is_validV   s   € ä×*Ò*¨4¯<©<Ó8Ð8r&   c                 ó   • g)NFr'   ©Úclss    r#   Úsupports_paginationÚ)WebVTTDocumentBackend.supports_paginationZ   s   € ð r&   c                 ó„   • [        U R                  [        5      (       a  U R                  R                  5         S U l        g rM   )r@   r8   r   ÚcloserO   s    r#   ÚunloadÚWebVTTDocumentBackend.unload_   s/   € ä�d×)Ñ)¬7×3Ñ3Ø×Ñ×%Ñ%Ô'Ø"ˆÕr&   c                 ó$   • [         R                  1$ rM   )r   ÚVTTrS   s    r#   Úsupported_formatsÚ'WebVTTDocumentBackend.supported_formatse   s   € ô —‘Ð Ð r&   c           
      ó`  ^^^	^
^^• [         R                  S5        U R                  5       (       d  [        S5      e[	        U R
                  R                  =(       d    SSU R                  S9n[        U R
                  R                  =(       d    SUS9m
[        R                  " U R                  5      n/ m	/ mS[        [           SS 4UU	U4S	 jjm SS
[        S[         S -  S["        4UU
U4S jjjnUR$                  (       a(  T
R'                  UR$                  [(        R*                  S9  UR,                   Hñ  m/ m	/ mTR.                  (       a  [        TR.                  5      OS mT" TR0                  5        T	 Hª  nUR2                  (       d  M  [5        UR2                  5      S:X  a-  UR2                  S   nU" UR6                  UR8                  US9  M\  T
R;                  S[(        R*                  S9nUR2                   H   nU" UR6                  UR8                  UUS9  M"     M¬     Mó     T
$ )NzStarting WebVTT conversion...zInvalid WebVTT document.Úfileztext/vtt)ÚfilenameÚmimetypeÚbinary_hash)ÚnameÚoriginÚpayloadrK   c                 ó&  >• T(       d  TR                  [        / S95        U  GHê  nT(       a  TS   R                  S5      O[        SS9nUR                  n[        U[        5      (       a1  UR                  Ul        TS   R                  R                  U5        GOH[        U[        5      (       a4  UR                  =(       d
    [        5       Ul
        SUR                  l        OÂ[        U[        5      (       a4  UR                  =(       d
    [        5       Ul
        SUR                  l        Oy[        U[        5      (       a4  UR                  =(       d
    [        5       Ul
        SUR                  l        O0[        U["        5      (       a  UR$                  R&                  Ul        TR                  U5        T" UR*                  R,                  5        TR/                  5         UR0                  c  GMÒ  TR                  [        / S95        GMí     g )N)r2   éÿÿÿÿr:   )r   T)Úappendr0   r$   r   Ú	componentr@   r   r   r2   r   r   r   Úboldr   Úitalicr   Ú	underliner   Ú	start_tagÚ
annotationr   Úinternal_textÚ
componentsÚpopÚ
terminator)rf   ÚcompÚitemrj   Ú_extract_componentsÚcue_textÚparentss       €€€r#   rv   Ú:WebVTTDocumentBackend.convert.<locals>._extract_components{   sn  ø€ ö Ø—‘¤°2Ñ 6Ô7Ü�æ18�G˜B‘K×)Ñ)¨"Ô-¼mÐQSÑ>Tð ð 15·±�	Ü˜iÔ):×;Ñ;Ø )§¡�D”Ið ˜R‘L×&Ñ&×-Ñ-¨dÖ3ô " )Ô->×?Ñ?Ø*.¯/©/×*I¼Z»\˜œØ/3˜Ÿ™Õ,ä# IÔ/B×CÑCØ*.¯/©/×*I¼Z»\˜œØ15˜Ÿ™Õ.ä# IÔ/E×FÑFØ*.¯/©/×*I¼Z»\˜œØ48˜Ÿ™Õ1ä# IÔ/A×BÑBà%.×%8Ñ%8×%CÑ%C˜œ
à—N‘N 4Ô(Ù'¨	×(?Ñ(?×(JÑ(JÔKØ—K‘K”Mà—?‘?Ô.Ø—O‘O¤L°rÑ$:×;òC  r&   r   r   ru   c           	      ó  >• [        TR                  R                  R                  TR                  R                  R                  TUR
                  =(       d    S S9nTR                  [        R                  U [        R                  UUUS9  g )N)Ú
start_timeÚend_timeÚ
identifierr   )Úlabelr   Úcontent_layerr   ÚparentÚsource)r   ÚtimingsÚstartÚsecondsÚendr   Úadd_textr   ÚTEXTr   ÚBODY)r   r   ru   r€   ÚtrackÚblockÚdocr}   s        €€€r#   Ú_add_text_itemÚ5WebVTTDocumentBackend.convert.<locals>._add_text_item¤   su   ø€ ô  Ø Ÿ=™=×.Ñ.×6Ñ6ØŸ™×*Ñ*×2Ñ2Ø%Ø—j‘j×( Dñ	ˆEð �L‰LÜ"×'Ñ'ØÜ*×/Ñ/Ø%ØØð ò r&   )r   é   r   )r   r   ru   zWebVTT cue span)r   r   ru   r€   rM   )Ú_logÚdebugrP   ÚRuntimeErrorr
   r`   rd   rF   r	   Ústemr   Úparser?   r3   r   r,   r   r   ÚtitleÚ	add_titler   rˆ   Ú
cue_blocksr}   rf   r2   Úlenr   r   Úadd_inline_group)r"   re   ÚvttrŒ   Úparru   Úgrouprv   rŠ   rw   r‹   r}   rx   s          @@@@@@r#   ÚconvertÚWebVTTDocumentBackend.convertj   sÕ  ý€ ä�
‰
Ð2Ô3Ø�}‰}�‰ÜÐ9Ó:Ð:äØ—Y‘Y—^‘^×- vØØ×*Ñ*ñ
ˆô
  4§9¡9§>¡>×#;°VÀFÑKˆä$×*Ò*¨4¯<©<Ó8ˆØ')ˆØ')ˆð'	<ÜÔ:Ñ;ð'	<à÷'	<ñ '	<ðZ ñ		Üð	ä" TÑ)ð	ô  ÷	ò 	ð, �9�9Ø�M‰M˜#Ÿ)™)´<×3DÑ3DˆMÑEØ—^”^ˆEØˆHØˆGØ27×2B×2Bœ˜U×-Ñ-Ô.ÈˆJÙ §¡Ô.Û�Ø—y—yÙÜ�s—y‘y“> QÓ&ØŸ9™9 Q™<�DÙ"Ø!ŸY™YØ#'§?¡?Ø!ôð  ×0Ñ0Ø)¼×9JÑ9Jð 1ð �Eð !$§	¤	˜Ù&Ø!%§¡Ø'+§¡Ø!%Ø#(ô	ó !*ó  ñ $ð6 ˆ
r&   )r?   r8   )r(   r)   r*   r+   Ú__doc__r   r   r   r   r>   ÚboolrP   ÚclassmethodrU   rY   Úsetr   r]   r	   rœ   r.   Ú__classcell__)rI   s   @r#   r5   r5   8   sÆ   ø† ñð ð˜}ð ¸gÈ¹nö ó ðð& ð9˜$ó 9ó ð9ð Øð Dó ó ó ðð ñ#ó ð#ð
 Øð! # kÑ"2ó !ó ó ð!ð ðl˜ó ló ölr&   r5   )(ÚloggingÚdataclassesr   r   Úior   Úpathlibr   Údocling_core.types.docr   r   r	   r
   r   r   Údocling_core.types.doc.webvttr   r   r   r   r   r   r   r   Útyping_extensionsr   Ú docling.backend.abstract_backendr   Údocling.datamodel.base_modelsr   Údocling.datamodel.documentr   Údocling.exceptionsr   Ú	getLoggerr(   r�   r   r0   r5   r'   r&   r#   Ú<module>r¯      sŽ   ðó ß (Ý Ý ÷÷ ÷	÷ 	ó 	õ 'å GÝ 5Ý 4Ý 0à×Ò˜Ó"€ð ÷

ð 

ó ð

ð ÷ð ó ðô_Ð6õ _r&   