
    jP                     `    d dl Z d dlmZ d dlmZ ddlmZ  G d d          Z e            ZdS )    N)Path)Type   )BaseConverterc                   h    e Zd ZdZd Zdee         dee         fdZdedefdZ	de
e         fdZd	S )
ConverterRegistryzERegistry mapping file extensions and MIME types to converter classes.c                 "    i | _         i | _        d S N)_ext_map	_mime_mapselfs    j/lsinfo/ai/hellotax_ai/data_center/backend/venv/lib/python3.11/site-packages/paddleocr/_doc2md/registry.py__init__zConverterRegistry.__init__   s    8:9;    converter_clsreturnc                     |j         D ]1}|| j        |                                                    d          <   2|j        D ]}|| j        |<   |S )z7Register a converter class; can be used as a decorator..)supported_extensionsr   lowerlstripsupported_mimetypesr   )r   r   extmimes       r   registerzConverterRegistry.register   sb     5 	C 	CC5BDM#))++,,S1122!5 	1 	1D#0DN4  r   	file_pathc                    |j                                                             d          }|| j        v r | j        |                     S t	          j        t          |                    \  }}|r|| j        v r | j        |                     S d                    d t          | j        
                                          D                       }t          d| d|           )zAReturn an appropriate converter instance for the given file path.r   z, c              3       K   | ]	}d | V  
dS )r   N ).0es     r   	<genexpr>z2ConverterRegistry.get_converter.<locals>.<genexpr>.   s(      LL!g!ggLLLLLLr   zUnsupported format: .z
Supported formats: )suffixr   r   r   	mimetypes
guess_typestrr   joinsortedkeys
ValueError)r   r   r   	mime_type_	supporteds         r   get_converterzConverterRegistry.get_converter$   s    $$&&--c22$-%4=%''' +C	NN;;	1 	/dn44,4>),...IILLvdm6H6H6J6J/K/KLLLLL	VVV9VVWWWr   c                 N    t          | j                                                  S r
   )r)   r   r*   r   s    r   r   z&ConverterRegistry.supported_extensions1   s    dm((**+++r   N)__name__
__module____qualname____doc__r   r   r   r   r   r/   listr'   r   r    r   r   r   r      s        OO< < <d=&9 d=>Q    Xt X X X X X,d3i , , , , , ,r   r   )	r%   pathlibr   typingr   baser   r   default_registryr    r   r   <module>r:      s                         , , , , , , , ,B %$&&   r   