U
    ovg                     @  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 erXddl	m
Z
 d	Zd
ddddZejdedZedZdS )    )annotations)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-uqd9otp_/sqlalchemy/dialects/__init__.py<lambda>6       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   Zengine.interfacesr	   __all__r   ZPluginLoaderregistryZpluginsr   r   r   r   <module>   s   $