Ë
    µŒjä  ã                   ór   — d dl Z d dlmZmZmZmZmZmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ  G d„ de«      Zy)	é    N)ÚAnyÚDictÚIteratorÚListÚOptionalÚUnion)ÚDocument)Úget_from_dict_or_env)ÚPyPDFLoader)Ú
BaseLoaderc                   óÄ   — e Zd ZdZ	 ddedee   dee   fd„Zededefd	„«       Z	de
fd
„Zde
de
deeef   defd„Zdee   fd„Zdee   fd„Zdee   fd„Zdee   fd„Zy)ÚRSpaceLoadera'  Load content from RSpace notebooks, folders, documents or PDF Gallery files.

    Map RSpace document <-> Langchain Document in 1-1. PDFs are imported using PyPDF.

    Requirements are rspace_client (`pip install rspace_client`) and PyPDF if importing
     PDF docs (`pip install pypdf`).

    NÚ	global_idÚapi_keyÚurlc                 óv   — |||dœ}t         j                  |«      }|d   | _        |d   | _        |d   | _        y)a²  api_key: RSpace API key - can also be supplied as environment variable
        'RSPACE_API_KEY'
        url: str
        The URL of your RSpace instance - can also be supplied as environment
        variable 'RSPACE_URL'
        global_id: str
         The global ID of the resource to load,
        e.g. 'SD12344' (a single document); 'GL12345'(A PDF file in the gallery);
        'NB4567' (a notebook); 'FL12244' (a folder)
        )r   r   r   r   r   r   N)r   Úvalidate_environmentr   r   r   )Úselfr   r   r   ÚargsÚverified_argss         úu/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/document_loaders/rspace.pyÚ__init__zRSpaceLoader.__init__   sJ   € ð ØØ"ñ*
ˆô
 )5×(IÑ(IÈ$Ó(OˆØ$ YÑ/ˆŒØ  Ñ'ˆŒØ+¨KÑ8ˆ�ó    ÚvaluesÚreturnc                 ón   — t        |dd«      |d<   t        |dd«      |d<   d|vs|d   €t        d«      ‚|S )z3Validate that API key and URL exist in environment.r   ÚRSPACE_API_KEYr   Ú
RSPACE_URLr   zBNo value supplied for global_id. Please supply an RSpace global ID)r
   Ú
ValueError)Úclsr   s     r   r   z!RSpaceLoader.validate_environment,   sS   € ô 1°¸ÐDTÓUˆˆyÑÜ,¨V°U¸LÓIˆˆu‰Ø˜fÑ$¨¨{Ñ(;Ð(CÜØTóð ð ˆr   c                 ó  — 	 ddl m}m} 	 |j	                  | j
                  | j                  «      }|j                  «        ||j                  fS # t        $ r t        d«      ‚w xY w# t        $ r t        d| j
                  › d�«      ‚w xY w)zCreate a RSpace client.r   )ÚelnÚfield_contentz(You must run `pip install rspace_client`z%Unable to initialize client - is url z or api key  correct?)
Úrspace_client.elnr"   r#   ÚImportErrorÚ	ELNClientr   r   Ú
get_statusÚ	ExceptionÚFieldContent)r   r"   r#   s      r   Ú_create_rspace_clientz"RSpaceLoader._create_rspace_client7   s’   € ð	Jß<ð
	Ø—-‘- §¡¨$¯,©,Ó7ˆCØ�N‰NÔð �M×.Ñ.Ð.Ð.øô ò 	JÜÐHÓIÐIð	Jûô ò 	ÜØ7¸¿¹°zÐAVÐWóð ð	ús   ‚A ‹6A' ÁA$Á'#B
