
    dh	                     V    S r SSKJrJrJr  SSKJr  SSKJr  SSK	J
r
   " S S\5      rg)	ztCode for generic / auxiliary parsers.

This module contains some logic to help assemble more sophisticated parsers.
    )IteratorMappingOptional)Document)BaseBlobParser)Blobc                   ^    \ rS rSrSrSS.S\\\4   S\\   SS4S jjr	S	\
S\\   4S
 jrSrg)MimeTypeBasedParser   a  Parser that uses `mime`-types to parse a blob.

This parser is useful for simple pipelines where the mime-type is sufficient
to determine how to parse a blob.

To use, configure handlers based on mime-types and pass them to the initializer.

Example:

    .. code-block:: python

        from langchain_community.document_loaders.parsers.generic import MimeTypeBasedParser

        parser = MimeTypeBasedParser(
            handlers={
                "application/pdf": ...,
            },
            fallback_parser=...,
        )
N)fallback_parserhandlersr   returnc                    Xl         X l        g)aP  Define a parser that uses mime-types to determine how to parse a blob.

Args:
    handlers: A mapping from mime-types to functions that take a blob, parse it
              and return a document.
    fallback_parser: A fallback_parser parser to use if the mime-type is not
                     found in the handlers. If provided, this parser will be
                     used to parse blobs with all mime-types not found in
                     the handlers.
                     If not provided, a ValueError will be raised if the
                     mime-type is not found in the handlers.
N)r   r   )selfr   r   s      l/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/document_loaders/parsers/generic.py__init__MimeTypeBasedParser.__init__$   s    $ !.    blobc              #   :  #    UR                   nUc  [        U S35      eX R                  ;   a)  U R                  U   nUR                  U5       Sh  vN   gU R                  b$  U R                  R                  U5       Sh  vN   g[        SU 35      e ND N7f)zLoad documents from a blob.Nz does not have a mimetype.zUnsupported mime type: )mimetype
ValueErrorr   
lazy_parser   )r   r   r   handlers       r   r   MimeTypeBasedParser.lazy_parse9   s     ==v%?@AA}}$mmH-G))$///##///::4@@@ #:8*!EFF 0 As$   ABB0BBBB)r   r   )__name__
__module____qualname____firstlineno____doc__r   strr   r   r   r   r   r   r   __static_attributes__ r   r   r
   r
      sW    2 59	/#~-./ ".1	/
 
/*Gt G(: Gr   r
   N)r    typingr   r   r   langchain_core.documentsr   )langchain_community.document_loaders.baser   8langchain_community.document_loaders.blob_loaders.schemar   r
   r#   r   r   <module>r(      s)   
 / . - D I9G. 9Gr   