§
    šŠtjô  ã                   ó¸   — d Z ddlmZ ddlmZmZmZmZmZ ddl	Z	ddl
mZ ddlmZmZmZmZmZ ddlmZmZ ddlmZ  G d	„ d
e¦  «        Z G d„ dee¦  «        ZdS )z!Loads data from OneNote Notebooksé    )ÚPath)ÚAnyÚDictÚIteratorÚListÚOptionalN)ÚDocument)Ú	BaseModelÚFieldÚFilePathÚ	SecretStrÚmodel_validator)ÚBaseSettingsÚSettingsConfigDict)Ú
BaseLoaderc                   óp   — e Zd ZU  ed¦  «        Zeed<    ed¦  «        Zeed<    e	ddddd¬	¦  «        Z
d
S )Ú_OneNoteGraphSettings.Ú	client_idÚclient_secretFTz.envÚ	MS_GRAPH_Úignore)Úcase_sensitiveÚpopulate_by_nameÚenv_fileÚ
env_prefixÚextraN)Ú__name__Ú
__module__Ú__qualname__r   r   ÚstrÚ__annotations__r   r   r   Úmodel_config© ó    új/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/document_loaders/onenote.pyr   r      sf   € € € € € € Ø�U˜3‘Z”Z€IˆsÐÐÑØ$˜u S™zœz€M�9Ð)Ð)Ñ)à%Ð%ØØØØØðñ ô €L€L€Lr$   r   c                   ó  — e Zd ZU dZ ee¬¦  «        Zeed<   	 dZe	ed<   	 dZ
eed<   	 dZeed	<   	 d
Zeed<   	  ej        ¦   «         dz  dz  Zeed<   	 dZee         ed<   	 dZee         ed<   	 dZee         ed<   	 dZeee                  ed<   	  ed¬¦  «        ededefd„¦   «         ¦   «         Zdee         fd„Zdedefd„Z e!deeef         fd„¦   «         Z"e!dee         fd„¦   «         Z#d d„Z$e!defd„¦   «         Z%dS )!ÚOneNoteLoaderz"Load pages from OneNote notebooks.)Údefault_factoryÚsettingsFÚauth_with_tokenÚ Úaccess_tokenz+https://graph.microsoft.com/v1.0/me/onenoteÚonenote_api_base_urlz,https://login.microsoftonline.com/consumers/Úauthority_urlz.credentialszonenote_graph_token.txtÚ
token_pathNÚnotebook_nameÚsection_nameÚ
page_titleÚ
object_idsÚbefore)ÚmodeÚvaluesÚreturnc                 ón   — d|v r0t          |d         t          ¦  «        rt          di |d         ¤Ž|d<   |S )zInitialize the class.r)   r#   )Ú
isinstanceÚdictr   )Úclsr6   s     r%   ÚinitzOneNoteLoader.init9   sE   € ð ˜ÐÐ¥J¨v°jÔ/AÅ4Ñ$HÔ$HÐÝ!6Ð!LÐ!L¸À
Ô9KÐ!LÐ!LˆF�:ÑØˆr$   c              #   ó$  K  — |                       ¦   «          	 ddlm} n# t          $ r t          d¦  «        ‚w xY w| j        �z| j        D ]p}|                      |¦  «        } ||d¦  «        }d}|j        }|r|                     d¬¦  «        }|                     d	d¬
¦  «        }t          |d|i¬¦  «        V — ŒqdS | j	        }|dk    rÆt          j        || j        d¬¦  «        }	|	                     ¦   «          |	                     ¦   «         }
|
d         D ]b}|d         }|                      |¦  «        } ||d¦  «        }d}|j        }|r|                     d	d¬
¦  «        }t          |d|i¬¦  «        V — Œcd|
v r	|
d         }nd}|dk    °ÄdS dS )zÌ
        Get pages from OneNote notebooks.

        Returns:
            A list of Documents with attributes:
                - page_content
                - metadata
                    - title
        r   )ÚBeautifulSoupzJbeautifulsoup4 package not found, please install it with `pip install bs4`Nzhtml.parserr+   T)Ústripú
)Ú	separatorr?   Útitle)Úpage_contentÚmetadataé
   ©ÚheadersÚtimeoutÚvalueÚidz@odata.nextLink)Ú_authÚbs4r>   ÚImportErrorr3   Ú_get_page_contentrB   Úget_textr	   Ú_urlÚrequestsÚgetÚ_headersÚraise_for_statusÚjson)Úselfr>   Ú	object_idÚpage_content_htmlÚsoupr2   Ú	title_tagrC   Úrequest_urlÚresponseÚpagesÚpageÚpage_ids                r%   Ú	lazy_loadzOneNoteLoader.lazy_loadA   s<  è è € ð 	�
