§
    šŠtj{  ã                   ó€   — d dl Z d dlZd dlmZ d dlmZmZmZmZ d dl	m
Z
 d dlmZmZ d dlmZ  G d„ dee¦  «        ZdS )	é    N)ÚPath)ÚAnyÚDictÚListÚOptional)ÚDocument)Ú	BaseModelÚmodel_validator)Ú
BaseLoaderc                   ó<  — e Zd ZU dZeed<   	 dZee         ed<   	 dZee	e                  ed<   	 dZ
eed<   	  ed¬	¦  «        ed
eeef         defd„¦   «         ¦   «         Zdefd„Zdede	e         fd„Zdedee         fd„Zde	e         fd„Zde	e         fd„ZdS )ÚDropboxLoaderzˆLoad files from `Dropbox`.

    In addition to common files such as text and PDF files, it also supports
    *Dropbox Paper* files.
    Údropbox_access_tokenNÚdropbox_folder_pathÚdropbox_file_pathsFÚ	recursiveÚbefore©ÚmodeÚvaluesÚreturnc                 óê   — |                      d¦  «        �$|                      d¦  «        �t          d¦  «        ‚|                      d¦  «        €$|                      d¦  «        st          d¦  «        ‚|S )zDValidate that either folder_path or file_paths is set, but not both.r   Nr   z.Cannot specify both folder_path and file_pathsz-Must specify either folder_path or file_paths)ÚgetÚ
ValueError)Úclsr   s     új/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/document_loaders/dropbox.pyÚvalidate_inputszDropboxLoader.validate_inputs$   sx   € ð
 �JŠJÐ,Ñ-Ô-Ð9Ø—
’
Ð/Ñ0Ô0Ð<åÐMÑNÔNÐNØ�:Š:Ð+Ñ,Ô,Ð4¸V¿ZºZØ ñ>
ô >
Ð4õ ÐLÑMÔMÐMàˆó    c                 óä   — 	 ddl m}m} n# t          $ r t          d¦  «        ‚w xY w	  || j        ¦  «        }|                     ¦   «          n"# |j        $ r}t          d¦  «        |‚d}~ww xY w|S )zCreate a Dropbox client.r   )ÚDropboxÚ
exceptionsú!You must run `pip install dropboxzEInvalid Dropbox access token. Please verify your token and try again.N)Údropboxr   r    ÚImportErrorr   Úusers_get_current_accountÚ	AuthErrorr   )Úselfr   r    ÚdbxÚexs        r   Ú_create_dropbox_clientz$DropboxLoader._create_dropbox_client4   s¾   € ð	CØ3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3øÝð 	Cð 	Cð 	CÝÐAÑBÔBÐBð	Cøøøð	Ø�'˜$Ô3Ñ4Ô4ˆCØ×)Ò)Ñ+Ô+Ð+Ð+øØÔ#ð 	ð 	ð 	ÝØWñô àðøøøøð	øøøð ˆ
s   ‚ ‹%©$A Á
A-ÁA(Á(A-Úfolder_pathc                 óf  ‡ ‡— ‰                       ¦   «         }	 ddlm} ddlmŠ n# t
          $ r t          d¦  «        ‚w xY w	 |                     |‰ j        ¬¦  «        }n&# |j        $ r}t          d|› d�¦  «        |‚d}~ww xY wˆfd	„|j
        D ¦   «         }d
„ ˆ fd„|D ¦   «         D ¦   «         }|S )z%Load documents from a Dropbox folder.r   ©r    )ÚFileMetadatar!   )r   z$Could not list files in the folder: z.. Please verify the folder path and try again.Nc                 ó4   •— g | ]}t          |‰¦  «        ¯|‘ŒS © )Ú
isinstance)Ú.0Úentryr-   s     €r   ú
<listcomp>z=DropboxLoader._load_documents_from_folder.<locals>.<listcomp>V   s(   ø€ ÐWÐWÐW˜5µzÀ%ÈÑ7VÔ7VÐW�ÐWÐWÐWr   c                 ó   — g | ]}|®|‘ŒS ©Nr/   ©r1   Údocs     r   r3   z=DropboxLoader._load_documents_from_folder.<locals>.<listcomp>W   s%   € ð 
ð 
ð 
àØˆð àˆˆr   c              3   óL   •K  — | ]}‰                      |j        ¦  «        V — Œd S r5   )Ú_load_file_from_pathÚpath_display)r1   Úfiler&   s     €r   ú	<genexpr>z<DropboxLoader._load_documents_from_folder.<locals>.<genexpr>Y   s4   øè è € ÐWÐWÈ˜×1Ò1°$Ô2CÑDÔDÐWÐWÐWÐWÐWÐWr   )r)   r"   r    Údropbox.filesr-   r#   Úfiles_list_folderr   ÚApiErrorr   Úentries)	r&   r*   r'   r    Úresultsr(   ÚfilesÚ	documentsr-   s	   `       @r   Ú_load_documents_from_folderz)DropboxLoader._load_documents_from_folderD   s9  øø€ à×)Ò)Ñ+Ô+ˆð	CØ*Ð*Ð*Ð*Ð*Ð*Ø2Ð2Ð2Ð2Ð2Ð2Ð2øÝð 	Cð 	Cð 	CÝÐAÑBÔBÐBð	Cøøøð	Ø×+Ò+¨KÀ4Ä>Ð+ÑRÔRˆGˆGøØÔ"ð 	ð 	ð 	Ýð?°{ð ?ð ?ð ?ñô ð ðøøøøð	øøøð XÐWÐWÐW G¤OÐWÑWÔWˆð
ð 
àWÐWÐWÐWÐQVÐWÑWÔWð
ñ 
ô 
ˆ	ð
 Ðs    ˜% ¥?ÁA  Á 
