§
    šŠtjä  ã                   óz   — 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dS )	é    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dS )Ú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                 ó”   — |||dœ}t                                |¦  «        }|d         | _        |d         | _        |d         | _        dS )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         úi/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/document_loaders/rspace.pyÚ__init__zRSpaceLoader.__init__   sV   € ð ØØ"ð*
ð *
ˆõ
 )5×(IÒ(IÈ$Ñ(OÔ(OˆØ$ YÔ/ˆŒØ  Ô'ˆŒØ+¨KÔ8ˆŒˆˆó    ÚvaluesÚreturnc                 óŒ   — 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   NzBNo value supplied for global_id. Please supply an RSpace global ID)r
   Ú
ValueError)Úclsr   s     r   r   z!RSpaceLoader.validate_environment,   sa   € õ 1°¸ÐDTÑUÔUˆˆyÑÝ,¨V°U¸LÑIÔIˆˆu‰Ø˜fÐ$Ð$¨¨{Ô(;Ð(CÝØTñô ð ð ˆr   c                 ó  — 	 ddl m}m} n# t          $ r t          d¦  «        ‚w xY w	 |                     | j        | j        ¦  «        }|                     ¦   «          n&# t          $ r t          d| j        › d�¦  «        ‚w xY w||j	        fS )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Ø<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<øåð 	Jð 	Jð 	JÝÐHÑIÔIÐIð	Jøøøð	Ø—-’- ¤¨$¬,Ñ7Ô7ˆCØ�NŠNÑÔÐÐøåð 	ð 	ð 	ÝØW¸¼ÐWÐWÐWñô ð ð	øøøð
 �MÔ.Ð.Ð.s   ‚ ‹%©4A Á#BÚclir#   Úd_idc                 ó$  — d}|                      |¦  «        }|d|d         › d�z  }|d         D ]=}||d         › d�z  } ||d         ¦  «        }||                     ¦   «         z  }|dz  }Œ>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Ñ$Ô$ˆØÐ,˜#˜fœ+Ð,Ð,Ð,Ñ,ˆØ�X”ð 	ð 	ˆAØ˜!˜Fœ)Ð'Ð'Ð'Ñ'ˆGØ�˜q œ|Ñ,Ô,ˆBØ�r—{’{‘}”}Ñ$ˆGØ�t‰OˆGˆGÝØÐ J¨3¨v¬;Ð JÐ J¸¸Z¼Ð JÐ JÐKØ ð
ñ 
ô 
ð 	
r   c              #   ót   K  — |                       ¦   «         \  }}|                      ||| j        ¦  «        V — d S )N)r*   r=   r   )r   r+   r#   s      r   Ú_load_structured_docz!RSpaceLoader._load_structured_docX   s@   è è € Ø!×7Ò7Ñ9Ô9Ñˆˆ]Ø�mŠm˜C °´Ñ?Ô?Ð?Ð?Ð?Ð?Ð?r   c              #   óð   K  — |                       ¦   «         \  }}| j        r%|                     | j        dd …         dg¬¦  «        }d„ |d         D ¦   «         }|D ]}|                      |||¦  «        V — Œd S )Né   Údocument)Ú	folder_idÚtypesToIncludec                 ó   — g | ]
}|d          ‘ŒS )Úid© )Ú.0Úds     r   ú
<listcomp>z2RSpaceLoader._load_folder_tree.<locals>.<listcomp>b   s   € ÐIÐIÐI¨!˜a œgÐIÐIÐIr   Úrecords)r*   r   Úlist_folder_treer=   )r   r+   r#   Údocs_in_folderÚdoc_idsÚdoc_ids         r   Ú_load_folder_treezRSpaceLoader._load_folder_tree\   s¥   è è € Ø!×7Ò7Ñ9Ô9Ñˆˆ]ØŒ>ð 	Ø ×1Ò1Øœ.¨¨¨Ô,¸j¸\ð 2ñ ô ˆNð JÐI¨~¸iÔ/HÐIÑIÔIˆØð 	<ð 	<ˆFØ—-’-  ]°FÑ;Ô;Ð;Ð;Ð;Ð;ð	<ð 	<r   c              #   ó¬  K  — |                       ¦   «         \  }}|                     | j        ¦  «        }t          j                             |d         ¦  «        \  }}|                     ¦   «         dk    r^| j        › d�}|                     | j        |¦  «         t          |¦  «        }| 	                    ¦   «         D ]}| j        |j
        d<   |V — Œd S d S )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Ô9Ñˆˆ]Ø×%Ò% d¤nÑ5Ô5ˆ	Ý”×!Ò! )¨FÔ"3Ñ4Ô4‰ˆˆ3Ø�9Š9‰;Œ;˜&Ò Ð ØœÐ-Ð-Ð-ˆGØ×Ò˜dœn¨gÑ6Ô6Ð6Ý$ WÑ-Ô-ˆJØ!×+Ò+Ñ-Ô-ð ð �Ø-1¬^�”˜\Ñ*Ø�	�	�	�	ð !Ð ðð r   c              #   óB  K  — | j         r&d| j         v r|                      ¦   «         D ]}|V — Œd S | j         r&d| j         v r|                      ¦   «         D ]}|V — Œd S | j         r.| j         dd…         dv r|                      ¦   «         D ]}|V — Œd S t	          d¦  «        ‚)NÚGLÚSDr   rA   )ÚFLÚNBzUnknown global ID type)r   r`   r?   rP   r   )r   rI   s     r   rY   zRSpaceLoader.lazy_loadr   sð   è è € ØŒ>ð 
	7˜d d¤nÐ4Ð4Ø—^’^Ñ%Ô%ð ð �Ø����ðð àŒ^ð 	7 ¨¬Ð 6Ð 6Ø×.Ò.Ñ0Ô0ð ð �Ø����ðð àŒ^ð 	7 ¤¨q°¨sÔ 3°|Ð CÐ CØ×+Ò+Ñ-Ô-ð ð �Ø����ðð õ Ð5Ñ6Ô6Ð6r   )NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústrr   r   Úclassmethodr   r   r   r*   r   Úintr	   r=   r   r?   rP   r`   rY   rG   r   r   r   r      sd  € € € € € ðð ð SWð9ð 9Øð9Ø'/°¤}ð9ØBJÈ3Ä-ð9ð 9ð 9ð 9ð. ð¨$ð °4ð ð ð ñ „[ðð/ sð /ð /ð /ð /ð&
˜Cð 
°ð 
¸5ÀÀcÀ¼?ð 
Èxð 
ð 
ð 
ð 
ð@ h¨xÔ&8ð @ð @ð @ð @ð< 8¨HÔ#5ð <ð <ð <ð <ð
˜8 HÔ-ð 
ð 
ð 
ð 
ð7˜8 HÔ-ð 7ð 7ð 7ð 7ð 7ð 7r   r   )rT   Útypingr   r   r   r   r   r   Úlangchain_core.documentsr	   Úlangchain_core.utilsr
   Ú$langchain_community.document_loadersr   Ú)langchain_community.document_loaders.baser   r   rG   r   r   ú<module>rr      sÄ   ðØ 	€	€	€	Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =à -Ð -Ð -Ð -Ð -Ð -Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5à <Ð <Ð <Ð <Ð <Ð <Ø @Ð @Ð @Ð @Ð @Ð @ðr7ð r7ð r7ð r7ð r7�:ñ r7ô r7ð r7ð r7ð r7r   