3
Šãde“  ã               @   s€   d Z ddlZddlmZ ddlmZmZ ddlmZm	Z	 ddl
m
Z
 ddlmZ d	Zed
dd�deee ee dœdd„ƒZdS )z5Implementing support for MySQL Authentication Pluginsé    N)Ú	lru_cache)ÚOptionalÚTypeé   )ÚNotSupportedErrorÚProgrammingError)Úlogger)ÚBaseAuthPluginzmysql.connector.pluginsé
   F)ÚmaxsizeÚtyped)Úplugin_nameÚauth_plugin_classÚreturnc             C   sÔ   t }| rÀyXtjd|ƒ tjd| ƒ tjd| › �|ƒ}| sFt||ƒ rL|j}tjd|ƒ t||ƒS  tk
rŽ } ztj	d|ƒ W Y dd}~X n2 t
k
r¾ } ztd|› �ƒ|‚W Y dd}~X nX td| › d	�ƒ‚dS )
aÁ  Return authentication class based on plugin name

    This function returns the class for the authentication plugin plugin_name.
    The returned class is a subclass of BaseAuthPlugin.

    Args:
        plugin_name (str): Authentication plugin name.
        auth_plugin_class (str): Authentication plugin class name.

    Raises:
        NotSupportedError: When plugin_name is not supported.

    Returns:
        Subclass of `BaseAuthPlugin`.
    zpackage: %szplugin_name: %sÚ.zAUTHENTICATION_PLUGIN_CLASS: %sz"Requested Module was not found: %sNzInvalid module name: zAuthentication plugin 'z' is not supported)ÚDEFAULT_PLUGINS_PKGr   ÚinfoÚ	importlibÚimport_moduleÚhasattrZAUTHENTICATION_PLUGIN_CLASSÚgetattrÚModuleNotFoundErrorÚwarningÚ
ValueErrorr   r   )r   r   ÚpackageZplugin_moduleÚerr© r   úU/var/www/agendate/envp3/lib/python3.6/site-packages/mysql/connector/authentication.pyÚget_auth_plugin+   s    
"r   )N)Ú__doc__r   Ú	functoolsr   Útypingr   r   Úerrorsr   r   r   Zpluginsr	   r   Ústrr   r   r   r   r   Ú<module>   s   

