ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ 4]c@sdZddlZddlmZddlmZddlmZddlmZddlmZd d lm Z d d lm Z d efd YZ defdYZ defdYZ defdYZdefdYZeZdS(s .. dialect:: mysql+mysqlconnector :name: MySQL Connector/Python :dbapi: myconnpy :connectstring: mysql+mysqlconnector://:@[:]/ :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. iNi(tBIT(t MySQLCompiler(t MySQLDialect(tMySQLExecutionContext(tMySQLIdentifierPrepareri(t processors(tutilt$MySQLExecutionContext_mysqlconnectorcBseZdZRS(cCs |jjS(N(tcursort lastrowid(tself((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/mysqlconnector.pyt get_lastrowid$s(t__name__t __module__R (((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/mysqlconnector.pyR#stMySQLCompiler_mysqlconnectorcBs#eZdZdZdZRS(cKsd|jjr6|j|j|d|j|j|S|j|j|d|j|j|SdS(Ns %% s % (tdialectt_mysqlconnector_double_percentstprocesstlefttright(R tbinarytoperatortkw((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/mysqlconnector.pytvisit_mod_binary)s *cCs$|jjr|jddS|SdS(Nt%s%%(RRtreplace(R ttext((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/mysqlconnector.pytpost_process_text7s cCs$|jjr|jddS|SdS(NRs%%(RRR(R R((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/mysqlconnector.pytescape_literal_column=s (R R RRR(((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/mysqlconnector.pyR(s  t&MySQLIdentifierPreparer_mysqlconnectorcBs2eZedZejdZdZRS(cCs |jjS(N(RR(R ((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/mysqlconnector.pyt_double_percentsEscCsdS(N((R tvalue((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/mysqlconnector.pyRIscCs<|j|j|j}|jjr4|jddS|SdS(NRs%%(Rt escape_quotetescape_to_quoteRR(R R((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/mysqlconnector.pyt_escape_identifierMs (R R tpropertyRtsetterR"(((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/mysqlconnector.pyRDst _myconnpyBITcBseZdZRS(cCsdS(s0MySQL-connector already converts mysql bits, so.N(tNone(R Rtcoltype((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/mysqlconnector.pytresult_processorVs(R R R((((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/mysqlconnector.pyR%UstMySQLDialect_mysqlconnectorcBs)eZdZeZeZeZeZdZe Z e Z e Zejejiee6ZdZdZedZejdZedZdZdZejd Zejd Z d Z!d Z"d Z#ddZ%ddZ&e'dddddgZ(dZ)RS(tmysqlconnectortformatcOs2tt|j||tj|j|_dS(N(tsuperR)t__init__Rt(to_conditional_unicode_processor_factorytdescription_encodingt_description_decoder(R targR((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/mysqlconnector.pyR-nscCstS(N(tFalse(R t connection((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/mysqlconnector.pyt_check_unicode_descriptionwscCsdS(Nslatin-1((R ((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/mysqlconnector.pyR/|scCstjp|jdkS(Nii(ii(Rtpy3kt_mysqlconnector_version_info(R ((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/mysqlconnector.pytsupports_unicode_statementsscCsddlm}|S(Ni(t connector(tmysqlR8(tclsR8((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/mysqlconnector.pytdbapiscCsQy|jtWn5|jjk rH}|j||drBtSnXtSdS(N(tpingR2R;tErrort is_disconnectR&tTrue(R tdbapi_connectionterr((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/mysqlconnector.pytdo_pingscCs|jdd}|j|jtj|dttj|dttj|dttj|dttj|dttj|dttj|d ttj|d ttj|d ttj|d ttj|d ttj|dttj|dttj|dttj|dttj|dt|jdt|j dk ryCddl m }|j d|j}||jO}||dsiii(R;thasattrtretmatchRfttupletgroup(R tm((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/mysqlconnector.pyR6scCstj o|jdkS(Nii(ii(RR5R6(R ((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/mysqlconnector.pyRscCs |jjS(N(R3tcharset(R R3((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/mysqlconnector.pyt_detect_charsetscCs|jS(N(terrno(R t exception((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/mysqlconnector.pyt_extract_error_codescCsfd }|jj|jjf}t||r^|j|kp]dt|kp]dt|kStSdS( NiiiiiisMySQL Connection not available.s$Connection to MySQL is not available(iiiiii(R;tOperationalErrortInterfaceErrort isinstanceRqtstrR2(R teR3Rterrnost exceptions((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/mysqlconnector.pyR>scCs |jS(N(tfetchall(R trpRo((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/mysqlconnector.pyt_compat_fetchallscCs |jS(N(tfetchone(R R|Ro((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/mysqlconnector.pyt_compat_fetchonest SERIALIZABLEsREAD UNCOMMITTEDsREAD COMMITTEDsREPEATABLE READt AUTOCOMMITcCs>|dkrt|_n"t|_tt|j||dS(NR(R?RFR2R,R)t_set_isolation_level(R R3tlevel((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/mysqlconnector.pyRs    N(*R R tdriverR?tsupports_unicode_bindstsupports_sane_rowcounttsupports_sane_multi_rowcounttsupports_native_decimaltdefault_paramstyleRtexecution_ctx_clsRtstatement_compilerRtpreparerRt update_copyRtcolspecsR%RR-R4R#R/tmemoized_propertyR7t classmethodR;RBReR6RRpRsR>R&R}Rtsett_isolation_lookupR(((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/mysqlconnector.pyR)\s>  )     (t__doc__RjtbaseRRRRRtRRRRRR%R)R(((s[/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/mysqlconnector.pyts