ó
    -Ðåhã	  ã                   ó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      Úd/root/34ku/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à—}‘}Ó$Ø—m‘m HÑ-ˆ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   