o
    Zh                     @   sP   d dl Z d dlmZ d dlmZmZ d dlmZ d dlm	Z	 G dd de	Z
dS )    N)Path)IteratorUnion)Document)
BaseLoaderc                   @   s8   e Zd ZdZdeeef fddZdee	 fddZ
dS )	
TomlLoaderziLoad `TOML` files.

    It can load a single source file or several files in a single
    directory.
    sourcec                 C   s   t || _dS )z:Initialize the TomlLoader with a source file or directory.N)r   r   )selfr    r
   `/var/www/html/lang_env/lib/python3.10/site-packages/langchain_community/document_loaders/toml.py__init__   s   zTomlLoader.__init__returnc           	      c   s    ddl }| j r| jjdkr| jg}n| j r#t| jd}ntd|D ]R}|jdddA}|	 }z|
|}tt|d	t|id
}|V  W n |jyk } ztd| d|  W Y d}~nd}~ww W d   n1 svw   Y  q)dS )zALazily load the TOML documents from the source file or directory.r   Nz.tomlz	**/*.tomlz Invalid source path or file typerzutf-8)encodingr   )Zpage_contentmetadatazError parsing TOML file z: )tomlir   is_filesuffixis_dirlistglob
ValueErroropenreadloadsr   jsondumpsstrTOMLDecodeErrorprint)	r	   r   files	file_pathfilecontentdatadocer
   r
   r   	lazy_load   s2   




 zTomlLoader.lazy_loadN)__name__
__module____qualname____doc__r   r   r   r   r   r   r'   r
   r
   r
   r   r   
   s    r   )r   pathlibr   typingr   r   Zlangchain_core.documentsr   Z)langchain_community.document_loaders.baser   r   r
   r
   r
   r   <module>   s    