Úclir#   Úd_idc                 óæ   — d}|j                  |«      }|d|d   › d�z  }|d   D ]0  }||d   › d�z  } ||d   «      }||j                  «       z  }|dz  }Œ2 t        dd	|d   › d
|d   › �i|¬«      S )NÚ z<h2>Únamez<h2/>ÚfieldsÚ
ÚcontentÚsourcezrspace: Ú-ÚglobalId)ÚmetadataÚpage_content)Úget_documentÚget_textr	   )r   r+   r#   r,   r2   ÚdocÚfÚfcs           r   Ú_get_doczRSpaceLoader._get_docJ   s¨   € ØˆØ×Ñ˜tÓ$ˆØ�T˜#˜f™+˜ eÐ,Ñ,ˆØ�X”ˆAØ˜!˜F™)˜ BÐ'Ñ'ˆGÙ˜q ™|Ó,ˆBØ�r—{‘{“}Ñ$ˆGØ�t‰O‰Gð	 ô
 Ø (¨3¨v©;¨-°q¸¸Z¹Ð8IÐ JÐKØ ô
ð 	
r   c              #   óp   K  — | j                  «       \  }}| j                  ||| j                  «      –— y ­w)N)r*   r=   r   )r   r+   r#   s      r   Ú_load_structured_docz!RSpaceLoader._load_structured_docX   s0   è ø€ Ø!×7Ñ7Ó9Ñˆˆ]Ø�m‰m˜C °·±Ó?Ó?ùs   ‚46c              #   óø   K  — | j                  «       \  }}| j                  r!|j                  | j                  dd  dg¬«      }d   D �cg c]  }|d   ‘Œ	 }}|D ]  }| j                  |||«      –— Œ y c c}w ­w)Né   Údocument)Ú	folder_idÚtypesToIncludeÚrecordsÚid)r*   r   Úlist_folder_treer=   )r   r+   r#   Údocs_in_folderÚdÚdoc_idsÚdoc_ids          r   Ú_load_folder_treezRSpaceLoader._load_folder_tree\   s‹   è ø€ Ø!×7Ñ7Ó9Ñˆˆ]Ø�>Š>Ø ×1Ñ1ØŸ.™.¨¨Ð,¸j¸\ð 2ó ˆNð 0>¸iÒ/HÓIÑ/H¨!˜a ›gÐ/HˆÐIÛˆFØ—-‘-  ]°FÓ;Ó;ñ ùò Jùs   ‚AA:Á
A5Á$A:c              #   óª  K  — | j                  «       \  }}|j                  | j                  «      }t        j                  j                  |d   «      \  }}|j                  «       dk(  ri| j                  › d�}|j                  | j                  |«       t        |«      }|j                  «       D ]  }| j                  |j                  d<   |–— Œ! y y ­w)Nr/   z.pdfÚ
rspace_src)r*   Úget_file_infor   ÚosÚpathÚsplitextÚlowerÚdownload_filer   Ú	lazy_loadr6   )	r   r+   r#   Ú	file_infoÚ_ÚextÚoutfileÚ
pdf_loaderÚpdfs	            r   Ú	_load_pdfzRSpaceLoader._load_pdff   s¶   è ø€ Ø!×7Ñ7Ó9Ñˆˆ]Ø×%Ñ% d§n¡nÓ5ˆ	Ü—‘×!Ñ! )¨FÑ"3Ó4‰ˆˆ3Ø�9‰9‹;˜&Ò ØŸ™Ð(¨Ð-ˆGØ×Ñ˜dŸn™n¨gÔ6Ü$ WÓ-ˆJØ!×+Ñ+Ö-�Ø-1¯^©^�—‘˜\Ñ*Ø“	ñ .ð	 !ùs   ‚CCc              #   ó^  K  — | j                   r(d| j                   v r| j                  «       D ]  }|–— Œ y | j                   r(d| j                   v r| j                  «       D ]  }|–— Œ y | j                   r+| j                   dd dv r| j                  «       D ]  }|–— Œ y t	        d«      ‚­w)NÚGLÚSDr   rA   )ÚFLÚNBzUnknown global ID type)r   r\   r?   rL   r   )r   rI   s     r   rU   zRSpaceLoader.lazy_loadr   s—   è ø€ Ø�>Š>˜d d§n¡nÑ4Ø—^‘^Ö%�Ø“ñ &à�^Š^ ¨¯©Ñ 6Ø×.Ñ.Ö0�Ø“ñ 1à�^Š^ §¡¨q°Ð 3°|Ñ CØ×+Ñ+Ö-�Ø“ñ .ô Ð5Ó6Ð6ùs   ‚B+B-)NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústrr   r   Úclassmethodr   r   r   r*   r   Úintr	   r=   r   r?   rL   r\   rU   © r   r   r   r      sÐ   „ ñð SWñ9Øð9Ø'/°¡}ð9ØBJÈ3Á-ó9ð. ð¨$ð °4ò ó ðð/ só /ð&
˜Cð 
°ð 
¸5ÀÀcÀ¹?ð 
Èxó 
ð@ h¨xÑ&8ó @ð< 8¨HÑ#5ó <ð
˜8 HÑ-ó 
ð7˜8 HÑ-ô 7r   r   )rP   Útypingr   r   r   r   r   r   Úlangchain_core.documentsr	   Úlangchain_core.utilsr
   Ú$langchain_community.document_loadersr   Ú)langchain_community.document_loaders.baser   r   ri   r   r   Ú<module>ro      s(   ðÛ 	ß =× =å -Ý 5å <Ý @ôr7�:õ r7r   