BÁ*A>Á>BÚ	file_pathc                 ó´  — |                       ¦   «         }	 ddlm} n# t          $ r t          d¦  «        ‚w xY w	 |                     |¦  «        }|j        r|                     |¦  «        \  }}n |j        r|                     |d¦  «        \  }}n&# |j	        $ r}t          d|› d�¦  «        |‚d}~ww xY w	 |j                             d¦  «        }�nP# t          $ �rB t          j                             |¦  «        d	                              ¦   «         }	|	d
k    rît%          d|› d�¦  «         ddlm}
 t+          j        ¦   «         }t/          |j        ¦  «        dz  }t3          |d¬¦  «        5 }|                     |j        ¦  «         ddd¦  «         n# 1 swxY w Y   	  |
t7          |¦  «        ¦  «        }|                     ¦   «         }|r
|d         cY S nA# t:          $ r!}t%          d|› d|› �¦  «         Y d}~Y dS d}~ww xY wt%          d|› d�¦  «         Y dS w xY wd|› �t          j                             |¦  «        dœ}t?          ||¬¦  «        S )z Load a file from a Dropbox path.r   r,   r!   ÚmarkdownzCould not load file: z+. Please verify the file pathand try again.Nzutf-8é   z.pdfzFile z type detected as .pdf)ÚUnstructuredPDFLoaderztmp.pdfÚwbr   z Error while trying to parse PDF z: z/ could not be decoded as pdf or text. Skipping.z
dropbox://)ÚsourceÚtitle)Úpage_contentÚmetadata) r)   r"   r    r#   Úfiles_get_metadataÚis_downloadableÚfiles_downloadÚexport_infoÚfiles_exportr?   r   ÚcontentÚdecodeÚUnicodeDecodeErrorÚosÚpathÚsplitextÚlowerÚprintÚ$langchain_community.document_loadersrI   ÚtempfileÚTemporaryDirectoryr   ÚnameÚopenÚwriteÚstrÚloadÚ	ExceptionÚbasenamer   )r&   rE   r'   r    Úfile_metadataÚ_Úresponser(   ÚtextÚfile_extensionrI   Útemp_dirÚtemp_pdfÚfÚloaderÚdocsÚpdf_exrN   s                     r   r9   z"DropboxLoader._load_file_from_path^   s>  € à×)Ò)Ñ+Ô+ˆð	CØ*Ð*Ð*Ð*Ð*Ð*Ð*øÝð 	Cð 	Cð 	CÝÐAÑBÔBÐBð	Cøøøð	Ø×2Ò2°9Ñ=Ô=ˆMàÔ,ð FØ!×0Ò0°Ñ;Ô;‘��8�8ð Ô*ð FØ!×.Ò.¨y¸*ÑEÔE‘��8øøàÔ"ð 	ð 	ð 	Ýð!¨	ð !ð !ð !ñô ð ðøøøøð	øøøð	ØÔ#×*Ò*¨7Ñ3Ô3ˆD‰DøÝ!ð 	ñ 	ð 	ÝœW×-Ò-¨iÑ8Ô8¸Ô;×AÒAÑCÔCˆNà Ò'Ð'ÝÐ?˜iÐ?Ð?Ð?Ñ@Ô@Ð@ØVÐVÐVÐVÐVÐVõ $Ô6Ñ8Ô8�Ý ¤Ñ.Ô.°Ñ:�Ý˜(¨Ð.Ñ.Ô.ð .°!Ø—G’G˜HÔ,Ñ-Ô-Ð-ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð Ø2Ð2µ3°x±=´=ÑAÔA�FØ!Ÿ;š;™=œ=�DØð 'Ø# Aœw˜˜˜ð'øå ð  ð  ð  ÝÐR¸YÐRÐRÈ&ÐRÐRÑSÔSÐSØ˜4˜4˜4˜4˜4˜4øøøøð øøøõ ØV˜IÐVÐVÐVñô ð ð �4�4ð5	øøøð: / 9Ð.Ð.Ý”W×%Ò% iÑ0Ô0ð
ð 
ˆõ  T°HÐ=Ñ=Ô=Ð=s‡   – �7»AB Â
B4ÂB/Â/B4Â8C ÃBH!Å0FÆH!ÆF	ÆH!ÆF	ÆH!Æ#5GÇH!ÇH!Ç
HÇ&HÇ;H!ÈHÈH!È H!c                 ój   ‡ — ‰ j         st          d¦  «        ‚d„ ˆ fd„‰ j         D ¦   «         D ¦   «         S )z1Load documents from a list of Dropbox file paths.zfile_paths must be setc                 ó   — g | ]}|®|‘ŒS r5   r/   r6   s     r   r3   z<DropboxLoader._load_documents_from_paths.<locals>.<listcomp>    s)   € ð 
ð 
ð 
àð ˆð ð
 ˆˆr   c              3   óB   •K  — | ]}‰                      |¦  «        V — Œd S r5   )r9   )r1   rE   r&   s     €r   r<   z;DropboxLoader._load_documents_from_paths.<locals>.<genexpr>¢   sE   øè è € ð ð àð ×)Ò)¨)Ñ4Ô4ðð ð ð ð ð r   )r   r   ©r&   s   `r   Ú_load_documents_from_pathsz(DropboxLoader._load_documents_from_paths›   sd   ø€ àÔ&ð 	7ÝÐ5Ñ6Ô6Ð6ð
ð 
ðð ð ð à!%Ô!8ðñ ô ð
ñ 
ô 
ð 	
r   c                 ól   — | j         �|                      | j         ¦  «        S |                      ¦   «         S )zLoad documents.)r   rD   ru   rt   s    r   rc   zDropboxLoader.load©   s4   € àÔ#Ð/Ø×3Ò3°DÔ4LÑMÔMÐMà×2Ò2Ñ4Ô4Ð4r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__rb   Ú__annotations__r   r   r   r   r   Úboolr
   Úclassmethodr   r   r   r)   r   rD   r9   ru   rc   r/   r   r   r   r      sl  € € € € € € ðð ð ÐÐÑØØ)-Ð˜ #œÐ-Ð-Ñ-Ø'Ø.2Ð˜  c¤Ô+Ð2Ð2Ñ2Ø&Ø€IˆtÐÐÑØMà€_˜(Ð#Ñ#Ô#Øð T¨#¨s¨(¤^ð ¸ð ð ð ñ „[ñ $Ô#ðð¨ð ð ð ð ð °sð ¸tÀH¼~ð ð ð ð ð4;>¨cð ;>°h¸xÔ6Hð ;>ð ;>ð ;>ð ;>ðz
¨D°¬Nð 
ð 
ð 
ð 
ð5�d˜8”nð 5ð 5ð 5ð 5ð 5ð 5r   r   )rW   r]   Úpathlibr   Útypingr   r   r   r   Úlangchain_core.documentsr   Úpydanticr	   r
   Ú)langchain_community.document_loaders.baser   r   r/   r   r   ú<module>rƒ      sË   ðð 
€	€	€	Ø €€€Ø Ð Ð Ð Ð Ð Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,à -Ð -Ð -Ð -Ð -Ð -Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /à @Ð @Ð @Ð @Ð @Ð @ðZ5ð Z5ð Z5ð Z5ð Z5�J 	ñ Z5ô Z5ð Z5ð Z5ð Z5r   