a
    bŠÝgš  ã                   @   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                   @   sV   e Zd Zeeef dœdd„Zddœdd„Zeee	dœd	d
„ƒZ
ee dœdd„ZdS )Ú
VsdxLoader)Ú	file_pathc                 C   s¶   t |ƒ| _d| jv r$tj | j¡| _tj | j¡sŽ|  | j¡rŽt | j¡}|j	dkrbt
d|j	 ƒ‚| j| _t ¡ | _| j |j¡ | jj| _ntj | j¡sªt
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"   úw/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/langchain_community/document_loaders/vsdx.pyÚ__init__   s$    


ÿÿ
zVsdxLoader.__init__N)Úreturnc                 C   s   t | dƒr| j ¡  d S )Nr   )Úhasattrr   Úclose)r    r"   r"   r#   Ú__del__*   s    
zVsdxLoader.__del__)Úurlr%   c                 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)Ú__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   