ó
    �®žje
  ã                   ó’   • S SK r S SKrS SKJr  S SKJr  S SKJr  S SK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
r " S S\5      rg)é    N)ÚBytesIO)ÚPath)ÚUnion)ÚDoclingDocumentÚDocumentOrigin)Úoverride)ÚDeclarativeDocumentBackend)ÚInputFormat)ÚInputDocumentzapplication/zipc                   óø   ^ • \ rS rSr\S\S\\\4   SS4U 4S jj5       r	\S\
4S j5       r\\S\
4S j5       5       r\\S\\   4S	 j5       5       rS\\\4   4S
 jr\S\4S j5       r\SU 4S jj5       rSrU =r$ )ÚDocLangArchiveBackendé   Úin_docÚpath_or_streamÚreturnNc                 ó\   >• [         TU ]  X5        S U l        U R                  5       U l        g ©N)ÚsuperÚ__init__Ú	_temp_dirÚ_get_doc_or_errÚ_doc_or_err)Úselfr   r   Ú	__class__s      €Úh/home/mande/repo/quber/.venv/lib/python3.13/site-packages/docling/backend/xml/doclang_archive_backend.pyr   ÚDocLangArchiveBackend.__init__   s*   ø€ ô 	‰Ñ˜Ô0Ø&*ˆŒØ×/Ñ/Ó1ˆÕó    c                 ó6   • [        U R                  [        5      $ r   ©Ú
isinstancer   r   ©r   s    r   Úis_validÚDocLangArchiveBackend.is_valid   s   € ä˜$×*Ñ*¬OÓ<Ð<r   c                 ó   • g)NF© ©Úclss    r   Úsupports_paginationÚ)DocLangArchiveBackend.supports_pagination!   s   € ð r   c                 ó$   • [         R                  1$ r   )r
   ÚDCLXr&   s    r   Úsupported_formatsÚ'DocLangArchiveBackend.supported_formats&   s   € ô × Ñ Ð!Ð!r   c                 óê  •  [        U R                  [        5      (       a!  [        R                  " U R                  5      nOÝ[        U R                  [
        5      (       aœ  [        [        R                  " SS95      U l        U R                  U R                  R                  =(       d    S-  nUR                  U R                  R                  5       5        U R                  S-  n[        R                  " UUS9nO"[        S[        U R                  5      < 35      e[        U R                  R                  =(       d    S[         U R"                  S9Ul        U$ ! [&         a  nUs S nA$ S nAff = f)	NÚdocling_dclx_)Úprefixzdocument.dclxÚ	artifacts)Úartifacts_dirz&Unexpected: type(self.path_or_stream)=Úfile)ÚfilenameÚmimetypeÚbinary_hash)r    r   r   r   Úload_from_doclang_archiver   ÚtempfileÚmkdtempr   r3   ÚnameÚwrite_bytesÚgetvalueÚRuntimeErrorÚtyper   Ú_DCLX_MIMETYPEÚdocument_hashÚoriginÚ	Exception)r   ÚdocÚarchive_pathr2   Úes        r   r   Ú%DocLangArchiveBackend._get_doc_or_err+   s  € ð	Ü˜$×-Ñ-¬t×4Ñ4Ü%×?Ò?À×@SÑ@SÓT‘Ü˜D×/Ñ/´×9Ñ9Ü!%¤h×&6Ò&6¸oÑ&NÓ!O�”Ø#Ÿ~™~°·±·±×1RÀ?ÑS�Ø×(Ñ(¨×)<Ñ)<×)EÑ)EÓ)GÔHØ $§¡°Ñ <�Ü%×?Ò?Ø Ø"/ñ‘ô
 #Ð%L´$°t×7JÑ7JÓ2KÑ1MÐ#NÓOÐOä'ØŸ™Ÿ™×1¨6Ü'Ø ×.Ñ.ñˆCŒJð
 ˆJøÜó 	Ø�Hûð	ús   ‚EE Å
E2Å&E-Å'E2Å-E2c                 óp   • [        U R                  [        5      (       a  U R                  $ U R                  er   r   r!   s    r   ÚconvertÚDocLangArchiveBackend.convertD   s-   € ä�d×&Ñ&¬×8Ñ8Ø×#Ñ#Ð#à×ÑÐr   c                 óÈ   >• U R                   bF  U R                   R                  5       (       a'  [        R                  " U R                   5        S U l         [        TU ]  5         g r   )r   ÚexistsÚshutilÚrmtreer   Úunload)r   r   s    €r   rN   ÚDocLangArchiveBackend.unloadK   s@   ø€ à�>‰>Ñ%¨$¯.©.×*?Ñ*?×*AÑ*AÜ�MŠM˜$Ÿ.™.Ô)Ø!ˆDŒNÜ‰‰Õr   )r   r   )r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r   r   r   r   Úboolr"   Úclassmethodr(   Úsetr
   r,   r   rB   r   rH   rN   Ú__static_attributes__Ú__classcell__)r   s   @r   r   r      sá   ø† Øð2Ø#ð2Ø5:¸7ÀD¸=Ñ5Ið2à	ö2ó ð2ð ð=˜$ó =ó ð=ð Øð Dó ó ó ðð Øð" # kÑ"2ó "ó ó ð"ð  ¸	Ð'AÑ!Bô ð2 ð˜ó ó ðð öó ör   r   )rL   r8   Úior   Úpathlibr   Útypingr   Údocling_core.types.docr   r   Útyping_extensionsr   Ú docling.backend.abstract_backendr	   Údocling.datamodel.base_modelsr
   Údocling.datamodel.documentr   r?   r   r%   r   r   Ú<module>ra      s7   ðó Û Ý Ý Ý ç BÝ &å GÝ 5Ý 4à"€ô<Ð6õ <r   