zmc
2023-10-12 ed135d79df12a2466b52dae1a82326941211dcc9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
U
¸ý°dÕã@sdZddlZddlmZddlmZddlmZddlmZdd    lmZGd
d „d eƒZ    Gd d „d eƒZ
Gdd„deƒZ Gdd„deƒZ e Z dS)a
.. dialect:: mysql+mysqlconnector
    :name: MySQL Connector/Python
    :dbapi: myconnpy
    :connectstring: mysql+mysqlconnector://<user>:<password>@<host>[:<port>]/<dbname>
    :url: https://pypi.org/project/mysql-connector-python/
 
.. note::
 
    The MySQL Connector/Python DBAPI has had many issues since its release,
    some of which may remain unresolved, and the mysqlconnector dialect is
    **not tested as part of SQLAlchemy's continuous integration**.
    The recommended MySQL dialects are mysqlclient and PyMySQL.
 
éNé)ÚBIT)Ú MySQLCompiler)Ú MySQLDialect)ÚMySQLIdentifierPrepareré)Úutilc@seZdZdd„ZdS)ÚMySQLCompiler_mysqlconnectorcKs$|j|jf|Žd|j|jf|ŽS)Nz % )ÚprocessÚleftÚright)ÚselfÚbinaryÚoperatorÚkw©rú_d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\sqlalchemy/dialects/mysql/mysqlconnector.pyÚvisit_mod_binary$s ÿþÿz-MySQLCompiler_mysqlconnector.visit_mod_binaryN)Ú__name__Ú
__module__Ú __qualname__rrrrrr    #sr    c@s.eZdZedd„ƒZejdd„ƒZdd„ZdS)Ú&MySQLIdentifierPreparer_mysqlconnectorcCsdS)NFr)r rrrÚ_double_percents-sz7MySQLIdentifierPreparer_mysqlconnector._double_percentscCsdS©Nr©r Úvaluerrrr1scCs| |j|j¡}|Sr)ÚreplaceZ escape_quoteZescape_to_quoterrrrÚ_escape_identifier5sz9MySQLIdentifierPreparer_mysqlconnector._escape_identifierN)rrrÚpropertyrÚsetterrrrrrr,s
 
 
rc@seZdZdd„ZdS)Ú _myconnpyBITcCsdS)z0MySQL-connector already converts mysql bits, so.Nr)r ÚdialectZcoltyperrrÚresult_processor;sz_myconnpyBIT.result_processorN)rrrr"rrrrr :sr cs²eZdZdZdZdZdZdZdZe    Z
e Z e  ejeei¡Zedd„ƒZdd„Zdd    „Ze jd
d „ƒZd d „Zdd„Zdd„Zddd„Zddd„ZdddddhZ‡fdd„Z‡Z S) ÚMySQLDialect_mysqlconnectorZmysqlconnectorTÚformatcCsddlm}|S)Nr)Ú    connector)Zmysqlr%)Úclsr%rrrÚ import_dbapiQs z(MySQLDialect_mysqlconnector.import_dbapicCs| d¡dS)NFT)Zping)r Zdbapi_connectionrrrÚdo_pingWs
z#MySQLDialect_mysqlconnector.do_pingcCsb|jdd}| |j¡t |dt¡t |dt¡t |dt¡t |dt¡t |dt¡t |dt¡t |d    t¡t |d
t¡t |d t¡t |d t¡t |d t¡t |dt¡t |dt¡t |dt¡t |dt¡t |dt¡| dd¡|jdk    rZz2ddl    m
}|  d|  ¡¡}||j O}||d<Wntk
rXYnXg|gS)NÚuser)ÚusernameZallow_local_infileÚ
autocommitZbufferedÚcompressZconnection_timeoutÚconnect_timeoutZconsume_resultsZ
force_ipv6Z get_warningsZpool_reset_sessionZ    pool_sizeZraise_on_warningsÚrawZssl_verify_certZuse_pureZ use_unicodeTr)Ú
ClientFlagÚ client_flags)Ztranslate_connect_argsÚupdateÚqueryrZcoerce_kw_typeÚboolÚintÚ
setdefaultÚdbapiZmysql.connector.constantsr/ÚgetZ get_defaultZ
FOUND_ROWSÚ    Exception)r ÚurlÚoptsr/r0rrrÚcreate_connect_args[s>     ÿ
 z/MySQLDialect_mysqlconnector.create_connect_argscCsF|jrBt|jdƒrBt d|jj¡}|rBtdd„| ddd¡DƒƒSdS)NÚ __version__z(\d+)\.(\d+)(?:\.(\d+))?css|]}|dk    rt|ƒVqdSr)r4)Ú.0ÚxrrrÚ    <genexpr>‰szKMySQLDialect_mysqlconnector._mysqlconnector_version_info.<locals>.<genexpr>rér)r6ÚhasattrÚreÚmatchr<ÚtupleÚgroup)r ÚmrrrÚ_mysqlconnector_version_info„sz8MySQLDialect_mysqlconnector._mysqlconnector_version_infocCs|jjSr)Ú
connectionÚcharset)r rHrrrÚ_detect_charset‹sz+MySQLDialect_mysqlconnector._detect_charsetcCs|jSr)Úerrno)r Ú    exceptionrrrÚ_extract_error_codeŽsz/MySQLDialect_mysqlconnector._extract_error_codecCsHd}|jj|jjf}t||ƒr@|j|kp>dt|ƒkp>dt|ƒkSdSdS)N)iÖiÝiÞiýiizMySQL Connection not available.z$Connection to MySQL is not availableF)r6ZOperationalErrorZInterfaceErrorÚ
isinstancerKÚstr)r ÚerHÚcursorZerrnosÚ
exceptionsrrrÚ is_disconnect‘s
 
 
ÿ
ýz)MySQLDialect_mysqlconnector.is_disconnectNcCs| ¡Sr)Zfetchall©r ÚrprIrrrÚ_compat_fetchallsz,MySQLDialect_mysqlconnector._compat_fetchallcCs| ¡Sr)ZfetchonerTrrrÚ_compat_fetchone sz,MySQLDialect_mysqlconnector._compat_fetchoneZ SERIALIZABLEzREAD UNCOMMITTEDzREAD COMMITTEDzREPEATABLE READÚ
AUTOCOMMITcs(|dkrd|_nd|_tƒ ||¡dS)NrXTF)r+ÚsuperÚ_set_isolation_level)r rHÚlevel©Ú    __class__rrrZ«sz0MySQLDialect_mysqlconnector._set_isolation_level)N)N)!rrrZdriverZsupports_statement_cacheZsupports_sane_rowcountZsupports_sane_multi_rowcountZsupports_native_decimalZdefault_paramstyler    Zstatement_compilerrÚpreparerrZ update_copyrZcolspecsrr Ú classmethodr'r(r;Zmemoized_propertyrGrJrMrSrVrWZ_isolation_lookuprZÚ __classcell__rrr\rr#As6
)
 
 
ûr#)Ú__doc__rBÚbaserrrrÚrr    rr r#r!rrrrÚ<module>
s         r