
    dh                     V    S SK r S SKJrJrJr  S SKrS SKJr  S SKJ	r	   " S S\	5      r
g)    N)DictIteratorList)Document)
BaseLoaderc                      \ rS rSrSrSS\S\4S jjr\S\\\4   4S j5       r	S\
4S jrS	\
S\\   4S
 jrS\
S\\
   4S jrS\
S\
S\4S jrS\S\4S jr\S\S\4S j5       rS\S\4S jrS\\   4S jrS\\   4S jrSrg)YuqueLoader
   Load documents from `Yuque`.access_tokenapi_urlc                     Xl         X l        g)zInitialize with Yuque access_token and api_url.

Args:
    access_token: Personal access token - see https://www.yuque.com/settings/tokens.
    api_url: Yuque API url.
Nr   r   )selfr   r   s      b/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/document_loaders/yuque.py__init__YuqueLoader.__init__   s     )    returnc                      SU R                   S.$ )Nzapplication/json)zContent-TypezX-Auth-Token)r   r   s    r   headersYuqueLoader.headers   s     / --
 	
r   c                 N    U R                    S3nU R                  US9nUS   S   $ )Nz/api/v2/userurldataidr   http_getr   r   responses      r   get_user_idYuqueLoader.get_user_id   s2    l+==S=)%%r   user_idc                 N    U R                    SU S3nU R                  US9nUS   $ )Nz/api/v2/users/z/reposr   r   r   )r   r%   r   r"   s       r   	get_booksYuqueLoader.get_books$   s3    nWIV<==S=)r   book_idc                 |    U R                    SU S3nU R                  US9nUS    Vs/ sH  oDS   PM	     sn$ s  snf )N/api/v2/repos/z/docsr   r   r   r   )r   r)   r   r"   documents        r   get_document_idsYuqueLoader.get_document_ids*   sI    nWIU;==S=)/7/?@/?8/?@@@s   9document_idc                 R    U R                    SU SU 3nU R                  US9nUS   $ )Nr+   z/docs/r   r   r   )r   r)   r/   r   r"   s        r   get_documentYuqueLoader.get_document0   s7    nWIVK=I==S=)r   r,   c                 b    U R                  US   5      nUS   US   US   US   S.n[        X#S9$ )Nbodytitledescription
created_at
updated_at)r5   r6   r7   r8   )page_contentmetadata)parse_document_bodyr   )r   r,   contentr:   s       r   parse_documentYuqueLoader.parse_document6   sK    **8F+;<g&#M2"<0"<0	
 W@@r   r4   c                 f    [         R                  " SSU 5      n[         R                  " SSU5      nU$ )Nz<a name="(.*)"></a> z	<br\s*/?>)resub)r4   results     r   r;   YuqueLoader.parse_document_bodyA   s,    .D9b&1r   r   c                 ~    [         R                  " XR                  S9nUR                  5         UR	                  5       $ )N)r   )requestsgetr   raise_for_statusjsonr!   s      r   r    YuqueLoader.http_getH   s,    <<\\:!!#}}r   c              #      #    U R                  5       nU R                  U5      nU HH  nUS   nU R                  U5      nU H)  nU R                  XF5      nU R	                  U5      nUv   M+     MJ     g 7f)Nr   )r#   r'   r-   r1   r=   )	r   r%   booksbookr)   document_idsr/   r,   parsed_documents	            r   get_documentsYuqueLoader.get_documentsN   st     ""$w'D4jG009L+,,WB"&"5"5h"?%%  , s   A1A3c                 4    [        U R                  5       5      $ )r   )listrP   r   s    r   loadYuqueLoader.loadZ   s    D&&())r   r   N)zhttps://www.yuque.com)__name__
__module____qualname____firstlineno____doc__strr   propertyr   r   intr#   r   r'   r-   r1   r   r=   staticmethodr;   r    r   rP   rT   __static_attributes__ r   r   r	   r	   
   s    &S 3  
c3h 
 
&S &   d  A AS	 A C  c  d  	At 	A 	A # #  C D 
&x1 
&*d8n *r   r	   )rA   typingr   r   r   rF   langchain_core.documentsr   )langchain_community.document_loaders.baser   r	   r`   r   r   <module>rd      s%    	 ' '  - @R** R*r   