File: //opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/gaerdbms.pyc
�
��4]c @ sw d Z d d l Z d d l Z d d l m Z d d l m Z d d l m Z d � Z d e f d
� � YZ
e
Z d S( sv
.. dialect:: mysql+gaerdbms
:name: Google Cloud SQL
:dbapi: rdbms
:connectstring: mysql+gaerdbms:///<dbname>?instance=<instancename>
:url: https://developers.google.com/appengine/docs/python/cloud-sql/developers-guide
This dialect is based primarily on the :mod:`.mysql.mysqldb` dialect with
minimal changes.
.. deprecated:: 1.0 This dialect is **no longer necessary** for
Google Cloud SQL; the MySQLdb dialect can be used directly.
Cloud SQL now recommends creating connections via the
mysql dialect using the URL format
``mysql+mysqldb://root@/<dbname>?unix_socket=/cloudsql/<projectid>:<instancename>``
Pooling
-------
Google App Engine connections appear to be randomly recycled,
so the dialect does not pool connections. The :class:`.NullPool`
implementation is installed within the :class:`.Engine` by
default.
i����N( t warn_deprecatedi ( t MySQLDialect_mysqldbi ( t NullPoolc C s t j j d d � j d � S( Nt SERVER_SOFTWAREt s Development/( t ost environt gett
startswith( ( ( sU /opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/gaerdbms.pyt _is_dev_environment+ s t MySQLDialect_gaerdbmsc B s8 e Z e d � � Z e d � � Z d � Z d � Z RS( c C su t d � d d l m } t � r7 d d l m } | S| j j d � r] d d l m } | Sd d l m } | Sd S( Ns� Google Cloud SQL now recommends creating connections via the MySQLdb dialect directly, using the URL format mysql+mysqldb://root@/<dbname>?unix_socket=/cloudsql/<projectid>:<instancename>i����( t apiproxy_stub_map( t
rdbms_mysqldbt rdbms( t rdbms_apiproxy( t rdbms_googleapi(
R t google.appengine.apiR R R t apiproxyt GetStubt! google.storage.speckle.python.apiR R ( t clsR R R R ( ( sU /opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/gaerdbms.pyt dbapi0 s c C s t S( N( R ( R t url( ( sU /opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/gaerdbms.pyt get_pool_classO s c C s= | j � } t � s3 d | d <| j d | d <n g | f S( NR t dsnt instance( t translate_connect_argsR t query( t selfR t opts( ( sU /opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/gaerdbms.pyt create_connect_argsT s
c C s\ t j d � j t | � � } | rB | j d � pE | j d � n d } | rX t | � Sd S( Ns ^(\d+)L?:|^\((\d+)L?,i i ( t ret compilet matcht strt groupt Nonet int( R t exceptionR! t code( ( sU /opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/gaerdbms.pyt _extract_error_code] s *( t __name__t
__module__t classmethodR R R R( ( ( ( sU /opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/gaerdbms.pyR
/ s ( t __doc__R R t sqlalchemy.utilR t mysqldbR t poolR R R
t dialect( ( ( sU /opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/gaerdbms.pyt <module>! s 7