
    Ef.!                        d Z ddlmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ ddlmZmZmZ dZdZdZdZd	Zd
Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Zd Zd Z G d d          Z G d d          Z eeej                  Z  eeej!                  Z" eeej!                  Z# eeej                  Z$ e            Z% e            Z&d Z'dS )z
    pyexcel_io.plugins
    ~~~~~~~~~~~~~~~~~~~

    factory for getting readers and writers

    :copyright: (c) 2014-2022 by Onni Software Ltd.
    :license: New BSD License, see LICENSE for more details
    Nscan_plugins_regex)
PluginInfoPluginManagerPluginInfoChainz,one of these plugins for %s data in '%s': %szHPlease upgrade the plugin '%s' according to plugin compactibility table.zpyexcel-io readerzpyexcel-io v2 readerzpyexcel-io writerzpyexcel-io v2 writerc                       e Zd ZdZd ZdS )IOPluginInfoz"Pyexcel-io plugin info descriptionc              #   &   K   | j         D ]}|V  d S N)
file_types)self	file_types     T/var/www/ffwdstore.be/apps/py-env/lib/python3.11/site-packages/pyexcel_io/plugins.pytagszIOPluginInfo.tags   s,       	 	IOOOO	 	    N)__name__
__module____qualname____doc__r    r   r   r	   r	      s)        ,,    r   r	   c                   .    e Zd ZdZ	 	 	 ddZ	 	 	 ddZdS )IOPluginInfoChain5provide custom functions to add a reader and a writerNc                     t          t          |                     |          ||          }|                     |          S )!add pyexcle-io reader plugin infor   stream_type)r	   READER_PLUGIN_get_abs_pathadd_a_plugin_instancer   relative_plugin_class_pathr   r   a_plugin_infos        r   add_a_readerzIOPluginInfoChain.add_a_reader%   I     %9::!#	
 
 
 ))-888r   c                     t          t          |                     |          ||          }|                     |          S )!add pyexcle-io writer plugin infor   )r	   WRITER_PLUGINr   r    r!   s        r   add_a_writerzIOPluginInfoChain.add_a_writer4   r%   r   NNNr   r   r   r   r$   r)   r   r   r   r   r   "   sX        ?? $(	9 9 9 9" $(	9 9 9 9 9 9r   r   c                   2    e Zd ZdZ	 	 	 	 ddZ	 	 	 	 ddZdS )IOPluginInfoChainV2r   Nr   c                     t          t          |                     |          fd|D             |          }|                     |          S )r   c                 (    g | ]}D ]	}| d | 
S -r   .0r   location	locationss      r   
<listcomp>z4IOPluginInfoChainV2.add_a_reader.<locals>.<listcomp>R   N        )   ))i))   r   r   )r	   READER_PLUGIN_V2r   r    r   r"   r5   r   r   r#   s     `   r   r$   z IOPluginInfoChainV2.add_a_readerG   o     %9::   !+  
 $	
 	
 	
 ))-888r   c                     t          t          |                     |          fd|D             |          }|                     |          S )r'   c                 (    g | ]}D ]	}| d | 
