U
    h                     @  s   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 ddlm	Z	 erddd	l
mZ d
ZdddddZe	jdedZe	dZdS )    )annotations)Any)Callable)Optional)Type)TYPE_CHECKING   )util)Dialect)ZmssqlmysqloracleZ
postgresqlZsqlitestrz%Optional[Callable[[], Type[Dialect]]])namereturnc                   s   d| kr|  d\}}n| }d}z@|dkrDtdjjj  |W S td|f j t | W n tk
rv   Y dS X t |rt |  fddS dS dS )	zedefault dialect importer.

    plugs into the :class:`.PluginLoader`
    as a first-hit system.

    .basemariadbz!sqlalchemy.dialects.mysql.mariadbzsqlalchemy.dialects.%sNc                     s    j S )N)dialect moduler   @/tmp/pip-unpacked-wheel-y9ln43lq/sqlalchemy/dialects/__init__.py<lambda>7       z_auto_fn.<locals>.<lambda>)	split
__import__Zdialectsr   r   loadergetattrImportErrorhasattr)r   r   Zdriverr   r   r   _auto_fn   s$    


r    zsqlalchemy.dialects)Zauto_fnzsqlalchemy.pluginsN)
__future__r   typingr   r   r   r   r    r	   Zengine.interfacesr
   __all__r    ZPluginLoaderregistryZpluginsr   r   r   r   <module>   s   $