Files
cms-website/.deps_siteforge_v812/pymysql/__pycache__/connections.cpython-312.pyc
T

319 lines
58 KiB
Plaintext
Raw Normal View History

Ë
çÅÙj”Òã óh—ddlZddlZddlZddlZddlZddlZddlZddlmZddl m
Z
m Z ddl m
Z
mZmZmZmZmZddlmZddlmZddlmZdd lmZmZmZmZmZmZdd
lmZm Z  ddl!Z!d Z" ddl$Z$e$jJ«Z&[$d Z)dZ*ejVejXejZej\ej^ej`ejbejdejfh Z4d
Z5dZ6d„Z7d„Z8Gd„d«Z9Gd„d«Z:Gd„d«Z;y#e#$rdZ!d Z"YŒ´wxYw#e#e'e(f$rdZ&YŒ­wxYw)éNé)Ú_auth)Úcharset_by_nameÚ
charset_by_id)ÚCLIENTÚCOMMANDÚCRÚERÚ
FIELD_TYPEÚ
SERVER_STATUS)Ú
converters)ÚCursor)ÚParser)Ú dump_packetÚ MysqlPacketÚFieldDescriptorPacketÚOKPacketWrapperÚEOFPacketWrapperÚLoadLocalPacketWrapper)ÚerrÚVERSION_STRINGTFÚutf8mb4iÿÿÿcó4—tjd|«ddS)Nú<Ié)ÚstructÚpack)Úns úWC:\Users\30997\AppData\Local\Temp\pip-target-6g32zz5s\lib\python\pymysql/connections.pyÚ _pack_int24r Fs€Ü �;‰;�t˜QÓ   Ð #Ð#ócó,—|dkrtd|z«‚|dkr t|g«S|dkrdtjd|«zS|dkrdtjd |«dd
zS|d krd tjd
|«zStd|d›dd d›d�«‚)NrzFEncoding %d is less than 0 - no representation in LengthEncodedIntegeréûióüú<Héóýrrlóþz<Qz Encoding Úxz is larger than z, - no representation in LengthEncodedInteger)Ú
ValueErrorÚbytesrr)Úis rÚ _lenenc_intr-Ks·€Øˆ1‚uÜØ TÐWXÑ Xó
ð
ð
ˆTŠÜ�a�S‹zÐØ
ˆgŠØœŸ™ T¨1Ó-Ñ-Ð-Ø
ˆgŠØœŸ™ T¨1Ó-¨b¨qÐ1Ñ1Ð1Ø
ˆgŠØœŸ™ T¨1Ó-Ñ-Ð-äØ˜˜!�uÐ,¨W°Q¨KÐ7cÐ dó
ð
r!c)ó˜—eZdZdZdZdZdZdZdZddddddddddddde ddddddddddddddddddddddddddd œ(d
„Z
d „Z d „Z d
„Z
d„Zed„«Zd„ZeZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd7d„Zd„Zd„Zd„Zd7d„Z d8d„Z!d8d „Z"d!„Z#d"„Z$d9d#„Z%d$„Z&d7d%„Z'd7d&„Z(d'„Z)e*fd(„Z+d)„Z,d*„Z-d8d+„Z.d,„Z/d-„Z0d.„Z1d/„Z2d0„Z3d1„Z4d2„Z5d3„Z6d4„Z7d5„Z8d6„Z9e:jvZ;e:jxZ<e:jzZ=e:j|Z>e:j~Z?e:j€Z@e:j‚ZAe:j„ZBe:j†ZCe:jˆZDy):Ú
Connectionaê
Representation of a socket with a mysql server.
The proper way to get an instance of this class is to call
connect().
Establish a connection to the MySQL database. Accepts several
arguments:
:param host: Host where the database server is located.
:param user: Username to log in as.
:param password: Password to use.
:param database: Database to use, None to not use a particular one.
:param port: MySQL port to use, default is usually OK. (default: 3306)
:param bind_address: When the client has multiple network interfaces, specify
the interface from which to connect to the host. Argument can be
a hostname or an IP address.
:param unix_socket: Use a unix socket rather than TCP/IP.
:param read_timeout: The timeout for reading from the connection in seconds.
(default: None - no timeout)
:param write_timeout: The timeout for writing to the connection in seconds.
(default: None - no timeout)
:param str charset: Charset to use.
:param str collation: Collation name to use.
:param sql_mode: Default SQL_MODE to use.
:param read_default_file:
Specifies my.cnf file to read these parameters from under the [client] section.
:param conv:
Conversion dictionary to use instead of the default one.
This is used to provide custom marshalling and unmarshalling of types.
See converters.
:param use_unicode:
Whether or not to default to unicode strings.
This option defaults to true.
:param client_flag: Custom flags to send to MySQL. Find potential values in constants.CLIENT.
:param cursorclass: Custom cursor class to use.
:param init_command: Initial SQL statement to run when connection is established.
:param connect_timeout: The timeout for connecting to the database in seconds.
(default: 10, min: 1, max: 31536000)
:param ssl: A dict of arguments similar to mysql_ssl_set()'s parameters or an ssl.SSLContext.
:param ssl_ca: Path to the file that contains a PEM-formatted CA certificate.
:param ssl_cert: Path to the file that contains a PEM-formatted client certificate.
:param ssl_disabled: A boolean value that disables usage of TLS.
:param ssl_key: Path to the file that contains a PEM-formatted private key for
the client certificate.
:param ssl_key_password: The password for the client certificate private key.
:param ssl_verify_cert: Set to true to check the server certificate's validity.
:param ssl_verify_identity: Set to true to check the server's identity.
:param read_default_group: Group to read from in the configuration file.
:param autocommit: Autocommit mode. None means use server default. (default: False)
:param local_infile: Boolean to enable the use of LOAD DATA LOCAL command. (default: False)
:param max_allowed_packet: Max size of packet sent to server in bytes. (default: 16MB)
Only used to limit size of "LOAD LOCAL INFILE" data packet smaller than default (16KB).
:param defer_connect: Don't explicitly connect on construction - wait for connect call.
(default: False)
:param auth_plugin_map: A dict of plugin names to a class that processes that plugin.
The class will take the Connection object as the argument to the constructor.
The class needs an authenticate method taking an authentication packet as
an argument. For the dialog plugin, a prompt(echo, prompt) method can be used
(if no authenticate method) for returning a string from the user. (experimental)
:param server_public_key: SHA256 authentication plugin public key value. (default: None)
:param binary_prefix: Add _binary prefix on bytes and bytearray. (default: False)
:param compress: Not supported.
:param named_pipe: Not supported.
:param db: **DEPRECATED** Alias for database.
:param passwd: **DEPRECATED** Alias for password.
See `Connection <https://www.python.org/dev/peps/pep-0249/#connection-objects>`_ in the
specification.
NÚFrTé
r&)(ÚuserÚpasswordÚhostÚdatabaseÚ unix_socketÚportÚcharsetÚ collationÚsql_modeÚread_default_fileÚconvÚ use_unicodeÚ client_flagÚ cursorclassÚ init_commandÚconnect_timeoutÚread_default_groupÚ
autocommitÚ local_infileÚmax_allowed_packetÚ
defer_connectÚauth_plugin_mapÚ read_timeoutÚ
write_timeoutÚ bind_addressÚ
binary_prefixÚ program_nameÚserver_public_keyÚsslÚssl_caÚssl_certÚ ssl_disabledÚssl_keyÚssl_key_passwordÚssl_verify_certÚssl_verify_identityÚcompressÚ
named_pipeÚpasswdÚdbc(ó ‡‡.—|(�|€|(}|'�|s|'}|%s|&r td«‚t|«|_|jr|
tjz}
‰r&|
s$t
j jd«rd}
nd}
|
rÒ‰sdŠt«Š.‰.jtjj|
««ˆ.ˆfd„})|)d|«}|)d|«}|)d |«}|)d
|«}|)d |«}t|)d |««}|)d
|«}|)d|«}|si}t|t«r+dD]&}*|)d|*z|j |*««}+|+sŒ"|+||*<Œ(d|_| su|s|s|!s|#s|$r(|t|$«|#�|#nddœ}|�||d<|!�|!|d<|"�|"|d<|rAt$s td«‚d|_|
tj&z}
|j)|«|_|xsd|_|xsd|_t1|j.«tur t3d«‚|xst4|_|xsd|_t|j8t:«r |j8j=d«|_||_||_ ||_!d|cxkrdkst3d«‚t3d«‚|xsd|_"|�|dkr t3d«‚||_#|�|dkr t3d «‚||_$|xstJ|_&||_'| |_(tS|jL«jT|_*|
tjVz}
|j>r|
tjXz}
|
|_-||_.d|_/d|_0d!|_1||_2| €tfjh} | jk«D�,�-cic]\},}-t1|,«tusŒ|,|-“Œc}-},|_6| jk«D�,�-cic]\},}-t1|,«tusŒ|,|-“Œc}-},|_7| |_8||_9||_:|xsi|_;||_<||_=d"t|t;tj~««d#œ|_@|r||j€d$<|rd|_Ay|j…«ycc}-},wcc}-},w)%Nz3compress and named_pipe arguments are not supportedÚwinz c:\my.iniz /etc/my.cnfÚclientcóT•—|r|S ‰j‰|«S#t$r|cYSwxYw©N)ÚgetÚ Exception)ÚkeyÚargÚcfgrBs €€rÚ_configz$Connection.__init__.<locals>._configûs6ø€ÙØ�JðØŸ7™7Ð#5°sÓ;Ð;øÜ òØ’Jðús ‡™ '¦'r2r3r4r5Úsocketr7z bind-addresszdefault-character-set)ÚcaÚcapathÚcertrar3Úcipherzssl-F)rfÚcheck_hostnameÚ verify_moderhrazssl module not foundTÚ localhostiê zport should be of type intr!Úlatin1ri€3áz+connect_timeout should be >0 and <=31536000zread_timeout should be > 0zwrite_timeout should be > 0z
Not connectedÚpymysql)Ú _client_nameÚ_client_versionÚ_pidrL)CÚNotImplementedErrorÚboolÚ
_local_infilerÚ LOCAL_FILESÚsysÚplatformÚ
startswithrÚreadÚosÚpathÚ
expanduserÚintÚ
isinstanceÚdictr_rNÚ SSL_ENABLEDÚSSLÚ_create_ssl_ctxÚctxr4r7Útyper*Ú DEFAULT_USERr2r3ÚstrÚencoderYr6rJrAÚ
_read_timeoutÚ_write_timeoutÚDEFAULT_CHARSETr8r9r=rÚencodingÚ CAPABILITIESÚCONNECT_WITH_DBr>r?Ú_resultÚ_affected_rowsÚ host_infoÚautocommit_moder
Ú conversionsÚitemsÚencodersÚdecodersr:r@rEÚ_auth_plugin_mapÚ_binary_prefixrMrÚgetpidÚ_connect_attrsÚ_sockÚconnect)/Úselfr2r3r4r5r6r7r8r9r:r;r<r=r>r?r@rArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrdraÚvalueÚkÚvrcs/ ` @rÚ__init__zConnection.__init__¬s�ù€ðX ˆ>˜hÐ.ðˆHØ Ð ¡hð ˆHá ‘zÜ%ØEóð
ô" ,Ó/ˆÔØ × Ò Ø œ6×-Ñ-Ñ -ˆKá Ñ&7Ü�|‰|×&Ñ& uÔ-Ø$0Ñ!à$1Ð!á Ù%Ø%-Ð"ä“(ˆCØ �H‰H”R—W‘W×'Ñ'Ð(9Ó:Ô ;õ
ñ˜6 4Ó(ˆDÙ˜z¨8Ó4ˆHÙ˜6 4Ó(ˆDÙ˜z¨8Ó4ˆHÙ! (¨KÓ8ˆKÜ‘w˜v tÓ,Ó-ˆDÙ" >°<Ó@ˆLÙÐ5°wÓ?ˆGÙØ�ܘ#œtÔ$ÛP�CÙ# F¨S¡L°'°#·'±'¸#³,Ó?�EÚØ#(˜˜CšðQð
ˆŒÙÙ™¡W±ÑCVà Ü&*Ð+>Ó&?à&Ð2ñ$3àñ �ðÐ'Ø"*�C˜‘KØÐ&Ø!(�C˜‘JØ#Ð/Ø&6�C˜
‘OÙÝ"Ü-Ð.DÓEÐEØ�”ØœvŸz™zÑ)� Ø×/Ñ/°Ó4�”àÒ'˜KˆŒ Ø’L˜DˆŒ Ü �— ‘ ‹?¤#Ñ %ÜÐ9Ó:Ð :ØÒ(œLˆŒ Ø š CˆŒ
Ü �d—m‘m¤SÔ )Ø ŸM™M×0Ñ0°Ó:ˆDŒM؈ŒØ&ˆÔØ(ˆÔØ�OÔ/ xÒ/ÜÐJÓKÐ Kð0ÜÐJÓKÐ KØ.Ò6°$ˆÔØ Ð #¨ ¸Ò(9ÜÐ9Ó:Ð :Ø)ˆÔØ Ð $¨¸!Ò);ÜÐ:Ó;Ð ;Ø+ˆÔàÒ1¤/ˆŒ Ø"ˆŒØ&ˆÔä'¨¯ © Ó5×>Ñ>ˆŒ
à”v×*Ñ*Ñ*ˆ Ø �7Š7Ø œ6×1Ñ1Ñ 1ˆKà&ˆÔà&ˆÔàˆŒ ØˆÔØ(ˆŒð *ˆÔà ˆ<Ü×)Ñ)ˆDð-1¯J©J¬LÔO©L¡& 1 a¼DÀ»GÌ3Ò<N˜˜A™¨LÒOˆŒ
Ø,0¯J©J¬LÔK©L¡& 1 a¼DÀ»GÄsºN˜˜A™¨LÒKˆŒ
Ø ˆŒ
Ø(ˆÔØ"4ˆÔØ /Ò 5°2ˆÔØ+ˆÔØ!2ˆÔð&Ü-ÜœŸ ™ › Ó$ñ
ˆÔñ Ø2>ˆD× Ñ  Ñ /á ØˆD�Jà �L‰L�Nùó+PùÛKsÎ
Q4Î'Q4ÏQ:Ï"Q:có—|Sr^©©rœs rÚ __enter__zConnection.__enter__os€Øˆ r!có&—~|j«yr^)Úclose)rœÚexc_infos rÚ__exit__zConnection.__exit__rs€Ø Ø �
‰
� r!có„—t|tj«r|S|jd«}|jd«}|duxr|du}tj||¬«}|xj
tj zc_| xr|jdd«|_|jd«}|€(|rtjntj|_
nÎt|t«r(|rtjntj|_
n–t|t«r|j«}|dvrtj|_
n\|dk(rtj|_
nA|d vrtj|_
n'|rtjntj|_
d
|vr5|j|d
|jd «|jd «¬
«d|vr|j!|d«|xj"tj$zc_|xj"tj&zc_|S)Nrfrg)ÚcafilergrjTrk)ÚnoneÚ0ÚfalseÚnoÚoptional)ÚrequiredÚ1ÚtrueÚyesrhrar3)Úkeyfiler3ri)r~rNÚ
SSLContextr_Úcreate_default_contextÚ verify_flagsÚVERIFY_X509_STRICTrjÚ CERT_NONEÚ
CERT_REQUIREDrkrsr†ÚlowerÚ
CERT_OPTIONALÚload_cert_chainÚ set_ciphersÚoptionsÚ OP_NO_SSLv2Ú OP_NO_SSLv3)rœÚsslprfrgÚhasnocarƒÚverify_mode_values rr‚zConnection._create_ssl_ctxvs¼€Ü �dœCŸN™NÔ +؈KØ
�X‰X�d‹^ˆØ—‘˜(Ó#ˆØ˜�*Ò/ ¨4 ˆÜ×(Ñ(°¸6ÔBˆð
×ÒœS×3Ñ3Ð3Ñ3Õà!(˜[ÒM¨T¯X©XÐ6FÈÓ-MˆÔØ ŸH™H ]Ó3ÐØ Ð $Ù/6œcŸmšm¼C×<MÑ<MˆC�OÜ
Ð)¬4Ô
0Ù3Dœc×/Ò/Ì#Ï-É-ˆC�OäÐ+¬SÔ1Ø$5×$;Ñ$;Ó$=Ð!Ø Ð$@Ñ@Ü"%§-¡-�•Ø" jÒ0Ü"%×"3Ñ"3�•Ø"Ð&FÑFÜ"%×"3Ñ"3�•á3:¤#§-¢-Ä×@QÑ@Q�”Ø �T‰>Ø × Ñ Ø�V‘  d§h¡h¨u£oÀÇÁÈÓ@Tð
ô
ð �tÑ Ø �O‰O˜D ™NÔ +Ø � Š ”s—‘Ñ&� Ø � Š ”s—‘Ñ&� ؈
r!cóD—|jrtjd«‚d|_|j€yt j
ddt j«} |j|«|j«y#t$rYŒwxYw#|j«wxYw)z÷
Send the quit message and close the socket.
See `Connection.close() <https://www.python.org/dev/peps/pep-0249/#Connection.close>`_
in the specification.
:raise Error: If the connection is already closed.
úAlready closedTNú<iBr) Ú_closedrÚErrorršrrrÚCOM_QUITÚ _write_bytesr`Ú _force_close)rœÚ send_datas rr¦zConnection.closežs‹€ð �<Š<Ü—)‘)Ð,Ó-Ð -؈Œ Ø �:‰:Ð Ø Ü—K‘K  q¬'×*:Ñ*:Ó;ˆ ð Ø × Ñ ˜iÔ (ð
× Ñ Õ øôò Ù ð ûð
× Ñ Õ ús$ÁA>Á> B
ÂB
 B
Â
B
Â
Bcó—|jduS)z&Return True if the connection is open.N)ršr£s rÚopenzConnection.open´s€ð�z‰z Ð%Ð%r!cóÈ—|jr|jj«|jr |jj«d|_d|_y#YŒxYw)z&Close connection without QUIT message.N)Ú_rfiler¦ršr£s rrÌzConnection._force_close¹sO€à �;Š;Ø �K‰K× Ñ Ô Ø �:Š:ð
Ø—
‘
× Ñ Ô"ðˆŒ
؈� øð
Ùús ´AÁA!cóp—t|«|_|j«}||k7r|j«yyr^)rsr‘Úget_autocommitÚ_send_autocommit_mode)rœr�Úcurrents rrCzConnection.autocommitÇs5€Ü# E›{ˆÔØ×%Ñ%Ó'ˆØ �GÒ Ø × &Ñ &Õ (ð r!cóN—t|jtjz«Sr^)rsÚ
server_statusr ÚSERVER_STATUS_AUTOCOMMITr£s rrÓzConnection.get_autocommitÍs€Ü�D×&Ñ&¬×)OÑ)OÑOÓPÐPr!cóÆ—|j«}|j«s$tjtj
d«‚t
|«}|j|_|S)NzCommand Out of Sync)Ú _read_packetÚ is_ok_packetrÚOperationalErrorr ÚCR_COMMANDS_OUT_OF_SYNCrr×)rœÚpktÚoks rÚ_read_ok_packetzConnection._read_ok_packetÐsZ€Ø×ÑÓ!ˆØ×ÑÔ!Ü×&Ñ&Ü×*Ñ*Ø%óð
ô˜SÓ
!ˆØ×-Ñ-ˆÔ؈ r!cóœ—|jtjd|j|j«z«|j «y)z3Set whether or not to commit after every execute().zSET AUTOCOMMIT = %sN)Ú_execute_commandrÚ COM_QUERYÚescaper‘ràr£s rrÔz Connection._send_autocommit_modeÛs>€à ×ÑÜ × Ñ Ð4°t·{±{À4×CWÑCWÓ7XÑXô
ð
×ÑÕr!cód—|jtjd«|j«y)zBegin transaction.ÚBEGINN©rârrãràr£s rÚbeginzConnection.beginâs$€à ×Ñœg×/Ñ/°Ô9Ø ×ÑÕr!cód—|jtjd«|j«y)z¨
Commit changes to stable storage.
See `Connection.commit() <https://www.python.org/dev/peps/pep-0249/#commit>`_
in the specification.
ÚCOMMITNrçr£s rÚcommitzConnection.commitçs&€ð
×Ñœg×/Ñ/°Ô:Ø ×ÑÕr!cód—|jtjd«|j«y)z­
Roll back the current transaction.
See `Connection.rollback() <https://www.python.org/dev/peps/pep-0249/#rollback>`_
in the specification.
ÚROLLBACKNrçr£s rÚrollbackzConnection.rollbackñs&€ð
×Ñœg×/Ñ/°Ô<Ø ×ÑÕr!có�—|jtjd«t|«}|j «|j
S)z%Send the "SHOW WARNINGS" SQL command.z
SHOW WARNINGS)rârrãÚ MySQLResultryÚrows)rœÚresults rÚ
show_warningszConnection.show_warningsûs5€à ×Ñœg×/Ñ/°ÔAܘTÓ"ˆØ� ‰ Œ
Ø�{‰{Ðr!cód—|jtj|«|j«y)zI
Set current db.
:param db: The name of the db.
N)rârÚ COM_INIT_DBrà)rœrYs rÚ select_dbzConnection.select_dbs&€ð
×Ñœg×1Ñ1°2Ô6Ø ×ÑÕr!có—t|t«rd|j|«zdzSt|ttf«r$|j |«}|j rd|z}|Stj||j|¬«S)zxEscape whatever value is passed.
Non-standard, for internal use; do not use this in your applications.
Ú'Ú_binary)Úmapping)
r~r†Ú
escape_stringr+Ú bytearrayÚ _quote_bytesr—r
Ú escape_itemr8)rœÚobjrúÚrets rräzConnection.escape sx€ô
�cœ3Ô Ø˜×+Ñ+¨CÓ0Ñ0°3Ñ6Ð 6Ü �cœE¤9Ð-Ô .Ø×#Ñ# CÓ(ˆCØ×"Ò"Ø #‘o�؈JÜ×%Ñ% c¨4¯<©<ÀÔIÐIr!có:—|j||j«S)zkAlias for escape().
Non-standard, for internal use; do not use this in your applications.
)rär”)rœrÿs rÚliteralzConnection.literals€ð
�{‰{˜3 §
¡
Ó.Ð.r!cóŠ—|jtjzr|jdd«St j
|«S)Nrøz'')r×r Ú"SERVER_STATUS_NO_BACKSLASH_ESCAPESÚreplacer
rû©rœÚss rrûzConnection.escape_string s8€Ø × Ñ ¤
× PÑ PÒ PØ—9‘9˜S $Ó'Ð 'Ü×'Ñ'¨Ó*Ð*r!cóÈ—|jtjzr1dj|j dd«j dd««St
j|«S)Nz'{}'ó's''ÚasciiÚsurrogateescape)r×r rÚformatrÚdecoder
Ú escape_bytesrs rrýzConnection._quote_bytes%sV€Ø × Ñ ¤
× PÑ PÒ PØ—=‘=Ø— ‘ ˜$ Ó&×-Ñ-¨gÐ7HÓIóð
ô×&Ñ& qÓ)Ð)r!có8—|r||«S|j|«S)a 
Create a new cursor to execute queries with.
:param cursor: The type of cursor to create. None means use Cursor.
:type cursor: :py:class:`Cursor`, :py:class:`SSCursor`, :py:class:`DictCursor`,
or :py:class:`SSDictCursor`.
)r?)rœÚcursors rrzConnection.cursor,s"€ñ Ù˜$“<Ð Ø×Ñ Ó%Ð%r!cóà—t|t«r|j|jd«}|j t
j |«|j|¬«|_|jS)Nr ©Ú
unbuffered) r~r†r‡r‹rârrãÚ_read_query_resultr�)rœÚsqlrs rÚqueryzConnection.query9s[€ô �cœ3Ô Ø—*‘*˜TŸ]™]Ð,=Ó>ˆCØ ×Ñœg×/Ñ/°Ô5Ø"×5Ñ5ÀÐ5ÓLˆÔØ×"Ñ"Ð"r!cóH—|j|¬«|_|jS)Nr)rr�)rœrs rÚ next_resultzConnection.next_resultBs$€Ø"×5Ñ5ÀÐ5ÓLˆÔØ×"Ñ"Ð"r!có—|jSr^)r�r£s rÚ
affected_rowszConnection.affected_rowsFó€Ø×"Ñ"Ð"r!cód—t|t«s td«‚|jd|d›�«y)Nzthread_id must be an integerzKILL Úd)r~r}Ú TypeErrorr)rœÚ thread_ids rÚkillzConnection.killIs-€Ü˜)¤SÔ)ÜÐ:Ó;Ð ;Ø �
‰
�U˜9 Q˜-Ð(Õ)r!có8—|j€*|r|j«d}ntjd«‚ |j t
j d«|j«y#t$r'|r#|j«|jd«Yy‚wxYw)zÛ
Check if the server is alive.
:param reconnect: If the connection is closed, reconnect.
:type reconnect: boolean
:raise Error: If the connection is closed and reconnect=False.
NFrÆr0)
ršr›rrÉrârÚCOM_PINGràr`Úping)rœÚ reconnects rr#zConnection.pingNs€€ð �:‰:Ð ÙØ— ‘ ”Ø!‘ ä—i‘iÐ 0Ó1Ð1ð Ø × !Ñ !¤'×"2Ñ"2°BÔ 7Ø × Ñ Õ "øÜò ÙØ— ‘ ”Ø— ‘ ˜%Ö àð  ús¸0A)Á),BÂBcó&—|j|«y)z,Deprecated. Use set_character_set() instead.N)Úset_character_set)rœr8s rÚ set_charsetzConnection.set_charsetgs€ð
×јwÕ'r!cóØ—t|«j}|r d|›d|›�}nd|›�}|jtj|«|j «||_||_||_y)z 
Set charaset (and collation)
Send "SET NAMES charset [COLLATE collation]" query.
Update Connection.encoding based on charset.
z
SET NAMES z COLLATE N)rr‹rârrãrÚr8r9)rœr8r9r‹rs rr&zConnection.set_character_setosl€ô# 7Ó+×4Ñ4ˆá Ø    ¨°9°+Ð>‰Eà    Ð*ˆEØ ×Ñœg×/Ñ/°Ô7Ø ×ÑÔØˆŒ Ø ˆŒ
Ø"ˆ�r!c ó6—d|_ |�€�|jrˆtjtjtj«}|j |j «|j|j«d|_d|_ trôtd«nèi}|j�|jdf|d< tj|j|jf|j fi|¤Ž} d|j|jfz|_tr td«|j'tj(tj*d «|j'tj,tj.d «|j d«||_|j3d
«|_d|_|j9«|j;«|j=|j>|j@«|jB�=|jE«}|jGd |jBf«|jI«|jJ�;|jE«}|jG|jJ«|jI«|jL�|jO|jL«yy#t $r)}|j"t"j$k(rYd}~�Œ)‚d}~wwxYw#tP$rž}|jS«tU|t tVf«rrtYjZt\j^d |j›d
|›d�«}||_0tcjd«|_1trt|jb«|‚‚d}~wwxYw)NFzLocalhost via UNIX socketTzconnected using unix_socketrÚsource_addressz socket %s:%dzconnected using socketrÚrbzSET sql_mode=%sz!Can't connect to MySQL server on z (Ú))3rÈr6reÚAF_UNIXÚ SOCK_STREAMÚ
settimeoutrAr›r�Ú_secureÚDEBUGÚprintrJÚcreate_connectionr4r7ÚOSErrorÚerrnoÚEINTRÚ
setsockoptÚ IPPROTO_TCPÚ TCP_NODELAYÚ
SOL_SOCKETÚ SO_KEEPALIVEršÚmakefilerÑÚ _next_seq_idÚ_get_server_informationÚ_request_authenticationr&r8r9r:rÚexecuter¦r@r‘rCÚ
BaseExceptionrÌr~ÚIOErrorrrÜr ÚCR_CONN_HOST_ERRORÚoriginal_exceptionÚ tracebackÚ
format_exc)rœÚsockÚkwargsÚeÚcÚexcs rr›zConnection.connectƒsր؈Œ ðS ؉|Ø×#Ò#Ü!Ÿ=™=¬¯©¼×9KÑ9KÓL�DØ—O‘O D×$8Ñ$8Ô9Ø—L‘L ×!1Ñ!1Ô2Ø%@�D”NØ#'�D”LÝÜÐ;Õ<à�FØ×(Ñ(Ð4Ø48×4EÑ4EÀqÐ3I˜Ð/Ñ0Øð"Ü#)×#;Ñ#;Ø!%§¡¨D¯I©IÐ 6¸×8LÑ8Lñ$ØPVñ$˜Dð"ð
&4°t·y±yÀ$Ç)Á)Ð6LÑ%L�D”NÝÜÐ6Ô7Ø—O‘O¤F×$6Ñ$6¼×8JÑ8JÈAÔNØ—O‘O¤F×$5Ñ$5´v×7JÑ7JÈAÔNØ—‘ Ô%àˆDŒJØŸ-™-¨Ó-ˆDŒKØ !ˆDÔ à × (Ñ (Ô *Ø × (Ñ (Ô *ð
× "Ñ " 4§<¡<°·±Ô @à�}‰}Ð(Ø—K‘K“M�Ø— ‘ Ð+¨d¯m©mÐ-=Ô>Ø—‘” à× Ñ Ð,Ø—K‘K“M�Ø— ‘ ˜$×+Ñ+Ô,Ø—‘” à×#Ñ#Ð/Ø—‘ × 4Ñ 4Õ5ð0øôW 'ò"Ø Ÿw™w¬%¯+©+Ò5Ý (Ø!ûð"ûôZò Ø × Ñ Ô ä˜!œg¤wÐ/Ô0Ü×*Ñ*Ü×)Ñ)Ø7¸¿ ¹ °}ÀBÀqÀcÈÐKó�ð
*+�Ô&Ü )× 4Ñ 4Ó 6�”
Ýܘ#Ÿ-™-Ô(Ø� ð
ûð% úsJ‰B7K1Ã7J<Ã8GK1Ê< K.ËK)Ë"K1Ë(K)Ë)K.Ë.K1Ë1 NË:BNÎNcóÒ—tt|««t|jg«z|z}tr t |«|j
|«|jdzdz|_y)zvWrites an entire "mysql packet" in its entirety to the network
adding its length and sequence number.
réN)r Úlenr+r=r1rrË)rœÚpayloadÚdatas rÚ write_packetzConnection.write_packetÚs[€ô œ3˜w›<Ó(¬5°$×2CÑ2CÐ1DÓ+EÑEÈÑOˆÝ Ü ˜Ô Ø ×ј$ÔØ!×.Ñ.°Ñ2°cÑ9ˆÕr!cóΗt«} |jd«}tjd|«\}}}||dzz}||jk7r]|j «|dk(r$t
jtjd«‚t
jd||jfz«‚|jdzd z|_|j|«}tr t|«||z
}|tkrnŒè|t|«|j«} | j!«rE|j"�)|j"j$durd
|j"_| j'«| S) a!Read an entire "mysql packet" in its entirety from the network
and return a MysqlPacket type that represents the results.
:raise OperationalError: If the connection to the MySQL server is lost.
:raise InternalError: If the packet sequence number is wrong.
Téz<HBBérú,Lost connection to MySQL server during queryz1Packet sequence number wrong - got %d expected %drrMF)rüÚ _read_bytesrÚunpackr=rÌrrÜr ÚCR_SERVER_LOSTÚ
InternalErrorr1rÚMAX_PACKET_LENr+r‹Úis_error_packetrŽÚunbuffered_activeÚraise_for_error)
rœÚ packet_typeÚbuffÚ
packet_headerÚbtrlÚbtrhÚ
packet_numberÚ
bytes_to_readÚ recv_dataÚpackets
rrÚzConnection._read_packetæsZ€ô‹{ˆØØ ×,Ñ,¨QÓ/ˆMô)/¯
©
°f¸mÓ(LÑ %ˆD�$˜
Ø  D¨B¡JÑ/ˆMØ × 1Ñ 1Ò1Ø×!Ñ!Ô#Ø  AÒ%ä×.Ñ.Ü×)Ñ)ØFóðô×'Ñ'ØGØ$ d×&7Ñ&7Ð8ñ9óðð"&×!2Ñ!2°QÑ!6¸#Ñ =ˆDÔ à×(Ñ(¨Ó7ˆIÝܘIÔ&Ø �IÑ ˆDàœ~Ò-Øð5ñ8œU 4›[¨$¯-©-Ó8ˆØ × !Ñ !Ô #Ø�|‰|Ð'¨D¯L©L×,JÑ,JÈdÑ,RØ16�— ‘ Ô.Ø × "Ñ "Ô $؈
r!có—|jj|j« |jj |«} t|«|kr4|j«tjtjd«‚|S#t
$r_}|j t jk(rYd}~Œ�|j«tjtjd|›d�«‚d}~wt$r|j«‚wxYw)Nz.Lost connection to MySQL server during query (r,rU)ršr/rˆrÑryr4r5r6rÌrrÜr rXrArN)rœÚ num_bytesrPrIs rrVzConnection._read_bytessë€Ø �
‰
×јd×0Ñ0Ô1Øð
Ø—{‘{×'Ñ'¨ Ó2�Øô ˆt‹9�yÒ Ø × Ñ Ô Ü×&Ñ&Ü×!Ñ!Ð#Qóð
ðˆ øô#ò
Ø—7‘7œeŸk™kÒ)ÜØ×!Ñ!Ô#Ü×*Ñ*Ü×%Ñ%ØDÀQÀCÀqÐIóðûô!ò
à×!Ñ!Ô#Øð
ús¨BÂ D ÂC+Â38C+Ã+D có—|jj|j« |jj|«y#t$r=}|j «t
jtjd|›d�«‚d}~wwxYw)NzMySQL server has gone away (r,)
ršr/r‰Úsendallr4rÌrrÜr ÚCR_SERVER_GONE_ERROR)rœrPrIs rrËzConnection._write_bytes*su€Ø �
‰
×јd×1Ñ1Ô2ð Ø �J‰J× Ñ ˜tÕ $øÜò Ø × Ñ Ô Ü×&Ñ&Ü×'Ñ'Ð+GÈÀuÈAÐ)Nóð
ûð ús§AÁ B Á 8BÂB cóÌ—d|_t|«}|r|j«n|j«||_|j�|j|_|j
Sr^)rŽrðÚinit_unbuffered_queryryr×r)rœrròs rrzConnection._read_query_result4sX€ØˆŒ ܘTÓ"ˆÙ Ø × (Ñ (Õ *à �K‰KŒM؈Œ Ø × Ñ Ð +Ø!'×!5Ñ!5ˆDÔ Ø×#Ñ#Ð#r!cóH—|jr|jjSy©Nr)rŽÚ insert_idr£s rrpzConnection.insert_id@s€Ø �<Š<Ø—<‘<×)Ñ)Ð )àr!có8—|jstjdd«‚|j�‰|jjr/t j d«|jj«|jjr'|j«|jjrŒ'd|_t|t«r|j|j«}ttt!|«dz«}t#j$d||«}||d|dz
z}|j'|«t(r t+|«d|_|tkry||dz
d} ttt!|««}|j/|d|«||d}|s
|tkryŒ?)z~
:raise InterfaceError: If the connection is closed.
:raise ValueError: If no username was specified.
rr0Nz.Previous unbuffered result was left incompleterrÇ)ršrÚInterfaceErrorrŽr\ÚwarningsÚwarnÚ_finish_unbuffered_queryÚhas_nextrr~r†r‡r‹ÚminrZrNrrrËr1rr=rQ)rœÚcommandrÚ packet_sizeÚpreluderfs rrâzConnection._execute_commandFs`€ð
�zŠzÜ×$Ñ$ Q¨Ó+Ð +ð �<‰<Ð #Ø�|‰|×-Ò-Ü—
‘
ÐNÔOØ— ‘ ×5Ñ5Ô7Ø—,‘,×'Ò'Ø× Ñ Ô"ð—,‘,×'Ó'àˆDŒLä �cœ3Ô Ø—*‘*˜TŸ]™]Ó+ˆCäœ.¬#¨c«(°Q©,Ó7ˆ ô—+‘+˜e [°'Ó:ˆØ˜3Ð0 ¨q¡Ð1Ñ1ˆØ ×ј&Ô!Ý Ü ˜Ô ؈Ôà œÒ 'Ø à�+ ‘/Ð#Ð$ˆØÜœn¬c°#«hÓ7ˆKØ × Ñ ˜c , ;Ð/Ô 0Ø�k�lÐ#ˆCÙ˜;¬Ò7Øð r!có —t|jjdd«d«dk\r#|xjtj
zc_|j € td«‚t|j«j}t|j t«r*|j j|j«|_tj d|jt"|d«}|j$r‹|j&tj(zrn|j+|«|j,j/|j0|j2¬«|_|j0j5d «|_d
|_||j zd z}d}d}|j:d k(r.d}t=j>|j@|jB«}�n|j:d
k(r-d}t=j>|j@|jB«}nÆ|j:dk(r\d}|j@r<tDr tGd«t=jH|j@|jB«}nmtDrgtGd«n[|j:dk(rLd}|j$r-|j&tj(zr|j@d z}n|j@rd}nd }|j&tjJzr|tMtO|««|zz
}nK|j&tjPzr&|tj dtO|««|zz