
    J-j?
                        d dl Z d dlmZmZ d dlmZ d dlmZ  e j                  e	      Z
	 d dlZdZe G d d             Zd	eez  d
ee   fdZded
ee   fdZded
ee   fdZded
ee   fdZdeded
efdZy# e$ r dZY Rw xY w)    N)	dataclassfield)Path)SUPPORTED_EXTENSIONSTFc                   H    e Zd ZU eed<   eed<   eed<    ee      Zeed<   y)Documenttextsourcepath)default_factorymetadataN)	__name__
__module____qualname__str__annotations__r   r   dictr        ./var/www/vps2.regionflexible.com/rag/loader.pyr   r      s     
IK
J40Hd0r   r   r
   returnc                 X   t        |       }|j                         st        j                  d|       g S |j	                         rog }t        |j                  d            D ]N  }|j                         s|j                  j                         t        v s5|j                  t        |             P |S |j                         rO|j                  j                         t        vr$t        j                  d|j                          g S t        |      S t        j                  d|        g S )NzFuente no encontrada: %s*u   Extensión no soportada: zNo es archivo ni directorio: )r   existsloggerwarningis_dirsortedrglobis_filesuffixlowerr   extend
_load_file)r
   r   docschilds       r   loadr'      s    <D;;=148	{{}!DJJsO, 	/E}}5<<#5#5#7;O#OJu-.	/ ||~;;&::NN6t{{mDEI$
NN24&9:Ir   r   c                     | j                   j                         }	 |dk(  rt        |       S t        |       S # t        $ r'}t
        j                  d|  d|        g cY d }~S d }~ww xY w)Nz.pdfzError leyendo z: )r!   r"   	_load_pdf
_load_text	Exceptionr   error)r   extexcs      r   r$   r$   0   sc    
++


C&=T?"$ ~dV2cU34	s   7 
7 	A' A"A'"A'c                     dD ]#  }	 | j                  |      }t        ||       gc S  t        j	                  d|  d       g S # t        $ r Y Lw xY w)N)zutf-8zlatin-1)encodingzNo se pudo decodificar z (utf-8 ni latin-1))	read_text	_make_docUnicodeDecodeErrorr   r,   )r   r0   r	   s      r   r*   r*   ;   sh    ( 	>>8>4DdD)** LL*4&0CDEI " 		s   A	AAc                    t         st        j                  d|  d       g S g }t        | d      5 }t	        j
                  |      }t        |j                  d      D ]A  \  }}|j                         xs d}|j                         s+|j                  d| d|        C 	 d d d        d	j                  |      }t        ||       gS # 1 sw Y   'xY w)
Nu%   PyPDF2 no está instalado; omitiendo u$   . Instálalo con: pip install PyPDF2rb   )start u   
--- página z ---

)_PDF_AVAILABLEr   r   openPyPDF2	PdfReader	enumeratepagesextract_textstripappendjoinr2   )r   r?   fhreaderipager	   	full_texts           r   r)   r)   F   s    3D6 :1 1	
 	E	dD	 ?R!!"% Q7 	?GAt$$&,"Dzz|~aStf=>	?? 		% Ii&''? ?s   ACCCr	   c           	          t        | |j                  |j                         |j                  |j                  j	                         |j                         j                  d      S )N)r
   	extension
size_bytes)r	   r
   r   r   )r   nameresolver!   r"   statst_size)r	   r   s     r   r2   r2   Z   sM    yy\\^ii**,))+--
		 	r   )loggingdataclassesr   r   pathlibr   
rag.configr   	getLoggerr   r   r<   r:   ImportErrorr   r   listr'   r$   r*   r)   r2   r   r   r   <module>rW      s     (  +			8	$N
 1 1 1t X .T d8n T d8n (D (T(^ ((
C 
t 
 
[  Ns   A; ;BB