o
    ®©Zhš  ã                   @   s’   d dl Z d dlZd dlmZ d dlmZ d dlmZmZ d dl	m
Z
 d dlZd dlmZ d dlmZ d dlmZ d d	lmZ G d
d„ deeƒZdS )é    N)ÚABC)ÚPath)ÚListÚUnion)Úurlparse)ÚDocument)Ú
BaseLoader)ÚBlob)Ú
VsdxParserc                   @   sT   e Zd Zdeeef fdd„Zddd„Zedede	fd	d
„ƒZ
dee fdd„ZdS )Ú
VsdxLoaderÚ	file_pathc                 C   s¶   t |ƒ| _d| jv rtj | j¡| _tj | j¡sG|  | j¡rGt | j¡}|j	dkr1t
d|j	 ƒ‚| j| _t ¡ | _| j |j¡ | jj| _ntj | j¡sUt
d| j ƒ‚tƒ | _dS )zInitialize with file path.ú~éÈ   z3Check the url of your file; returned status code %sz'File path %s is not a valid file or urlN)Ústrr   ÚosÚpathÚ
expanduserÚisfileÚ_is_valid_urlÚrequestsÚgetÚstatus_codeÚ
ValueErrorZweb_pathÚtempfileÚNamedTemporaryFileÚ	temp_fileÚwriteÚcontentÚnamer
   Úparser)Úselfr   Úr© r"   ú`/var/www/html/lang_env/lib/python3.10/site-packages/langchain_community/document_loaders/vsdx.pyÚ__init__   s$   


ÿÿ
zVsdxLoader.__init__ÚreturnNc                 C   s   t | dƒr| j ¡  d S d S )Nr   )Úhasattrr   Úclose)r    r"   r"   r#   Ú__del__*   s   
ÿzVsdxLoader.__del__Úurlc                 C   s   t | ƒ}t|jƒot|jƒS )zCheck if the url is valid.)r   ÚboolÚnetlocÚscheme)r)   Úparsedr"   r"   r#   r   .   s   zVsdxLoader._is_valid_urlc                 C   s   t  | j¡}t| j |¡ƒS )N)r	   Ú	from_pathr   Úlistr   Úparse)r    Zblobr"   r"   r#   Úload4   s   zVsdxLoader.load)r%   N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r$   r(   Ústaticmethodr*   r   r   r   r1   r"   r"   r"   r#   r      s    
r   )r   r   Úabcr   Úpathlibr   Útypingr   r   Úurllib.parser   r   Z%langchain_community.docstore.documentr   Z)langchain_community.document_loaders.baser   Z1langchain_community.document_loaders.blob_loadersr	   Z,langchain_community.document_loaders.parsersr
   r   r"   r"   r"   r#   Ú<module>   s    