TqNc@syddlZdZWn&ek rAddlZejZnXddlZyddlZeZWnek r}e ZnXddl Z ddl Z ddl Z ddl Z yddlZWnek rddlZnXyddlZejZWnek reZnXddlmZmZmZddlmZddlmZmZddlmZddlTddlTddl m!Z!m"Z"m#Z#dd l$m%Z%m&Z&m'Z'dd l(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3e Z4d Z5d Z6d Z7d Z8dZ9dZ:dZ;dZ<dZ=dZ>dZ?dZ@dZAdZBdeCfdYZDdZEdZFdZGdZHdZIdZJdZKd ZLd!eCfd"YZMd#eMfd$YZNd%eCfd&YZOd'eCfd(YZPdS()iNcOstjd||S(Ntsha1(thashlibtnew(targstkwargs((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pyts(tMBLENGTHtcharset_by_namet charset_by_id(tCursor(t FIELD_TYPEtFLAG(t SERVER_STATUS(t*(t join_bytestbyte2inttint2byte(t escape_itemtencoderstdecoders( traise_mysql_exceptiontWarningtErrortInterfaceErrort DataErrort DatabaseErrortOperationalErrortIntegrityErrort InternalErrortNotSupportedErrortProgrammingErroriiiiiiiitlatin1csKddt|GHdtjdjjGHdtjdjjGHdtjdjjGHd tjd jjGHd tjd jjGHd dGHgtt|D]'}|ddkr|||d!^q}x]|D]U}djtd|ddt|ddjtfd|GHqWd dGHdGHdS(NcSs,t|dkr(t|dkr(|SdS(NiAizt.(R(tdata((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pytis_ascii?s$spacket length %dsmethod call[1]: %sismethod call[2]: %sismethod call[3]: %sismethod call[4]: %sismethod call[5]: %sit-iXiit cSsdt|S(Ns%02X(R(tx((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pyRLss csd|S(Ns%s((R%(R"(suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pyRNsts (tlentsyst _getframetf_codetco_nametxrangetjointmap(R!tit dump_datatd((R"suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pyt dump_packet=s  @ .% cCs|dkst|dkr(tdStr:d|GHnt|j}t|j}t}|j||j||j}t||S(Nis password=(tNoneR'RtDEBUGtsha_newtdigesttupdatet _my_crypt(tpasswordtmessagetstage1tstage2tstresult((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pyt _scrambleRs      cCst|}tjd|}xjt|D]\}tjd|||d!dtjd|||d!dA}|tjd|7}q+W|S(NtBii(R'tstructtpackR,tunpack(tmessage1tmessage2tlengthR>R/R%((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pyR8^s "tRandStruct_323cBseZdZdZRS(cCs-d|_||j|_||j|_dS(Nl(t max_valuetseed1tseed2(tselfRIRJ((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pyt__init__ks cCsV|jd|j|j|_|j|jd|j|_t|jt|jS(Nll!(RIRJRHtfloat(RK((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pytmy_rndps(t__name__t __module__RLRN(((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pyRGjs c Cs2t|}t|t }tjd|}tjd|}t|d|dA|d|dA}tj}xJtttt|D]-}|j t t |j ddqWt t |j d} |j } tj}x1| D])} |j t t| t| AqW|j S(Ns>LLiiii@(t_hash_password_323tSCRAMBLE_LENGTH_323RARCRGtStringIOR,tminR'twriteRtintRNtgetvalueR( R9R:t hash_passt hash_messaget hash_pass_nthash_message_ntrand_sttoutbuft_textratouttc((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pyt _scramble_323us  "+   'cCsd}d}d}xyg|D]}|d krt|^qD]L}||d@|||d>d@N}||d>|Ad@}||d@}q>W|d@}|d@}tjd ||S(Nl5W` llqVh$R$s i?illis>LL(R$s llll(RRARB(R9tnrtaddtnr2R%Ratr1tr2((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pyRQs2"  cCs*tjd|d@|d?d@|d?d@S(NtBBBiii(RARB(tn((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pyt pack_int24scCstjd|dd!dS(Nstjd|ddd>S(NR@iiiii(RARC(Ri((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pyt unpack_int24s3cCsltjd|ddtjd|ddd>tjd|ddd>tjd|ddd>S( NR@iiiiiii(RARC(Ri((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pyt unpack_int32scCstjd|ddtjd|ddd>tjd|ddd>tjd|ddd>tjd|d dd >tjd|d dd >tjd|d dd>tjd|ddd>S(NR@iiiiiiiii ii(ii0ii8(RARC(Ri((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pyt unpack_int64scCsu||f}trn|r1|jj|n|jj|~~t|tsht||n ||dS(N(R4tmessagestappendt issubclassR(t connectiontcursort errorclasst errorvalueterr((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pytdefaulterrorhandlers t MysqlPacketcBseZdZdZdZdZdZdZdZdZ dd Z d Z d d Z d Z dZdZdZdZdZdZdZRS(sRepresentation of a MySQL response packet. Reads in the packet from the network socket, removes packet header and provides an interface for reading/parsing the packet results.cCs ||_d|_|jdS(Ni(Rrt_MysqlPacket__positiont_MysqlPacket__recv_packet(RKRr((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pyRLs  cCs|jjjd}t|dkr9tddntrLt|n|d }t|d|_|t d}t j d|d}|jjj|}t||krtddntrt|n||_ dS(sCParse the packet header and read entire packet payload into buffer.iis,Lost connection to MySQL server during queryiis((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pyR|s cCs|j|j}d|_|S(sbRead all remaining data in the packet. (Subsequent read() or peek() will return errors.) N(R~RyR3(RKR>((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pytread_alls cCsT|j|}|dks.|t|jkrGtd||fn||_dS(s1Advance the cursor in data buffer 'length' bytes.is4Invalid advance amount (%s) for cursor. Position=%sN(RyR'R~t Exception(RKRFt new_position((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pyRs  !icCsA|dks!|t|jkr4td|n||_dS(s9Set the position of the data buffer cursor to 'position'.is)Invalid position to rewind cursor to: %s.N(R'R~RRy(RKtposition((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pytrewinds!cCs|j|j|j|!}t||kr{d|t||jt|jf}trl|GH|jnt|n|S(s?Look at the first 'size' bytes in packet without moving cursor.s\Result length not requested length: Expected=%s. Actual=%s. Position: %s. Data Length: %s(R~RyR'R4tdumptAssertionError(RKRR>terror((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pyRs% 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~(RKRRF((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pyt get_bytes s cCst|jd}|tkr%dS|tkr5|S|tkrTt|jtS|tkrst |jt S|t krt |jt SdS(sRead 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. iN(RR|t NULL_COLUMNR3tUNSIGNED_CHAR_COLUMNtUNSIGNED_SHORT_COLUMNRktUNSIGNED_SHORT_LENGTHtUNSIGNED_INT24_COLUMNRltUNSIGNED_INT24_LENGTHtUNSIGNED_INT64_COLUMNRntUNSIGNED_INT64_LENGTH(RKRa((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pytread_length_coded_binarys     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(RR3R|(RKRF((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pytread_length_coded_string)s  cCst|jddkS(Ni(RR(RK((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pyt is_ok_packet5scCst|jddkS(Nii(RR(RK((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pyt is_eof_packet8scCs+t|jd}|dko*|dkS(Niii(RR(RKt field_count((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pytis_resultset_packet;scCst|jddkS(Nii(RR(RK((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pytis_error_packet?scCs^|jrZ|j|jdt|jd}trJd|GHnt|jndS(Niis errno = %d(RRRRkR|R4RR~(RKterrno((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pyt check_errorBs    cCst|jdS(N(R2R~(RK((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pyRJs(RORPt__doc__RLRzRRR|RRRRRRRRRRRRR(((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pyRxs&             tFieldDescriptorPacketcBs;eZdZdZdZdZdZdZRS(sA 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. cGstj|||jdS(N(RxRLt._FieldDescriptorPacket__parse_field_descriptor(RKR((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pyRLUscCs|j|_|j|_|j|_|j|_|jj|jj|_|j|_ |j dt j d|j dd|_t j d|j dd|_t|j d|_t j d|j dd|_t|j d|_|j ddS(s}Parse the 'Field Descriptor' (Metadata) packet. This is compatible with MySQL 4.1+ (not compatible with MySQL 4.0). is((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pyRs   cCs|jr|jjSdSdS(Ni(Rt insert_id(RK((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pyR,s  cCs|js|jdtdnt|trC|j|j}ntj dt |dt |}|j j |||j jtrt||ndS(Ns(0, '')st|n|jj||jjt%|}|j&tr|j'n|j(r0t)|j"j |j |j#j |j td}tt|t||}|jj||jjt%|}|j&tr0|j'q0ndS(Nt5sDid not specify a usernameseZdZdZdZdZdZdZRS(cCstddlm}|||_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ dS(Ni(tproxyi( tweakrefRTRrR3RR,t server_statust warning_countR:RRtrowsthas_next(RKRrRT((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pyRLWs        cCs<|jj|_|jjr.|jn |jdS(N(RrRt first_packetRt_read_ok_packett_read_result_packet(RK((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pyR|ds cCs|jjd|jj|_|jj|_tjd|jjdd|_tjd|jjdd|_ |jj |_ dS(NisRead a column descriptor packet for each column in the result.sProtocol error, expecting EOFN( R`R,RRrRRRpRRRR(RKRR/Rbt eof_packet((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pyR]s (RORPRLR|R[R\R^R](((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pyR+Us    (QRR5t ImportErrortshaRRRRRRRAR(RRt cStringIORStgetpasstgetuserRR3RRRRtcursorsR t constantsR R R tconstants.CLIENTtconstants.COMMANDtutilRRRt convertersRRRRvRRRRRRRRRRRR4RRRRRtUNSIGNED_CHAR_LENGTHRRRRR2R?R8RRtobjectRGRbRQRjRkRlRmRnRwRxRRR+(((suC:\Users\\Desktop\ 2011-12\\\3\YS-ASK3-2011\YS-ASK3-2011\lib\pymysql\connections.pyts|                    L          ?