Š
‰Œˆð	Ø)Ð)Ð)Ð)Ð)Ð)Ð)øÝð 	ð 	ð 	Ýð$ñô ð ð	øøøð Œ?Ð&Ø!œ_ð 
ð 
�	Ø$(×$:Ò$:¸9Ñ$EÔ$EÐ!Ø$�}Ð%6¸ÑFÔF�Ø�
Ø œJ�	Øð @Ø!*×!3Ò!3¸$Ð!3Ñ!?Ô!?�JØ#Ÿ}š}°tÀ4˜}ÑHÔH�ÝØ!-¸À*Ð8Mðñ ô ð ð ð ð ð
ð 
ð œ)ˆKà Ò#Ð#Ý#œ<¨¸T¼]ÐTVÐWÑWÔW�Ø×)Ò)Ñ+Ô+Ð+Ø Ÿš™œ�à! 'œNð 
ð 
�DØ" 4œj�GØ(,×(>Ò(>¸wÑ(GÔ(GÐ%Ø(˜=Ð):¸MÑJÔJ�DØ!#�JØ $¤
�IØ ð QØ'+§}¢}¸tÈ4 }Ñ'PÔ'P˜Ý"Ø%1¸WÀjÐ<Qðñ ô ð ð ð ð ð %¨Ð-Ð-Ø"'Ð(9Ô":�K�Kà"$�Kð)  Ò#Ð#Ð#Ð#Ð#Ð#s   ˜ Ÿ9r_   c                 óŒ   — | j         d|› d�z   }t          j        || j        d¬¦  «        }|                     ¦   «          |j        S )z!Get page content from OneNote APIz/pages/z/contentrE   rF   )r-   rQ   rR   rS   rT   Útext)rV   r_   r[   r\   s       r%   rN   zOneNoteLoader._get_page_contentz   sM   € àÔ/Ð2M¸GÐ2MÐ2MÐ2MÑMˆÝ”< °T´]ÈBÐOÑOÔOˆØ×!Ò!Ñ#Ô#Ð#ØŒ}Ðr$   c                 ó   — dd| j         › �iS )z*Return headers for requests to OneNote APIÚAuthorizationzBearer )r,   ©rV   s    r%   rS   zOneNoteLoader._headers�   s   € ð Ð: tÔ'8Ð:Ð:ð
ð 	
r$   c                 ó   — dgS )zReturn required scopes.z
Notes.Readr#   re   s    r%   Ú_scopeszOneNoteLoader._scopesˆ   s   € ð ˆ~Ðr$   c                 óX  — | j         dk    rdS | j        rN| j                             d¦  «        5 }|                     ¦   «         | _         ddd¦  «         dS # 1 swxY w Y   dS 	 ddlm} n"# t          $ r}t          d¦  «        |‚d}~ww xY w || j        j	        | j        j
                             ¦   «         | j        ¬¦  «        }|                     | j        ¦  «        }t          d¦  «         t          |¦  «         t!          d	¦  «        }|                     d
