id/ ddZddlZddlZddlmZddlmZddlmZdZ Gd d eZ e Z dS) a} .. dialect:: mysql+gaerdbms :name: Google Cloud SQL :dbapi: rdbms :connectstring: mysql+gaerdbms:///?instance= :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@/?unix_socket=/cloudsql/:`` 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.Engine` by default. N)warn_deprecated)MySQLDialect_mysqldbNullPoolchtjdddS)NSERVER_SOFTWAREz Development/)osenvironget startswithW/opt/cloudlinux/venv/lib/python3.11/site-packages/sqlalchemy/dialects/mysql/gaerdbms.py_is_dev_environmentr+s' :>>+R 0 0 ; ;N K KKrcFeZdZedZedZdZdZdS)MySQLDialect_gaerdbmsctdddlm}trddlm}|S|jdrddlm}|Sddlm }|S)NzGoogle Cloud SQL now recommends creating connections via the MySQLdb dialect directly, using the URL format mysql+mysqldb://root@/?unix_socket=/cloudsql/:r)apiproxy_stub_map) rdbms_mysqldbrdbms)rdbms_apiproxy)rdbms_googleapi) rgoogle.appengine.apirrrapiproxyGetStub!google.storage.speckle.python.apirr)clsrrrrs rdbapizMySQLDialect_gaerdbms.dbapi0s  )    ;:::::  # : : : : : :  ' / / 8 8 # H H H H H H! ! I I I I I I" "rctS)Nr)r urls rget_pool_classz$MySQLDialect_gaerdbms.get_pool_classOs rcx|}tsd|d<|jd|d<g|fS)Nr dsninstance)translate_connect_argsrquery)selfr#optss rcreate_connect_argsz)MySQLDialect_gaerdbms.create_connect_argsTsF))++"$$ 5DK"y4D 4xrctjdt|}|r*|dp|dnd}|rt |SdS)Nz^(\d+)L?:|^\((\d+)L?,r)recompilematchstrgroupint)r* exceptionr1codes r_extract_error_codez)MySQLDialect_gaerdbms._extract_error_code]sl 344::3y>>JJ49Bu{{1~~/Qd  t99   rN)__name__ __module__ __qualname__ classmethodr!r$r,r7rrrrr/sf##[#<[rr) __doc__r r/sqlalchemy.utilrmysqldbrpoolrrrdialectrrrrAs8 ++++++))))))LLL444440444n r