55ok

Mini

Direktori : /proc/thread-self/root/lib/python2.7/site-packages/pymysql/
Upload File :
Current File : //proc/thread-self/root/lib/python2.7/site-packages/pymysql/connections.pyc

�
�Y:Zc
@sddlmZddlmZmZmZmZmZmZddl	Z	ddl
mZddlZddl
Z
ddlZddlZddlZddlZddlZddlZddlmZmZmZddlmZmZmZmZmZddlmZdd	l m!Z!dd
l"m#Z#ddl$m%Z%m&Z&ddlm'Z'yddl(Z(e)Z*Wne+k
r�e,Z(e-Z*nXyddl.Z.e.j/�Z0[.Wne+e1fk
r�e,Z0nXe-Z2ej3d
 Z4er�nhe4ddfkrDge5d�D].Z6e6dkr"e7e6�n
e7e6d�^qZ8d�Z9n	d�Z9eoWervddl:m;Z;d�Z<n	d�Z<e=ej>ej?ej@ejAejBejCejDejEejFg	�ZGeejHd�ZIdZJdZKdZLdZMdZNdZOd
ddZPd�ZQd ZRd!�ZSd"�ZTd#ZUd$eVfd%��YZWd&�ZXd'�ZYd(�ZZd)�Z[d*eVfd+��YZ\d,e\fd-��YZ]d.eVfd/��YZ^d0eVfd1��YZ_d2eVfd3��YZ`d4eVfd5��YZad6eVfd7��YZbd8eVfd9��YZcdS(:i����(tprint_functioni(tPY2t
range_typet	text_typetstr_typetJYTHONt
IRONPYTHONN(tpartial(tMBLENGTHtcharset_by_namet
charset_by_id(tCLIENTtCOMMANDtCRt
FIELD_TYPEt
SERVER_STATUS(t
converters(tCursor(tParser(tbyte2inttint2byte(terriiiii�i�cCs|jd�jt�S(Ntlatin1(tdecodet	translatet_surrogateescape_table(ts((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyt_fast_surrogateescape5scCs|jdd�S(Ntasciitsurrogateescape(R(R((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR8s(tSocketIOcCstjt||��S(N(tiotBufferedReaderR(tsocktmode((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyt	_makefileCscCs
|j|�S(N(tmakefile(R!R"((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR#Gstsha1i�i�i�i�RicsHd��yntdt|��xFtdd�D]5}tj|�}td||jj|jf�q/Wtdd�Wntk
r�nXgt	dt
t|�d	�d
�D]}|||d
!^q�}xb|D]Z}tdjtd�|��d
d
t|�ddjt�fd�|���q�Wtdd�t�dS(NcSsCdt|�kodknr?t|t�r;t|�S|SdS(NiAizt.(Rt
isinstancetinttchr(tdata((s7/usr/lib/python2.7/site-packages/pymysql/connections.pytis_asciids
"
spacket length:iiscall[%d]: %s (line %d)t-iBiiit cSsdjt|��S(Ns{:02X}(tformatR(tx((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyt<lambda>uts   iR1csdj�|��S(Ns{}(R.(R/(R+(s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR0wR1s  (
tprinttlentrangetsyst	_getframetf_codetco_nametf_linenot
ValueErrorRtmintjointmap(R*titft	dump_datatd((R+s7/usr/lib/python2.7/site-packages/pymysql/connections.pytdump_packetcs 	$
?
.'icCs�|s
dStr'tdt|��nt|�j�}t|�j�}t�}|j|t �|j|�|j�}t||�S(NR1s	password=(tDEBUGR2tstrtsha_newtdigesttupdatetSCRAMBLE_LENGTHt	_my_crypt(tpasswordtmessagetstage1tstage2Rtresult((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyt	_scramble~s	
cCs�t|�}d}xjt|�D]\}tjd|||d!�dtjd|||d!�dA}|tjd|�7}qW|S(NR1tBii(R3Rtstructtunpacktpack(tmessage1tmessage2tlengthRNR>R/((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyRI�s"itRandStruct_323cBseZd�Zd�ZRS(cCs-d|_||j|_||j|_dS(Ni���?(t	max_valuetseed1tseed2(tselfRYRZ((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyt__init__�s	cCsV|jd|j|j|_|j|jd|j|_t|j�t|j�S(Nii!(RYRZRXtfloat(R[((s7/usr/lib/python2.7/site-packages/pymysql/connections.pytmy_rnd�s(t__name__t
__module__R\R^(((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyRW�s	cCs2t|�}t|t �}tjd|�}tjd|�}t|d|dA|d|dA�}tj�}xJtttt	|���D]-}|j
tt|j
�d�d��q�Wtt|j
�d��}	|j�}
tj�}x1|
D])}|j
tt|�t|	�A��q�W|j�S(Ns>LLiiii@(t_hash_password_323tSCRAMBLE_LENGTH_323RQRRRWRtBytesIORR;R3twriteRR(R^tgetvalueR(RJRKt	hash_passthash_messagethash_pass_nthash_message_ntrand_sttoutbuft_textratouttc((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyt
_scramble_323�s"+
'cCs�d}d}d}xyg|D]}|dkrt|�^qD]L}||d@|||d	>d
@N}||d	>|Ad
@}||d
@}q>W|d@}|d@}tjd
||�S(Ni5W0PiiqV4R-s	i i	i?iI����iis>LL(R-s	i i	I�i���I�i���(RRQRS(RJtnrtaddtnr2R/Rotr1tr2((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyRa�s2"

cCstjd|�d S(Ns<Ii(RQRS(tn((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyt
pack_int24�scCs�|dkrtd|��n�|dkr5t|�S|dkrUdtjd|�S|dkryd	tjd
|�d S|dkr�d
tjd|�Std|df��dS(NisFEncoding %d is less than 0 - no representation in LengthEncodedIntegeri�iis�s<His�s<Iii@s�s<QsIEncoding %x is larger than %x - no representation in LengthEncodedIntegeriill(R:RRQRS(R>((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyt
lenenc_int�s
tMysqlPacketcBseZdZdZd�Zd�Zd�Zd�Zd�Zdd	�Z	d
d�Z
erid�Zn	d
�Zd�Z
d�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(srRepresentation of a MySQL response packet.

    Provides an interface for reading/parsing the packet results.
    t	_positiont_datacCsd|_||_dS(Ni(RzR{(R[R*tencoding((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR\�s	cCs|jS(N(R{(R[((s7/usr/lib/python2.7/site-packages/pymysql/connections.pytget_all_data�scCs�|j|j|j|!}t|�|kr�d|t|�|jt|j�f}trqt|�|j�nt|��n|j|7_|S(sCRead the first 'size' bytes in packet and advance cursor past them.s\Result length not requested length:
Expected=%s.  Actual=%s.  Position: %s.  Data Length: %s(R{RzR3RCR2tdumptAssertionError(R[tsizeRNterror((s7/usr/lib/python2.7/site-packages/pymysql/connections.pytread�s%

cCs|j|j}d|_|S(s`Read all remaining data in the packet.

        (Subsequent read() will return errors.)
        N(R{RztNone(R[RN((s7/usr/lib/python2.7/site-packages/pymysql/connections.pytread_all�s	cCsT|j|}|dks.|t|j�krGtd||f��n||_dS(s1Advance the cursor in data buffer 'length' bytes.is4Invalid advance amount (%s) for cursor.  Position=%sN(RzR3R{t	Exception(R[RVtnew_position((s7/usr/lib/python2.7/site-packages/pymysql/connections.pytadvance�s

!icCsA|dks!|t|j�kr4td|��n||_dS(s9Set the position of the data buffer cursor to 'position'.is)Invalid position to rewind cursor to: %s.N(R3R{R�Rz(R[tposition((s7/usr/lib/python2.7/site-packages/pymysql/connections.pytrewinds!icCs|j|||!S(s>Get 'length' bytes starting at 'position'.

        Position is start of payload (first four packet header bytes are not
        included) starting at index '0'.

        No error checking is done.  If requesting outside end of buffer
        an empty string (or string shorter than 'length') may be returned!
        (R{(R[R�RV((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyt	get_bytess	cCs)t|j|j�}|jd7_|S(Ni(tordR{Rz(R[RN((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyt
read_uint8scCs#|j|j}|jd7_|S(Ni(R{Rz(R[RN((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR�scCs2tjd|j|j�d}|jd7_|S(Ns<Hii(RQtunpack_fromR{Rz(R[RN((s7/usr/lib/python2.7/site-packages/pymysql/connections.pytread_uint16"scCs<tjd|j|j�\}}|jd7_||d>S(Ns<HBii(RQR�R{Rz(R[tlowthigh((s7/usr/lib/python2.7/site-packages/pymysql/connections.pytread_uint24's!cCs2tjd|j|j�d}|jd7_|S(Ns<Iii(RQR�R{Rz(R[RN((s7/usr/lib/python2.7/site-packages/pymysql/connections.pytread_uint32,scCs2tjd|j|j�d}|jd7_|S(Ns<Qii(RQR�R{Rz(R[RN((s7/usr/lib/python2.7/site-packages/pymysql/connections.pytread_uint641scCsL|jjd|j�}|dkr(dS|j|j|!}|d|_|S(Nsii(R{tfindRzR�(R[tend_posRN((s7/usr/lib/python2.7/site-packages/pymysql/connections.pytread_string6s
cCsr|j�}|tkrdS|tkr,|S|tkrB|j�S|tkrX|j�S|tkrn|j	�SdS(s�Read a 'Length Coded Binary' number from the data buffer.

        Length coded numbers can be anywhere from 1 to 9 bytes depending
        on the value of the first byte.
        N(
R�tNULL_COLUMNR�tUNSIGNED_CHAR_COLUMNtUNSIGNED_SHORT_COLUMNR�tUNSIGNED_INT24_COLUMNR�tUNSIGNED_INT64_COLUMNR�(R[Ro((s7/usr/lib/python2.7/site-packages/pymysql/connections.pytread_length_encoded_integer>s

cCs)|j�}|dkrdS|j|�S(sRead a 'Length Coded String' from the data buffer.

        A 'Length Coded String' consists first of a length coded
        (unsigned, positive) integer represented in 1-9 bytes followed by
        that many bytes of binary data.  (For example "cat" would be "3cat".)
        N(R�R�R�(R[RV((s7/usr/lib/python2.7/site-packages/pymysql/connections.pytread_length_coded_stringPscCs=tj|�}|j|j|j�}|j|j7_|S(N(RQtStructR�R{RzR�(R[tfmtRRN((s7/usr/lib/python2.7/site-packages/pymysql/connections.pytread_struct\scCs)|jdd!dko(t|j�dkS(Niisi(R{R3(R[((s7/usr/lib/python2.7/site-packages/pymysql/connections.pytis_ok_packetbscCs)|jdd!dko(t|j�dkS(Niis�i	(R{R3(R[((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyt
is_eof_packetfscCs|jdd!dkS(Niis�(R{(R[((s7/usr/lib/python2.7/site-packages/pymysql/connections.pytis_auth_switch_requestlscCs.t|jdd!�}d|ko+dkSS(Niii�(R�R{(R[tfield_count((s7/usr/lib/python2.7/site-packages/pymysql/connections.pytis_resultset_packetpscCs|jdd!dkS(Niis�(R{(R[((s7/usr/lib/python2.7/site-packages/pymysql/connections.pytis_load_local_packettscCs|jdd!dkS(Niis�(R{(R[((s7/usr/lib/python2.7/site-packages/pymysql/connections.pytis_error_packetwscCs\|j�rX|j�|jd�|j�}trEtd|�ntj|j�ndS(Niserrno =(	R�R�R�R�RCR2Rtraise_mysql_exceptionR{(R[terrno((s7/usr/lib/python2.7/site-packages/pymysql/connections.pytcheck_errorzs

cCst|j�dS(N(RBR{(R[((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR~�s(RzR{(R_R`t__doc__t	__slots__R\R}R�R�R�R�R�RR�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R~(((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyRy�s8																						tFieldDescriptorPacketcBs;eZdZd�Zd�Zd�Zd�Zd�ZRS(s�A MysqlPacket that represents a specific column's metadata in the result.

    Parsing is automatically done and the results are exported via public
    attributes on the class such as: db, table_name, name, length, type_code.
    cCs$tj|||�|j|�dS(N(RyR\t_parse_field_descriptor(R[R*R|((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR\�scCs�|j�|_|j�|_|j�j|�|_|j�j|�|_|j�j|�|_|j�j|�|_|jd�\|_	|_
|_|_|_
dS(s�Parse the 'Field Descriptor' (Metadata) packet.

        This is compatible with MySQL 4.1+ (not compatible with MySQL 4.0).
        s	<xHIBHBxxN(R�tcatalogtdbRt
table_namet	org_tabletnametorg_nameR�t	charsetnrRVt	type_codetflagstscale(R[R|((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR��scCs;|j|jd|j�|j�|j|jddkfS(sBProvides a 7-item tuple compatible with the Python PEP249 DB Spec.iiN(R�R�R�tget_column_lengthR�R�(R[((s7/usr/lib/python2.7/site-packages/pymysql/connections.pytdescription�s		cCs9|jtjkr2tj|jd�}|j|S|jS(Ni(R�Rt
VAR_STRINGRtgetR�RV(R[tmblen((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR��scCs,d|j|j|j|j|j|jfS(Ns%s %r.%r.%r, type=%s, flags=%x(t	__class__R�R�R�R�R�(R[((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyt__str__�s(R_R`R�R\R�R�R�R�(((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR��s				tOKPacketWrappercBs eZdZd�Zd�ZRS(s�
    OK Packet Wrapper. It uses an existing packet object, and wraps
    around it, exposing useful variables while still providing access
    to the original packet objects variables and methods.
    cCs�|j�s/tdt|jj�d��n||_|jjd�|jj�|_|jj�|_	|j
d�\|_|_|jj
�|_|jtj@|_dS(NsCannot create s  object from invalid packet typeis<HH(R�R:RDR�R_tpacketR�R�t
affected_rowst	insert_idR�t
server_statust
warning_countR�RKRtSERVER_MORE_RESULTS_EXISTSthas_next(R[tfrom_packet((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR\�s
	cCst|j|�S(N(tgetattrR�(R[tkey((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyt__getattr__�s(R_R`R�R\R�(((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR��s	tEOFPacketWrappercBs eZdZd�Zd�ZRS(s�
    EOF Packet Wrapper. It uses an existing packet object, and wraps
    around it, exposing useful variables while still providing access
    to the original packet objects variables and methods.
    cCs~|j�s'tdj|j���n||_|jjd�\|_|_trgt	d|j�n|jt
j@|_dS(Ns3Cannot create '{0}' object from invalid packet types<xhhsserver_status=(
R�R:R.R�R�R�R�R�RCR2RR�R�(R[R�((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR\�s	cCst|j|�S(N(R�R�(R[R�((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR��s(R_R`R�R\R�(((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR��s	tLoadLocalPacketWrappercBs eZdZd�Zd�ZRS(s�
    Load Local Packet Wrapper. It uses an existing packet object, and wraps
    around it, exposing useful variables while still providing access
    to the original packet objects variables and methods.
    cCsc|j�s'tdj|j���n||_|jj�d|_tr_td|j�ndS(Ns3Cannot create '{0}' object from invalid packet typeis	filename=(	R�R:R.R�R�R}tfilenameRCR2(R[R�((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR\�s	cCst|j|�S(N(R�R�(R[R�((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR��s(R_R`R�R\R�(((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR��s	
t
Connectionc Bs~eZdZd1ZdZeZd1d1dd1dd1dd1d1d1d1ded1dd1d1d1d1d1ed1d1ed3eid1d1d1ed�Z	d�Z
d�Zed	��Z
d
�ZeZd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd1d�Zd�Zd�Zd�Zd1d�Zd�Zd�Zed�Z ed�Z!d�Z"d�Z#e$d�Z%d �Z&d1d!�Z'd"�Z(e)d#�Z*d$�Z+d%�Z,ed&�Z-d'�Z.d(�Z/d)�Z0d*�Z1d+�Z2d,�Z3d-�Z4d.�Z5d/�Z6d0�Z7e8j9Z9e8j:Z:e8j;Z;e8j<Z<e8j=Z=e8j>Z>e8j?Z?e8j@Z@e8jAZAe8jBZBRS(4s
    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: Optionally, you can use a unix socket rather than TCP/IP.
    :param charset: Charset you want 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 unmarshaling of types.
        See converters.
    :param use_unicode:
        Whether or not to default to unicode strings.
        This option defaults to true for Py3k.
    :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: Timeout before throwing an exception when connecting.
        (default: 10, min: 1, max: 31536000)
    :param ssl:
        A dict of arguments similar to mysql_ssl_set()'s parameters.
        For now the capath and cipher arguments are not supported.
    :param read_default_group: Group to read from in the configuration file.
    :param compress: Not supported
    :param named_pipe: Not supported
    :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 contruction - 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 db: Alias for database. (for compatibility to MySQLdb)
    :param passwd: Alias for password. (for compatibility to MySQLdb)
    :param binary_prefix: Add _binary prefix on bytes and bytearray. (default: False)
    R1ii
iic %s|dk	rtjdt�n|dkrGtjddkrGt}n|dk	rh|dkrh|}n|dk	r�|r�|}n|s�|r�td��nt|�|_	|j	r�|t
jO}n�r�|	r�tjj
d�r�d}	q�d}	n|	r2�s
d�nt���jtjj|	����fd	�} | d
|�}| d|�}| d|�}| d
|�}| d|�}t| d|��}| d|�}| d|�}|s�i}nt|t�r2xOdddddgD]5}!| d|!|j|!��}"|"r�|"||!<q�q�Wq2nt|_|r�tsVtd��nt|_|t
jO}|j|�|_n|p�d|_|p�d|_|p�t|_ |p�d|_!||_"||_#||_$d|ko�dknst%d��n|pd|_&|dk	r9|dkr9t%d��n||_'|dk	ri|dkrit%d��n||_(|r�||_)t|_*nt+|_)t|_*|dk	r�||_*nt,|j)�j-|_-|t
j.O}|j"r�|t
j/O}n||_0|
|_1d|_2d|_3d |_4||_5|
dkr@t6j7}
ntg|
j8�D]*\}#}$t9|#�tk	rP|#|$f^qP�|_:tg|
j8�D]*\}#}$t9|#�tkr�|#|$f^q��|_;||_<||_=||_>||_?||_@|rd|_An
|jB�dS(!Nsno_delay option is deprecatediis3compress and named_pipe arguments are not supportedtwins	c:\my.inis/etc/my.cnftclientcs7|r
|Sy�j�|�SWntk
r2|SXdS(N(R�R�(R�targ(tcfgtread_default_group(s7/usr/lib/python2.7/site-packages/pymysql/connections.pyt_configcs
tuserRJthosttdatabasetsockettportsbind-addresssdefault-character-settcatcapathtcertR�tciphersssl-sssl module not foundt	localhosti�R1i�3�s+connect_timeout should be >0 and <=31536000sread_timeout should be >= 0swrite_timeout should be >= 0s
Not connected(CR�twarningstwarntDeprecationWarningR5tversion_infotTruetNotImplementedErrortboolt
_local_infileRtLOCAL_FILEStplatformt
startswithRR�tostpatht
expanduserR(R'tdictR�tFalsetssltSSL_ENABLEDtSSLt_create_ssl_ctxtctxR�R�tDEFAULT_USERR�RJR�tunix_sockettbind_addressR:tconnect_timeoutt
_read_timeoutt_write_timeouttcharsettuse_unicodetDEFAULT_CHARSETR	R|tCAPABILITIEStCONNECT_WITH_DBtclient_flagtcursorclasst_resultt_affected_rowst	host_infotautocommit_modeRtconversionstitemsttypetencoderstdecoderstsql_modetinit_commandtmax_allowed_packett_auth_plugin_mapt_binary_prefixt_socktconnect(%R[R�R�RJR�R�R�R�Rtread_default_filetconvR�RRRR�R�R�tcompresst
named_pipetno_delayt
autocommitR�tpasswdtlocal_infileR
t
defer_connecttauth_plugin_maptread_timeoutt
write_timeoutR�t
binary_prefixR�R�tvaluetktv((R�R�s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR\9s�				
							
								
							FF					cCst|tj�r|S|jd�}|jd�}|dkoI|dk}tjd|d|�}|oz|jdt�|_|r�tjntj	|_
d|kr�|j|dd|jd��nd|kr�|j|d�n|j
tjO_
|j
tjO_
|S(	NR�R�tcafiletcheck_hostnameR�tkeyfileR�R�(R'R�t
SSLContextR�R�tcreate_default_contextR�R#t	CERT_NONEt
CERT_REQUIREDtverify_modetload_cert_chaintset_cipherstoptionstOP_NO_SSLv2tOP_NO_SSLv3(R[tsslpR�R�thasnocaR�((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR��s#cCs�|jrtjd��nt|_|jdkr7dStjddtj	�}z)y|j
|�Wntk
rvnXWd|j�XdS(s*Send the quit message and close the socketsAlready closedNs<iBi(
t_closedRtErrorR�RR�RQRSRtCOM_QUITt_write_bytesR�t_force_close(R[t	send_data((s7/usr/lib/python2.7/site-packages/pymysql/connections.pytclose�s		
cCs
|jdk	S(N(RR�(R[((s7/usr/lib/python2.7/site-packages/pymysql/connections.pytopen�scCs=|jr'y|jj�Wq'q'Xnd|_d|_dS(s%Close connection without QUIT messageN(RR7R�t_rfile(R[((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR5�s		cCs8t|�|_|j�}||kr4|j�ndS(N(R�Rtget_autocommitt_send_autocommit_mode(R[Rtcurrent((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR�scCst|jtj@�S(N(R�R�RtSERVER_STATUS_AUTOCOMMIT(R[((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR:�s	cCsI|j�}|j�s-tjdd��nt|�}|j|_|S(Ni�sCommand Out of Sync(t_read_packetR�RtOperationalErrorR�R�(R[tpkttok((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyt_read_ok_packet�scCs1|jtjd|j|j��|j�dS(s2Set whether or not to commit after every execute()sSET AUTOCOMMIT = %sN(t_execute_commandRt	COM_QUERYtescapeRRB(R[((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR;�scCs!|jtjd�|j�dS(sBegin transaction.tBEGINN(RCRRDRB(R[((s7/usr/lib/python2.7/site-packages/pymysql/connections.pytbeginscCs!|jtjd�|j�dS(s Commit changes to stable storagetCOMMITN(RCRRDRB(R[((s7/usr/lib/python2.7/site-packages/pymysql/connections.pytcommit
scCs!|jtjd�|j�dS(s!Roll back the current transactiontROLLBACKN(RCRRDRB(R[((s7/usr/lib/python2.7/site-packages/pymysql/connections.pytrollbackscCs0|jtjd�t|�}|j�|jS(s
SHOW WARNINGS(RCRRDtMySQLResultR�trows(R[RN((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyt
show_warningss
cCs!|jtj|�|j�dS(sSet current dbN(RCRtCOM_INIT_DBRB(R[R�((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyt	select_dbscCs{t|t�r$d|j|�dSt|ttf�rb|j|�}|jr^d|}n|Stj||j	d|�S(s�Escape whatever value you pass to it.
        
        Non-standard, for internal use; do not use this in your applications.
        t't_binarytmapping(
R'Rt
escape_stringtbytest	bytearrayt_quote_bytesRRtescape_itemR�(R[tobjRStret((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyRE s	
cCs|j||j�S(srAlias for escape()
        
        Non-standard, for internal use; do not use this in your applications.
        (RER	(R[RY((s7/usr/lib/python2.7/site-packages/pymysql/connections.pytliteral.scCs-|jtj@r |jdd�Stj|�S(NRQs''(R�Rt"SERVER_STATUS_NO_BACKSLASH_ESCAPEStreplaceRRT(R[R((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyRT5s
cCs:|jtj@r-dt|jdd��fStj|�S(Ns'%s'RQs''(R�RR\RR]Rtescape_bytes(R[R((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyRW;s
cCs|r||�S|j|�S(s+Create a new cursor to execute queries with(R(R[tcursor((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR_As
cCs
|j�S(s%Context manager that returns a Cursor(R_(R[((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyt	__enter__GscCs!|r|j�n
|j�dS(s2On successful exit, commit. On exception, rollbackN(RKRI(R[texcRt	traceback((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyt__exit__Ks
cCs~t|t�rOtptrOtr7|j|j�}qO|j|jd�}n|jtj	|�|j
d|�|_|jS(NRt
unbuffered(R'RRRRtencodeR|RCRRDt_read_query_resultR(R[tsqlRd((s7/usr/lib/python2.7/site-packages/pymysql/connections.pytquerySscCs|jd|�|_|jS(NRd(RfR(R[Rd((s7/usr/lib/python2.7/site-packages/pymysql/connections.pytnext_result_scCs|jS(N(R(R[((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR�cscCs/tjd|�}|jtj|�|j�S(Ns<I(RQRSRCRtCOM_PROCESS_KILLRB(R[t	thread_idR�((s7/usr/lib/python2.7/site-packages/pymysql/connections.pytkillfscCs�|jdkr:|r(|j�t}q:tjd��ny!|jtjd�|j	�Wn4t
k
r�|r�|j�|jt�q��nXdS(sCheck if the server is alivesAlready closedR1N(RR�RR�RR2RCRtCOM_PINGRBR�tping(R[t	reconnect((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyRnks
	

cCsOt|�j}|jtjd|j|��|j�||_||_dS(NsSET NAMES %s(R	R|RCRRDRER>R�(R[R�R|((s7/usr/lib/python2.7/site-packages/pymysql/connections.pytset_charset}s
 
	cCst|_yU|dkr�|jr�|jdkr�tjtjtj�}|j|j	�|j
|j�d|_trdt
d�qdn�i}|jdk	r�|jdf|d<nxjtry)tj|j|jf|j	|�}PWq�ttfk
r}|jtjkrq�n�q�Xq�Wd|j|jf|_trKt
d�n|jtjtjd	�|jd�|jtjtjd	�n||_t|d
�|_d|_|j�|j �|j!dk	r�|j"�}|j#d|j!f�n|j$dk	r;|j"�}|j#|j$�|j%�|j&�n|j'dk	r]|j(|j'�nWn�t)k
r}d|_|dk	r�y|j%�Wq�q�Xnt*|tttj+f�rt,j-dd
|j|f�}||_.t/j0�|_/trt
|j/�n|�n�nXdS(NR�s	127.0.0.1sLocalhost via UNIX socketsconnected using unix_socketitsource_addressssocket %s:%dsconnected using socketitrbsSET sql_mode=%si�s(Can't connect to MySQL server on %r (%s)(R�s	127.0.0.1(1R�R1R�R�R�R�tAF_UNIXtSOCK_STREAMt
settimeoutR�RRRCR2R�R�tcreate_connectionR�tOSErrortIOErrorR�tEINTRt
setsockopttIPPROTO_TCPtTCP_NODELAYt
SOL_SOCKETtSO_KEEPALIVERR#R9t_next_seq_idt_get_server_informationt_request_authenticationRR_texecuteRR7RIRRt
BaseExceptionR'R�RR?toriginal_exceptionRbt
format_exc(R[R!tkwargsteRoRa((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR�s|				

		



			cCs[tt|��t|j�|}tr6t|�n|j|�|jdd|_dS(swWrites an entire "mysql packet" in its entirety to the network
        addings its length and sequence number.
        iiN(RwR3RRRCRBR4(R[tpayloadR*((s7/usr/lib/python2.7/site-packages/pymysql/connections.pytwrite_packet�s
#

c
Cs)d}xtr|jd�}tjd|�\}}}||d>}||jkr�|j�|dkr�tjtj	d��ntj
d||jf��n|jdd	|_|j|�}tr�t|�n||7}|d
kr�q	n|t
kr	Pq	q	W|||j�}	|	j�|	S(s�Read an entire "mysql packet" in its entirety from the network
        and return a MysqlPacket type that represents the results.
        R1is<HBBiis,Lost connection to MySQL server during querys1Packet sequence number wrong - got %d expected %diii���(R�t_read_bytesRQRRRR5RR?R
tCR_SERVER_LOSTt
InternalErrorRCRBtMAX_PACKET_LENR|R�(
R[tpacket_typetbufft
packet_headertbtrltbtrht
packet_numbert
bytes_to_readt	recv_dataR�((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR>�s4	



cCs�|jj|j�x{tr�y|jj|�}PWqttfk
r�}|jtj	krcqn|j
�tjt
jd|f��qXqWt|�|kr�|j
�tjt
jd��n|S(Ns1Lost connection to MySQL server during query (%s)s,Lost connection to MySQL server during query(RRuR�R�R9R�RxRwR�RyR5RR?R
R�R3(R[t	num_bytesR*R�((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR��s"	

cCsg|jj|j�y|jj|�Wn9tk
rb}|j�tjtj	d|f��nXdS(NsMySQL server has gone away (%r)(
RRuR�tsendallRxR5RR?R
tCR_SERVER_GONE_ERROR(R[R*R�((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR4s
cCs�|rByt|�}|j�WqXt|_d|_�qXXnt|�}|j�||_|jdk	r|j|_n|j	S(N(
RLtinit_unbuffered_queryR�tunbuffered_activeR�t
connectionR�RR�R�(R[RdRN((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyRfs		

	cCs|jr|jjSdSdS(Ni(RR�(R[((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR�+s	
cCs|jstjd��n|jdk	r||jjrStjd�|jj�nx|jj	ro|j
�qVWd|_nt|t�r�|j
|j�}nttt|�d�}tjd||�}|||d }|j|�trt|�nd|_|tkrdS||d}xQtrzttt|��}|j|| �||}|r*|tkr*Pq*q*WdS(Ns(0, '')s.Previous unbuffered result was left incompleteis<iB(RRtInterfaceErrorRR�R�R�R�t_finish_unbuffered_queryR�RiR'RReR|R;R�R3RQRSR4RCRBRR�R�(R[tcommandRgtpacket_sizetpreludeR�((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyRC1s6	


		
cCst|jjdd�d�dkr:|jtjO_n|jdkrXtd��nt	|j
�j}t|jt
�r�|jj|j�|_ntjd|jd|d�}|jr|jtj@r|j|�|jj|jd|j�|_t|jd	�|_n||jd
}d}|jdkr[t|jjd�|j�}n|jtj @r�|t!t"|��|7}nA|jtj#@r�|tjd
t"|��|7}n||d
7}|j$r#|jtj%@r#t|j$t
�r|j$j|j�|_$n||j$d
7}n|jtj&@rn|j}t|t
�r]|jd�}n||d
7}n|j|�|j'�}|j(�r|j)�|j*�}|jtj&@r�|dk	r�|j+||�}qt,|jjd�|j�d
}|j|�|j'�}ndS(NR&iiisDid not specify a usernames<iIB23sR1tserver_hostnameRrstmysql_native_passwordRRPR(R1R�(-R(tserver_versiontsplitRRt
MULTI_RESULTSR�R�R:R	R�tidR'RReR|RQRSR�tserver_capabilitiesR�R�R�twrap_socketRR�R#R9t_auth_plugin_nameRORJtsalttPLUGIN_AUTH_LENENC_CLIENT_DATARxR3tSECURE_CONNECTIONR�R�tPLUGIN_AUTHR>R�R�R�t
_process_authRp(R[t
charset_idt	data_initR*tauthrespR�tauth_packettplugin_name((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR�WsP%
!!#	

"
cCs�|jj|�}|s6|jj|jd��}n|r�y||�}|j|�SWq�tk
r�|dkr�tjdd||f��q�q�tk
r�tjdd||f��q�Xnd}|dkr�t	|j
jd�|j��}n�|dkr1t
|j
jd�|j��d	}n�|d
krV|j
jd�d	}n}|dkr�|}xNtr�|j�}|d@dk}|d
@d
k}	|j�}
|
dkr�|j|j
jd�d	�n�|rmd}y'|j||
�}|j|d	�Wq�tk
r7tjdd||f��q�tk
ritjdd||||
f��q�Xntjdd||f��|j�}|j�|j�s�|	rkPqkqkW|Stjdd|��|j|�|j�}|j�|S(NRtdialogisGAuthentication plugin '%s' not loaded: - %r missing authenticate methodsXAuthentication plugin '%s' not loaded: - %r cannot be constructed with connection objectR�Rtmysql_old_passwordstmysql_clear_passwordiiis
Password: s3no response - TypeError within plugin.prompt methodsAAuthentication plugin '%s' not loaded: - %r missing prompt methodi
sTAuthentication plugin '%s' %r didn't respond with string. Returned '%r' to prompt %rs.Authentication plugin '%s' (%r) not configureds)Authentication plugin '%s' not configured(RR�RtauthenticatetAttributeErrorRR?t	TypeErrorR�RORJReR�RpR�R�R�tpromptR>R�R�(R[R�R�tplugin_classthandlerR*R@tflagtechotlastR�tresp((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR��sh

$(	 




cCs|jdS(Ni(tserver_thread_id(R[((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyRk�scCs|jS(N(R�(R[((s7/usr/lib/python2.7/site-packages/pymysql/connections.pytcharacter_set_name�scCs|jS(N(R(R[((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyt
get_host_info�scCs|jS(N(tprotocol_version(R[((s7/usr/lib/python2.7/site-packages/pymysql/connections.pytget_proto_info�sc	Cs�d}|j�}|j�}t|||d!�|_|d7}|jd|�}|||!jd�|_|d}tjd|||d!�|_	|d7}|||d!|_
|d7}tjd	|||d
!�d|_|d
7}t|�|dkr�tjd|||d!�\}}}}|d7}||_
yt|�j|_Wntk
rqd|_nX||_tr�td
|�n|j|d>O_tr�td|�ntd|d�}n|d7}t|�||kr|j
||||!7_
||7}n|d7}|jtj@r�t|�|kr�|jd|�}|dkr{||jd�|_q�|||!jd�|_ndS(NiisRs<Iiii	s<Hiis<BHHBsserver_status: %xis	salt_len:ii
(R>R}RR�R�RR�RQRRR�R�R�R3tserver_languageR
R�tserver_charsettKeyErrorR�R�RCR2tmaxRR�R�(	R[R>R�R*t
server_endtlangtstattcap_htsalt_len((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR��sN

 

$
)
	

	


"cCs|jS(N(R�(R[((s7/usr/lib/python2.7/site-packages/pymysql/connections.pytget_server_infosNi@i(CR_R`R�R�RR�R�R1RR\R�R7tpropertyR8R5t__del__RR:RBR;RGRIRKRNRPRER[RTRWR_R`RcRhRiR�RlR�RnRpRR�RyR>R�R4RfR�RCR�R�RkR�R�R�R�R�RtWarningR2R�t
DatabaseErrort	DataErrorR?tIntegrityErrorR�tProgrammingErrortNotSupportedError(((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR��s�7							z			
																		H	$		
		&	=	?					?										RLcBs}eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�ZRS(
cCsg||_d|_d|_d|_d|_d|_d|_d|_d|_	d|_
t|_dS(s.
        :type connection: Connection
        iN(
R�R�R�R�R�R�RKR�R�RMR�R�R�(R[R�((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR\/s										cCs|jr|j�ndS(N(R�R�(R[((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR�?s	cCsizX|jj�}|j�r.|j|�n)|j�rJ|j|�n
|j|�Wdd|_XdS(N(R�R>R�RBR�t_read_load_local_packett_read_result_packetR�(R[tfirst_packet((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR�CscCs�t|_|jj�}|j�rF|j|�t|_d|_nP|j�rt|j	|�t|_d|_n"|j
�|_|j�d|_
dS(Nl����(R�R�R�R>R�RBR�R�R�R�R�R�t_get_descriptionsR�(R[R�((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR�Ps	
	
	
cCsXt|�}|j|_|j|_|j|_|j|_|j|_|j|_dS(N(R�R�R�R�R�RKR�(R[R�t	ok_packet((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyRBescCs�|jjstd��nt|�}t|j|j�}y|j�Wn|jj��nX|jj�}|j�s�t	j
dd��n|j|�dS(NsF**WARN**: Received LOAD_LOCAL packet but local_infile option is false.i�sCommands Out of Sync(R�R�tRuntimeErrorR�t
LoadLocalFileR�R6R>R�RR?RB(R[R�tload_packettsenderR�((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR�ns
cCs8|j�stSt|�}|j|_|j|_tS(N(R�R�R�R�R�R�(R[R�twp((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyt_check_packet_is_eofscCs'|j�|_|j�|j�dS(N(R�R�R�t_read_rowdata_packet(R[R�((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR��s
cCsr|js
dS|jj�}|j|�rJt|_d|_d|_dS|j|�}d|_|f|_|S(Ni(	R�R�R>R�R�R�RMt_read_row_from_packetR�(R[R�trow((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyt_read_rowdata_packet_unbuffered�s					cCsGx@|jrB|jj�}|j|�rt|_d|_qqWdS(N(R�R�R>R�R�R�(R[R�((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR��s
	cCsvg}xKtrS|jj�}|j|�r:d|_Pn|j|j|��q	Wt|�|_t	|�|_
dS(s:Read a rowdata packet for each data row in the result set.N(R�R�R>R�R�tappendR�R3R�ttupleRM(R[RMR�((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR��s		cCs�g}x�|jD]�\}}y|j�}Wntk
r@PnX|dk	r�|dk	rk|j|�}ntr�td|�n|dk	r�||�}q�n|j|�qWt|�S(NsDEBUG: DATA = (	RR�t
IndexErrorR�RRCR2R�R�(R[R�R�R|t	converterR*((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR��s
c
Cs~g|_g|_|jj}|jj}g}xt|j�D]}|jjt�}|jj	|�|j	|j
��|j}|r�|tj
kr�|}q�|tkr�|jdkr�d}q�|}q�d}nd}|jjj|�}|tjkrd}ntr*tdj||��n|jj	||f�q@W|jj�}	|	j�sktd��t|�|_
dS(s>Read a column descriptor packet for each column in the result.i?RsDEBUG: field={}, converter={}sProtocol error, expecting EOFN(tfieldsRR�R�R|RR�R>R�R�R�R�RtJSONt
TEXT_TYPESR�R�R
R�tthroughRCR2R.R�RR�(
R[R�t
conn_encodingR�R>tfieldt
field_typeR|R�t
eof_packet((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR��s8								(R_R`R\R�R�R�RBR�R�R�R�R�R�R�R�(((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyRL-s			
								
	
	R�cBseZd�Zd�ZRS(cCs||_||_dS(N(R�R�(R[R�R�((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR\�s	cCs�|jjstjd��n|j}z�ydt|jd��L}t|jd	�}x0tr�|j	|�}|svPn|j
|�qWWWdQXWn/tk
r�tjddj
|j���nXWd|j
d�XdS(
s3Send data packets from the local file to the servers(0, '')RriiNi�sCan't find file '{0}'R1i@(R�RRR�R8R�R;R
R�R�R�RxR?R.(R[tconnt	open_fileR�tchunk((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR6�s		
&(R_R`R\R6(((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyR��s	(dt
__future__Rt_compatRRRRRRR�t	functoolsRthashlibRR�R�RQR5RbR�R�RR	R
t	constantsRRR
RRR1RtcursorsRt
optionfileRtutilRRRR�R�R�tImportErrorR�R�tgetpasstgetuserR�R�RCR�t_py_versionR4R>R)RRt	_socketioRR#tsettBITtBLOBt	LONG_BLOBtMEDIUM_BLOBtSTRINGt	TINY_BLOBR�tVARCHARtGEOMETRYR�tnewRER�R�R�R�R�R�R�RBRHRORIRbtobjectRWRpRaRwRxRyR�R�R�R�R�RLR�(((s7/usr/lib/python2.7/site-packages/pymysql/connections.pyt<module>s�.(




A	
			
	
				�2���4�

Zerion Mini 1.0