¦  «        d                              d¦  «        d         }|                     || j        ¬¦  «        }|d         | _         	 | j        j                             ¦   «         s | j        j                             d¬¦  «         n3# t,          $ r&}t-          d| j        j        › d�dz   ¦  «        |‚d}~ww xY w| j                             d¦  «        5 }|                     | j         ¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z%Authenticate with Microsoft Graph APIr+   NÚrr   )ÚConfidentialClientApplicationzAMSAL package not found, please install it with `pip install msal`)r   Úclient_credentialÚ	authorityz(Visit the following url to give consent:z"Paste the authenticated url here:
zcode=é   ú&)ÚcodeÚscopesr,   T)ÚparentszCould not create the folder ú zto store the access token.Úw)r,   r*   r/   ÚopenÚreadÚmsalrj   rM   r)   r   r   Úget_secret_valuer.   Úget_authorization_request_urlrg   ÚprintÚinputÚsplitÚ#acquire_token_by_authorization_codeÚparentÚexistsÚmkdirÚ	ExceptionÚwrite)	rV   Ú
token_filerj   ÚeÚclient_instanceÚauthorization_request_urlÚauthorization_urlÚauthorization_codeÚaccess_token_jsons	            r%   rK   zOneNoteLoader._auth�   sü  € àÔ Ò"Ð"ØˆFàÔð (	4Ø”×%Ò% cÑ*Ô*ð 6¨jØ$.§O¢OÑ$5Ô$5�Ô!ð6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6ð 6ð 6ðØ>Ð>Ð>Ð>Ð>Ð>Ð>øÝð ð ð Ý!ØWñô àðøøøøðøøøð
 <Ð;Øœ-Ô1Ø"&¤-Ô"=×"NÒ"NÑ"PÔ"PØÔ,ðñ ô ˆOð )8×(UÒ(UØ”ñ)ô )Ð%õ Ð<Ñ=Ô=Ð=ÝÐ+Ñ,Ô,Ð,Ý %Ð&KÑ LÔ LÐà!2×!8Ò!8¸Ñ!AÔ!AÀ!Ô!D×!JÒ!JÈ3Ñ!OÔ!OÐPQÔ!RÐØ /× SÒ SØ'°´ð !Tñ !ô !Ðð !2°.Ô AˆDÔðØ”Ô-×4Ò4Ñ6Ô6ð ?Ø”OÔ*×0Ò0¸Ð0Ñ>Ô>Ð>øøÝð ð ð ÝØL°4´?Ô3IÐLÐLÐLØ2ñ3ñô ð ðøøøøðøøøð ”×%Ò% cÑ*Ô*ð 4¨jØ× Ò  Ô!2Ñ3Ô3Ð3ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4ð 4ð 4sS   ¯AÁAÁAÁ$A+ Á+
