
    @'hn                         d Z ddlmZ ddlmZmZmZ ddl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)
z/Epub parser.

Contains parsers for epub files.
    )Path)DictListOptionalN)AbstractFileSystem)
BaseReader)Documentc            
       @    e Zd ZdZ	 	 ddedee   dee   dee	   fdZ
y)	
EpubReaderzEpub Parser.Nfile
extra_infofsreturnc                    	 ddl }ddl}ddl m} |rt        j                  d       g }|j                  |ddi      }|j                         D ]]  }	|	j                         |j                  k(  s!|j                  |j                  |	j                         j                  d	                   _ d
j                  |      }
t        |
|xs i       gS # t        $ r t        d      w xY w)zParse file.r   N)epubzhPlease install extra dependencies that are required for the EpubReader: `pip install EbookLib html2text`zyfs was specified but EpubReader doesn't support loading from fsspec filesystems. Will load from local filesystem instead.
ignore_ncxT)optionszutf-8
)textmetadata)ebooklib	html2textr   ImportErrorloggerwarning	read_epub	get_itemsget_typeITEM_DOCUMENTappendget_contentdecodejoinr	   )selfr   r   r   r   r   r   	text_listbookitemr   s              i/home/kushmeetdev/Regenta/Chatbot/venv/lib/python3.12/site-packages/llama_index/readers/file/epub/base.py	load_datazEpubReader.load_data   s    		% NNT
 	~~d\4,@~A NN$ 	D}}("8"88  ''(8(8(:(A(A'(JK	 yy#dZ-=2>??1  	3 	s   C C&)NN)__name__
__module____qualname____doc__r   r   r   r   r   r	   r)        r(   r   r      sK    
 &*+/	#@#@ TN#@ '(	#@
 
h#@r/   r   )r-   pathlibr   typingr   r   r   loggingfsspecr   llama_index.core.readers.baser   llama_index.core.schemar	   	getLoggerr*   r   r   r.   r/   r(   <module>r7      sA   
  ' '  % 4 ,			8	$&@ &@r/   