S r0   r   r2   s      r   r6   z4IOPluginInfoChainV2.add_a_writer.<locals>.<listcomp>f   r7   r   r   )r	   WRITER_PLUGIN_V2r   r    r9   s     `   r   r)   z IOPluginInfoChainV2.add_a_writer[   r:   r   )Nr   NN)Nr   r   Nr+   r   r   r   r-   r-   D   s^        ?? $(9 9 9 9, $(9 9 9 9 9 9r   r-   c                   8    e Zd ZdZd Zd Zd Zd	dZd Zd Z	dS )
	IOManagerzManage pyexcel-io pluginsc                 ~    t          j        | |           || _        d| _        | j        t
          k    r	d| _        d S d S )Nreadwrite)r   __init__known_pluginsactionplugin_namer(   )r   plugin_type
known_lists      r   rC   zIOManager.__init__s   sE    t[111'},,!DKKK -,r   c                 N    t          j        | |           t          |           d S r   )r   load_me_later_do_additional_registrationr   plugin_infos     r   rJ   zIOManager.load_me_laterz   s)    #D+666#K00000r   c                 P    t          j        | ||           t          |           dS zfor dynamically loaded pluginN)r   register_a_pluginrK   r   clsrM   s      r   rP   zIOManager.register_a_plugin~   s+    'c;???#K00000r   Nc                     |                                 }	 |                     ||          }n%# t          $ r |                     |           Y nw xY w |            }|                    |           |S )Nlibrary)lowerload_me_now	Exceptionraise_exceptionset_type)r   r   rU   keywords_IOManager__file_typepluginhandlers          r   get_a_pluginzIOManager.get_a_plugin   s    oo''	.%%k7%CCFF 	. 	. 	.  -----	.&((%%%s   . AAc                 $   | j                             |d           }|r]d}t          |          dk    r)|t          | j        |d                    |          fz  z  }n||d         z  }t          j        |          t          j        d|z            )NPlease install    ,r    No suitable library found for %s)	rD   getlenERROR_MESSAGE_FORMATTERrE   join
exceptions(SupportingPluginAvailableButNotInstalledNoSupportingPluginFoundr   r   pluginsmessages       r   rY   zIOManager.raise_exception   s    $((D99 	'G7||a2KHHW%%6   71:%EgNNN 42Y>  r   c                 *   t          t          | j                                                  t          | j                                                  z             }|                    t          t          j        t          j        g                    }|S )return all supported formats)	setlistregistrykeysrD   
difference	constantsDB_SQL	DB_DJANGOr   all_formatss     r   get_all_formatszIOManager.get_all_formats   s{    ##%%&&d.@.E.E.G.G)H)HH
 
 ",,!9#6788
 
 r   )NN)
r   r   r   r   rC   rJ   rP   r_   rY   r{   r   r   r   r?   r?   p   sy        ##" " "1 1 11 1 1
     &    r   r?   c                   0    e Zd Zd Zd Z	 ddZd Zd ZdS )NewIOManagerc                 N    t          j        | |           t          |           d S r   )r   rJ   +_do_additional_registration_for_new_pluginsrL   s     r   rJ   zNewIOManager.load_me_later   s)    #D+6663K@@@@@r   c                 P    t          j        | ||           t          |           dS rO   )r   rP   r   rQ   s      r   rP   zNewIOManager.register_a_plugin   s+    'c;???3K@@@@@r   Nc                 f    |                                 }|                     | d| |          }|S )Nr1   rT   )rV   rW   )r   r   r4   rU   r[   _NewIOManager__file_typer]   s          r   r_   zNewIOManager.get_a_plugin   s>      oo''!!X"="="="=w!OOr   c                 Z   |                     d          d         }| j                            |d           }|r]d}t          |          dk    r)|t          | j        |d                    |          fz  z  }n||d         z  }t          j        |          t          j	        d|z            )Nr1   rb   ra   rc   r   rd   )
splitrD   re   rf   rg   rE   rh   ri   rj   rk   rl   s       r   rY   zNewIOManager.raise_exception   s    OOC((+	$((D99 	'G7||a2KHHW%%6   71:%EgNNN 42Y>  r   c                     t          d | j                                        D             t          | j                                                  z             }|S )rp   c                 D    g | ]}|                     d           d         S )r1   rb   )r   )r3   xs     r   r6   z0NewIOManager.get_all_formats.<locals>.<listcomp>   s&    ;;;QWWS\\!_;;;r   )rq   rs   rt   rr   rD   ry   s     r   r{   zNewIOManager.get_all_formats   sW    ;;dm&8&8&:&:;;;4%**,,--.
 
 r   r*   )r   r   r   rJ   rP   r_   rY   r{   r   r   r   r}   r}      so        A A AA A A 6:     (    r   r}   c                     |                                  D ]7}t          j        || j                   t          j        || j        d            8d S r   )r   managerregister_stream_typer   register_a_file_typerM   r   s     r   rK   rK      s\     %%'' O O	$Y0GHHH$Y0GNNNNO Or   c                    |                                  D ]i}t          j        |                    d          d         | j                   t          j        |                    d          d         | j        d            jd S )Nr1   rb   )r   r   r   r   r   r   r   s     r   r   r      s     %%'' 
 
	$OOC  #[%<	
 	
 	
 	$OOC  #[%<d	
 	
 	
 	
	
 
r   c                       e Zd Zd ZdS )
AllReadersc                     t                                                               t                                                    t	          t
          j        t
          j        g          z
  S r   )OLD_READERSr{   unionNEW_READERSrq   rv   rw   rx   r   s    r   r{   zAllReaders.get_all_formats   P    **,,22''))
 
!9#67889 	9r   Nr   r   r   r{   r   r   r   r   r      #        9 9 9 9 9r   r   c                       e Zd Zd ZdS )
AllWritersc                     t                                                               t                                                    t	          t
          j        t
          j        g          z
  S r   )OLD_WRITERSr{   r   NEW_WRITERSrq   rv   rw   rx   r   s    r   r{   zAllWriters.get_all_formats   r   r   Nr   r   r   r   r   r      r   r   r   c                 ,    t          | |||           dS )z&Try to discover all pyexcel-io plugins)plugin_name_patternspyinstaller_path
black_list
white_listNr   )r   pathr   r   s       r   load_pluginsr      s/    1	     r   )(r   pyexcel_io.utilsutilsioutilspyexcel_io.managerr   pyexcel_io.constantsrv   pyexcel_io.exceptionsri   
lml.loaderr   
lml.pluginr   r   r   rg   UPGRADE_MESSAGEr   r8   r(   r=   r	   r   r-   r?   r}   rK   r   r   r   AVAILABLE_READERSr   AVAILABLE_WRITERSr   r   r   READERSWRITERSr   r   r   r   <module>r      sv    # " " " " " $ $ $ $ $ $ ( ( ( ( ( ( * * * * * * ) ) ) ) ) ) A A A A A A A A A AH #) #)     :   9 9 9 9 9 9 9 9D)9 )9 )9 )9 )9/ )9 )9 )9X8 8 8 8 8 8 8 8v+ + + + +9 + + +\O O O
 
 
9 9 9 9 9 9 9 99 9 9 9 9 9 9 9 iw'@AAiw'@AAl+W-FGGl+W-FGG
*,,
*,,    r   