B
Á5BÂB
Å+>F* Æ*
GÆ4!GÇGÇ7HÈH#È&H#c                 óD  — g }g }g }|                      d¦  «         | j        �J|                      dd| j                             dd¦  «        › d�z   ¦  «         |                      d¦  «         | j        �J|                      dd| j                             dd¦  «        › d�z   ¦  «         |                      d	¦  «         | j        �5|                      d
d| j                             dd¦  «        › d�z   ¦  «         t          |¦  «        dk    r+|                      dd                     |¦  «        z   ¦  «         t          |¦  «        dk    r+|                      dd                     |¦  «        z   ¦  «         d                     |¦  «        }|dk    rd|z   }| j        › d|› �S )z8Create URL for getting page ids from the OneNoteApi API.z
$select=idNz"parentNotebook/displayName%20eq%20ú'rr   z%20ÚparentNotebookz!parentSection/displayName%20eq%20ÚparentSectionztitle%20eq%20r   z$expand=ú,z$filter=z	%20and%20rn   r+   ú?z/pages)Úappendr0   Úreplacer1   r2   ÚlenÚjoinr-   )rV   Úquery_params_listÚfilter_listÚexpand_listÚquery_paramss        r%   rP   zOneNoteLoader._url¼   sâ  € ð ÐØˆØˆà× Ò  Ñ.Ô.Ð.ØÔÐ)Ø×ÒØ4Ø?�dÔ(×0Ò0°°eÑ<Ô<Ð?Ð?Ð?ñ@ñô ð ð ×ÒÐ/Ñ0Ô0Ð0ØÔÐ(Ø×ÒØ3Ø>�dÔ'×/Ò/°°UÑ;Ô;Ð>Ð>Ð>ñ?ñô ð ð ×Ò˜Ñ/Ô/Ð/ØŒ?Ð&Ø×ÒØÐ"L d¤o×&=Ò&=¸cÀ5Ñ&IÔ&IÐ"LÐ"LÐ"LÑLñô ð õ ˆ{ÑÔ˜aÒÐØ×$Ò$ Z°#·(²(¸;Ñ2GÔ2GÑ%GÑHÔHÐHÝˆ{ÑÔ˜aÒÐØ×$Ò$ Z°+×2BÒ2BÀ;Ñ2OÔ2OÑ%OÑPÔPÐPà—x’xÐ 1Ñ2Ô2ˆØ˜2ÒÐØ Ñ-ˆLØÔ+ÐAÐA°<ÐAÐAÐAr$   )r7   N)&r   r   r   Ú__doc__r   r   r)   r!   r*   Úboolr,   r    r-   r.   r   Úhomer/   r   r0   r   r1   r2   r3   r   r   Úclassmethodr   r   r<   r   r	   r`   rN   ÚpropertyrS   rg   rK   rP   r#   r$   r%   r'   r'   !   s6  € € € € € € Ø,Ð,à&+ eÐ<QÐ&RÑ&RÔ&R€HÐ#ÐRÐRÑRØ6Ø!€O�TÐ!Ð!Ñ!ØIØ€L�#ÐÐÑØØ MÐ˜#ÐMÐMÑMØ0ØG€M�3ÐGÐGÑGØ1Ø$˜4œ9™;œ;¨Ñ7Ð:SÑS€J�ÐSÐSÑSØ;Ø#'€M�8˜C”=Ð'Ð'Ñ'Ø!Ø"&€L�(˜3”-Ð&Ð&Ñ&Ø Ø $€J�˜”Ð$Ð$Ñ$Ø Ø&*€J�˜˜cœÔ#Ð*Ð*Ñ*Ø4à€_˜(Ð#Ñ#Ô#Øð˜$ð  3ð ð ð ñ „[ñ $Ô#ðð7%˜8 HÔ-ð 7%ð 7%ð 7%ð 7%ðr¨ð °ð ð ð ð ð ð
˜$˜s C˜xœ.ð 
ð 
ð 
ñ „Xð
ð ð˜˜cœð ð ð ñ „Xðð-4ð -4ð -4ð -4ð^ ð B�cð  Bð  Bð  Bñ „Xð Bð  Bð  Br$   r'   )r—   Úpathlibr   Útypingr   r   r   r   r   rQ   Úlangchain_core.documentsr	   Úpydanticr
   r   r   r   r   Úpydantic_settingsr   r   Ú)langchain_community.document_loaders.baser   r   r'   r#   r$   r%   ú<module>r¢      sH  ðØ 'Ð 'à Ð Ð Ð Ð Ð Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6à €€€Ø -Ð -Ð -Ð -Ð -Ð -ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ?Ð >Ð >Ð >Ð >Ð >Ð >Ð >à @Ð @Ð @Ð @Ð @Ð @ð
ð 
ð 
ð 
ð 
˜Lñ 
ô 
ð 
ð|Bð |Bð |Bð |Bð |B�J 	ñ |Bô |Bð |Bð |Bð |Br$   