
    Hf                         d Z ddlmZ ddlmZ ddlmZ ddlmZmZ ddl	mZ
 dZe
j        e
j        fZ G d de          Zd	 Zd
 Z e            ZdS )z
    pyexcel.internal.source_plugin
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Second level abstraction

    :copyright: (c) 2015-2022 by Onni Software Ltd.
    :license: New BSD License
    )	constants)
exceptions)PluginManager)register_book_attributeregister_sheet_attributez%s-%sc                   Z    e Zd ZdZd Zd ZddZd Z	 ddZd Z	d	 Z
d
 Zd Zd Zd ZdS )SourcePluginManagerzData source plugin loaderc                 >    t          j        | d           i | _        d S )Nsource)r   __init__keywords)selfs    `/var/www/ffwdstore.be/apps/py-env/lib/python3.11/site-packages/pyexcel/internal/source_plugin.pyr   zSourcePluginManager.__init__   s     tX...    c                 Z    t          j        | |           |                     |           d S )N)r   load_me_later_register_a_plugin_info)r   plugin_infos     r   r   z!SourcePluginManager.load_me_later    s/    #D+666$$[11111r   Nc                    | j                             d|z              d}| j        |         D ]D} |j        |fi |r4|                     |          }t          |j                  }|r||k    rB nEt          |fi | |S )z%get source module into memory for usezload me now:N)_loggerdebugregistryis_my_businessdynamic_load_library_get_me_pypi_package_name
__module___error_handler)r   keyactionlibraryr   pluginr   module_names           r   load_me_nowzSourcePluginManager.load_me_now$   s    >C/000mC( 	/ 	/F$v$V88x88 226::78IJJ {g55 E 6..X...r   c                 \    t          j        | ||           |                     |           dS )z for dynamically loaded plugin N)r   register_a_pluginr   )r   
plugin_clsr   s      r   r%   z%SourcePluginManager.register_a_plugin7   s1    'j+FFF$$[11111r   c                     t           ||fz  }d}d|v r|                    d          } | j        |f||d|}|||d<    |di |}|S )z.obtain a source plugin for signature functionsNr    )r   r     )REGISTRY_KEY_FORMATpopr#   )	r   targetr   source_libraryr   r   
io_library
source_clssource_instances	            r   get_a_pluginz SourcePluginManager.get_a_plugin<   s     "VV$44
  !i00J%T%

 
:B
 

 !",HY$*00x00r   c                 J     | j         dt          j        t          j        d|S )z9obtain a sheet read source plugin for signature functionsr+   r   r(   )r0   r   SHEETREAD_ACTIONr   r   s     r   
get_sourcezSourcePluginManager.get_sourceM   s5     t  
?9+@
 
DL
 
 	
r   c                 J     | j         dt          j        t          j        d|S )z8obtain a book read source plugin for signature functionsr2   r(   )r0   r   BOOKr4   r5   s     r   get_book_sourcez#SourcePluginManager.get_book_sourceS   s5     t  
>)*?
 
CK
 
 	
r   c                 J     | j         dt          j        t          j        d|S )z:obtain a sheet write source plugin for signature functionsr2   r(   )r0   r   r3   WRITE_ACTIONr5   s     r   get_writable_sourcez'SourcePluginManager.get_writable_sourceY   s5     t  
?9+A
 
EM
 
 	
r   c                 J     | j         dt          j        t          j        d|S )z9obtain a book write source plugin for signature functionsr2   r(   )r0   r   r8   r;   r5   s     r   get_writable_book_sourcez,SourcePluginManager.get_writable_book_source_   s5     t  
>)*@
 
DL
 
 	
r   c                 8    | j                             |d          S )zcustom keyword for an attributeN)r   get)r   r   s     r   get_keyword_for_parameterz-SourcePluginManager.get_keyword_for_parametere   s    }  d+++r   c                 
   d}d}d}|                                 D ]}|                    d          \  }}|j        }t          |t                    s
 |            }|D ]g}	|	t
          v r|dk    rt          |||	           n*|dk    rt          |||	           nt          d|z            |d|	z  z  }|j	        | j
        |	<   d	}h|d
z  }|r6| j                            |           | j                            |           d S d S )NzSource registry: zInstance attribute: F-booksheetzKnown target: %sz%s Tz, )tagssplit
attributes
isinstancelistNO_DOT_NOTATIONr   r   	Exceptionr   r   r   r   )
r   r   debug_registrydebug_attributeanythingr   r+   r   rH   attrs
             r   r   z+SourcePluginManager._register_a_plugin_infoi   sH   ,0##%% 	$ 	$C YYs^^NFF$/Jj$// *'Z\\
"    ?**V##+FFDAAAAw&&,VVTBBBB#$6$?@@@54</&1od#t#OO 	/L///L~.....	/ 	/r   )NN)NNN)__name__r   __qualname____doc__r   r   r#   r%   r0   r6   r9   r<   r>   rA   r   r(   r   r   r	   r	      s        ##  2 2 2   &2 2 2 8<   "
 
 

 
 

 
 

 
 
, , ,/ / / / /r   r	   c                    |rw|                     dd           }|r#t          j        t          j        || fz            d|v r|                    d           d}|dz  }|dz  }t          j        ||z            t          j        d          )N	file_type	on_demandz$Please check if there were typos in z#function parameters: %s. Otherwise z#unrecognized parameters were given.zNo parameters found!)r@   r   FileTypeNotSupportedr   FILE_TYPE_NOT_SUPPORTED_FMTr*   UnknownParameters)r   r   rU   msgs       r   r   r      s     CLLd33	 	?15F8KK  
 h&&[)))8C88C88C.sX~>>> *+ABBBr   c                 d    |                      d          d         }|                    dd          S )N.r   _rC   )rG   replace)r"   root_module_names     r   r   r      s1    "((--a0##C---r   N)rS   pyexcelr   r   
lml.pluginr   pyexcel.internal.attributesr   r   
pyexcel_ioio_constantsr)   	DB_DJANGODB_SQLrK   r	   r   r   SOURCEr(   r   r   <module>rh      s    + * * * * * , , , , , , $ $ $ $ $ $       
 1 0 0 0 0 0 )<+>?j/ j/ j/ j/ j/- j/ j/ j/ZC C C(. . .
 
			r   