
    dh                     Z    S SK r S SKJr  S SKJrJrJr  S SKJr  S SK	J
r
   " S S\
5      rg)    N)Path)IteratorPatternUnion)Document)
BaseLoaderc                       \ rS rSr% Sr\R                  " S\R                  \R                  -  5      r	\
\S'      SS\\\4   S\S\4S jjrS	\S
\4S jrS	\S
\4S jrS	\S
\4S jrS
\\   4S jrSrg)AcreomLoader
   z%Load `acreom` vault from a directory.z^---\n(.*?)\n---\nFRONT_MATTER_REGEXpathencodingcollect_metadatac                 ,    Xl          X l         X0l        g)zInitialize the loader.N)	file_pathr   r   )selfr   r   r   s       c/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/document_loaders/acreom.py__init__AcreomLoader.__init__   s     B 5 0@    contentreturnc                 >   U R                   (       d  0 $ U R                  R                  U5      n0 nU(       ae  UR                  S5      R	                  S5      nU H?  nSU;   a6  UR	                  SS5      u  pgUR                  5       X6R                  5       '   M?  MA     U$ )zEParse front matter metadata from the content and return it as a dict.   
:)r   r   searchgroupsplitstrip)r   r   matchfront_matterlineslinekeyvalues           r   _parse_front_matter AcreomLoader._parse_front_matter    s    $$I''..w7KKN((.E$;!%C!3JC05L-   r   c                 `    U R                   (       d  U$ U R                  R                  SU5      $ )z4Remove front matter metadata from the given content. )r   r   subr   r   s     r   _remove_front_matter!AcreomLoader._remove_front_matter1   s)    $$N&&**2w77r   c                     [         R                  " SSU5      n[         R                  " SSU5      n[         R                  " SSU5      nU$ )Nz\s*-\s\[\s\]\s.*|\s*\[\s\]\s.*r*   #z\[\[.*?\]\])rer+   r,   s     r   _process_acreom_content$AcreomLoader._process_acreom_content7   s@     &&:BH&&r7+&&W5r   c              #     #    [        [        U R                  5      R                  S5      5      nU H  n[	        X R
                  S9 nUR                  5       nS S S 5        U R                  W5      nU R                  U5      nU R                  U5      n[        UR                  5      [        U5      S.UEn[        XFS9v   M     g ! , (       d  f       Nt= f7f)Nz**/*.md)r   )sourcer   )page_contentmetadata)listr   r   globopenr   readr'   r-   r2   strnamer   )r   pspftextr"   r7   s          r   	lazy_loadAcreomLoader.lazy_load?   s     $t~~&++I67Aa--0Avvx 1  33D9L,,T2D//5D aff+A H @@ 00s   ACCA.C
C	C)r   r   r   N)zUTF-8T)__name__
__module____qualname____firstlineno____doc__r1   compile	MULTILINEDOTALLr   r   __annotations__r   r<   r   boolr   dictr'   r-   r2   r   r   rB   __static_attributes__ r   r   r
   r
   
   s    /"$**r||bii7#  B
  !%	ACIA A 	A3 4 "8C 8C 8s s A8H- Ar   r
   )r1   pathlibr   typingr   r   r   langchain_core.documentsr   )langchain_community.document_loaders.baser   r
   rP   r   r   <module>rU      s'    	  + + - @GA: GAr   