
    ih                         d dl Z d dlmZ d dlmZmZmZ d dlmZ d dl	m
Z
 d dlmZ  e j                  e      Z G d de
      Zy)	    N)Path)IteratorOptionalUnion)Document)
BaseLoader)detect_file_encodingsc                   L    e Zd ZdZ	 	 d	deeef   dee   defdZ	de
e   fdZy)

TextLoadera=  Load text file.


    Args:
        file_path: Path to the file to load.

        encoding: File encoding to use. If `None`, the file will be loaded
        with the default system encoding.

        autodetect_encoding: Whether to try to autodetect the file encoding
            if the specified encoding fails.
    N	file_pathencodingautodetect_encodingc                 .    || _         || _        || _        y)zInitialize with file path.N)r   r   r   )selfr   r   r   s       g/var/www/html/dev/engine/venv/lib/python3.12/site-packages/langchain_community/document_loaders/text.py__init__zTextLoader.__init__   s     # #6     returnc              #     K   d}	 t        | j                  | j                        5 }|j                         }ddd       dt        | j                        i}t        ||       y# 1 sw Y   0xY w# t        $ r}| j
                  rt        | j                        }|D ]|  }t        j                  d|j                          	 t        | j                  |j                        5 }|j                         }ddd       n# 1 sw Y   nxY w n*# t        $ r Y zw xY w nt        d| j                         |Y d}~d}~wt        $ r}t        d| j                         |d}~ww xY ww)zLoad from file path. )r   NzTrying encoding: zError loading source)page_contentmetadata)openr   r   readUnicodeDecodeErrorr   r	   loggerdebugRuntimeError	Exceptionstrr   )r   textfedetected_encodingsr   r   s          r   	lazy_loadzTextLoader.lazy_load&   sI    	Idnnt}}=  vvx $ c$..12D8<<'   ! 	M''%:4>>%J" 2 !HLL#4X5F5F4G!HI!!$..8;L;LM ,QR#$668D, , ,- ! !! #^DNN3C#DE1L 	I/?@AqH	Is   E*!A3 A'A3  'E*'A0,A3 3	E'<AD=!D&D 7	D D	DD=	DD=DD=8E*=E'	E""E''E*)NF)__name__
__module____qualname____doc__r   r!   r   r   boolr   r   r   r&    r   r   r   r      sN      #'$)		7d#	7 3-	7 "		7=8H- =r   r   )loggingpathlibr   typingr   r   r   langchain_core.documentsr   )langchain_community.document_loaders.baser   ,langchain_community.document_loaders.helpersr	   	getLoggerr'   r   r   r,   r   r   <module>r4      s8      , , - @ N			8	$0= 0=r   