a „oeØsã@s6dZddlZddlZddlZddlZddlZddlmZdZ ej dkZ e rhddl m Z mZedƒefZneeƒZ edƒZeZeZeZeZeZeZzeWney®eZYn0dd „ZGd d „d eƒZGd d „d eƒZ Gdd„deƒZ!Gdd„deƒZ"Gdd„de"ƒZ#Gdd„de"ƒZ$Gdd„de"ƒZ%Gdd„de"ƒZ&Gdd„de"ƒZ'Gdd„de"ƒZ(Gdd„de$ƒZ)Gd d!„d!e*ƒZ+zddl,Z-d"Z.WndZ.Yn0e.�r²Gd#d$„d$e+ƒZ/nGd%d$„d$e+ƒZ/Gd&d'„d'e+ƒZ0Gd(d)„d)e+ƒZ1e0ƒZ2dZ3d*Z4d+Z5d,Z6ej7ej8ej9ej:ej;ejfZ?ej@fZAejBejCejDfZEejFejGejHejIfZJejKejLfZMejNejOejPejQejRejSejTfZUejVejWejXfZYejZej[ej\ej]fZ^ej_ej`ejaejbejcejdejeejffZgGd-d.„d.e*ƒZheheUƒZieheYƒZjehe?eEeJeMƒZkehe^ƒZleheAƒZmehegƒZneejXeoejKedƒej_eejNepej=ejqejFeejBeejXiZrd/d0„Zsd1d2„Ztd3d4„Zud5d6„Zvd7d8„Zwd9d:„Zxd;d<„Zyd=d>„Zzd?d@„Z{dAdB„Z|dCdD„Z}dEdF„Z~dGdH„ZdIdJ„Z€GdKdL„dLe�ƒZ‚e‚e^eteMexeJeveEe{e?ezeAezeUe~eYe|egei ƒZƒe„e…ddMƒƒ\Z†Z‡ZˆGdNdO„dOe*ƒZ‰GdPdQ„dQe*ƒZŠdRdS„Z‹dTdU„ZŒdS)Vzàadodbapi.apibase - A python DB API 2.0 (PEP 249) interface to Microsoft ADO Copyright (C) 2002 Henrik Ekelund, version 2.1 by Vernon Cole * http://sourceforge.net/projects/pywin32 * http://sourceforge.net/projects/adodbapi éNé)Ú ado_constsFZcli)ÚDateTimeÚDBNullcCsX||f}z|j |¡Wn Yn0|durLz|j |¡Wn Yn0||ƒ‚dS©N)ÚmessagesÚappend)Z connectionÚcursorZ errorclassZ errorvalueÚerr©r ú1C:\Program Files\Certbot\pkgs\adodbapi\apibase.pyÚstandardErrorHandler,sr c@s eZdZdS)ÚErrorN©Ú__name__Ú __module__Ú __qualname__r r r r r;src@s eZdZdS)ÚWarningNrr r r r rDsrc@s eZdZdS)ÚInterfaceErrorNrr r r r rHsrc@s eZdZdS)Ú DatabaseErrorNrr r r r rLsrc@s eZdZdS)Ú InternalErrorNrr r r r rPsrc@s eZdZdS)ÚOperationalErrorNrr r r r rTsrc@s eZdZdS)ÚProgrammingErrorNrr r r r rXsrc@s eZdZdS)ÚIntegrityErrorNrr r r r r\src@s eZdZdS)Ú DataErrorNrr r r r r`src@s eZdZdS)ÚNotSupportedErrorNrr r r r rdsrc@seZdZdZdS)ÚFetchFailedErrorzÏ Error is used by RawStoredProcedureQuerySet to determine when a fetch failed due to a connection being closed or there is no record set returned. (Non-standard, added especially for django) N)rrrÚ__doc__r r r r rhsrc@sNeZdZdd„Zdd„Zddd„Zdd „Zd d „Zd d „Zdd„Z dd„Z dS)Ú TimeConverterc Csdt ddd¡ ¡d|_t| ddd¡ƒt| ddd¡ƒt| dddddd¡ƒtjtjtjh|_ dS)Niké ériÐ) ÚdatetimeÚdateÚ toordinalÚ_ordinal_1899_12_31ÚtypeÚDateÚTimeÚ TimestampÚtimeÚtypes©Úselfr r r Ú__init__ªsúzTimeConverter.__init__c Cs’z2| ¡}z |j}Wnd}Yn0| ||¡WSz| |¡WYSz| ¡WYYStdt|ƒƒ‚Yn0Yn0Yn0dS)z"Returns a ComDate from a date-timerzCannot convert "%s" to COMdate.N)Ú timetupleZ microsecondÚComDateFromTupleÚCOMDateÚ ValueErrorÚrepr)r,ÚobjÚttÚmsr r r r0¶s  zTimeConverter.COMDatercCsdt |d|d|d¡}| ¡|j}|dd|dd|dd |}t|ƒd }||S) Nrrééiéé<éi@Bg`×4B)r!r"r#r$Úfloat)r,ÚtZ microsecondsÚdÚ integerPartr5Z fractPartr r r r/És ( zTimeConverter.ComDateFromTuplecCst‚dS)z3Returns an object of the wanted type from a ComDateN©ÚNotImplementedError©r,ÚcomDater r r ÚDateObjectFromCOMDateÐsz#TimeConverter.DateObjectFromCOMDatecCst‚dS)z8This function constructs an object holding a date value.Nr?©r,ÚyearÚmonthÚdayr r r r&ÔszTimeConverter.DatecCst‚dS)z8This function constructs an object holding a time value.Nr?©r,ÚhourÚminuteÚsecondr r r r'ØszTimeConverter.TimecCst‚dS)z>This function constructs an object holding a time stamp value.Nr?©r,rErFrGrIrJrKr r r r(ÜszTimeConverter.Timestampc Cs”z| d¡}Wn€ttfyŽt|tjƒr:| ¡d}nPz| d¡}Wn@tyˆzt d|¡}Wntdt |ƒƒ‚Yn0Yn0Yn0|S)zYThis function should return a string in the format 'YYYY-MM-dd HH:MM:SS:ms' (ms optional)ú z 00:00:00z%Y-%m-%d %H:%M:%Sz Cannot convert "%s" to isoformat) Z isoformatÚ TypeErrorÚAttributeErrorÚ isinstancer!r"Ústrftimer)r1r2)r,r3Úsr r r ÚDateObjectToIsoFormatStringás  "z)TimeConverter.DateObjectToIsoFormatStringN)r) rrrr-r0r/rCr&r'r(rSr r r r r©s  rTc@s4eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd S) ÚmxDateTimeConvertercCs t |¡|j ttjƒ¡dSr)rr-r*Úaddr%Úmxrr+r r r r-ýs zmxDateTimeConverter.__init__cCs tj |¡Sr)rVrZDateTimeFromCOMDaterAr r r rCsz)mxDateTimeConverter.DateObjectFromCOMDatecCstj |||¡Sr)rVrr&rDr r r r&szmxDateTimeConverter.DatecCstj |||¡Sr)rVrr'rHr r r r'szmxDateTimeConverter.TimecCstj ||||||¡Sr)rVrr(rLr r r r( szmxDateTimeConverter.TimestampN©rrrr-rCr&r'r(r r r r rTüs rTc@s eZdZdS)rTNrr r r r rTsc@s4eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd S) ÚpythonDateTimeConvertercCst |¡dSr)rr-r+r r r r-sz pythonDateTimeConverter.__init__c Csˆt|tjƒr6| ¡}| ¡}tj tj |¡|¡}|St|tƒrJ| ¡}nt|ƒ}t |ƒ}||}tj ||j ¡tj |dd�}|S)Ni\&)Z milliseconds) rPr!r#r)ZcombineZ fromordinalrÚToOADater;Úintr$Z timedelta) r,rBZodnZtimÚnewZfComDater>Z floatpartZdter r r rCs    ÿþz-pythonDateTimeConverter.DateObjectFromCOMDatecCst |||¡Sr)r!r"rDr r r r&,szpythonDateTimeConverter.DatecCst |||¡Sr)r!r)rHr r r r'/szpythonDateTimeConverter.TimecCst ||||||¡Sr)r!rLr r r r(2sz!pythonDateTimeConverter.TimestampNrWr r r r rXs rXc@s4eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd S) ÚpythonTimeConvertercCst |¡|j tj¡dSr)rr-r*rUr)Ú struct_timer+r r r r-7s zpythonTimeConverter.__init__cCsJt|tjƒr| ¡St|tƒr(| ¡}nt|ƒ}d}t ||d¡}|S)zReturns ticks since 1970i€Qg@øØ@)rPr!r.rrYr;r)Úgmtime)r,rBZfcomDateZ secondsperdayr<r r r rC;s   z)pythonTimeConverter.DateObjectFromCOMDatecCs| |||ddd¡S©Nr)r(rDr r r r&HszpythonTimeConverter.DatecCst |d|d|¡S)Nr9)r)r^rHr r r r'KszpythonTimeConverter.Timec Cs"t t ||||||dddf ¡¡S)Nréÿÿÿÿ)r)Ú localtimeÚmktimerLr r r r(NsÿzpythonTimeConverter.TimestampNrWr r r r r\6s  r\z2.0Úqmark)rcZnamedÚformatZpyformatZdynamicc@s$eZdZdd„Zdd„Zdd„ZdS)ÚDBAPITypeObjectcCst|ƒ|_dSr)Ú frozensetÚvalues)r,Z valuesTupler r r r-ŽszDBAPITypeObject.__init__cCs ||jvSr©rg©r,Úotherr r r Ú__eq__‘szDBAPITypeObject.__eq__cCs ||jvSrrhrir r r Ú__ne__”szDBAPITypeObject.__ne__N)rrrr-rkrlr r r r re�srecCsžt|ƒ}z t|WSty˜ddlm}||jvr@tjYSt|t ƒrTtj YSt|t j ƒrjtj YSt|t jƒr€tjYStdt|ƒ|fƒ‚Yn0dS)Nr©Ú dateconverterz$cannot convert "%s" (type=%s) to ADO)r%ÚtypeMapÚKeyErrorÚrnr*ÚadcÚadDaterPÚ StringTypesÚadBSTRÚnumbersZIntegralÚadBigIntZRealÚadDoublerr2)r=Útprnr r r ÚpyTypeToADOType¸s   ÿ       rzcCsddlm}| |¡S)Nrrm)rqrnrC)Úvrnr r r ÚvariantConvertDateÑs r|cCs$trz | ¡WSYn0t|ƒSr)Ú onIronPythonZToStringÚstr©Úvariantr r r Ú cvtString×s  r�cCs t|tjƒSr)Ú_convertNumberWithCultureÚdecimalÚDecimalrr r r Ú cvtDecimalàsr…cCst|ƒSr)r…rr r r Ú cvtNumericäsr†cCs t|tƒSr)r‚r;rr r r ÚcvtFloatèsr‡c Csdz ||ƒWStttjfy^zt|ƒ dd¡}||ƒWYStttjfyXYn0Yn0dS)Nú,Ú.)r1rNrƒZInvalidOperationr~Úreplace)r€ÚfZ europeVsUSr r r r‚ìs r‚cCst|ƒSr©rZrr r r ÚcvtInt÷sr�cCst|ƒSrrŒrr r r ÚcvtLongûsrŽcCst|ƒSr)Úbytesrr r r Ú cvtBufferÿsr�cCst|ƒSr)r~rr r r Ú cvtUnicodesr‘cCs|Srr ©Úxr r r Úidentitysr”cCs@tdkrtj dt|ƒ¡t|tƒrz| |jj| ¡¡WSty8td |¡ƒ‚Yn0dS)NzUnknown column name "{}")Ú _getValuer¤Ú columnNamesÚlowerrprOrd)r,Únamer r r Ú __getattr__Ks zSQLrow.__getattr__cCst|jjtkr |jj||jf}n2|jjtkr@|jj|j|}n|jj||j}|jjturb|St||jj|ƒSr) r¤Úrecordset_formatÚRS_ARRAYÚ ado_resultsr¥Ú RS_REMOTEÚ convertersÚNotImplementedrœ)r,Úkeyr{r r r r¦Qs ÿ  zSQLrow._getValuecCs|jjSr)r¤ÚnumberOfColumnsr+r r r Ú__len__^szSQLrow.__len__c sÂt|tƒr,z ˆ |¡WSty*‚Yn0t|tƒrb| ˆjj¡}‡fdd„t|ŽDƒ}t |ƒSzˆ ˆjj |  ¡¡WSt t fy¼t ¡\}}}|dt|ƒˆ ¡fƒ |¡‚Yn0dS)Ncsg|]}ˆ |¡‘qSr )r¦©Ú.0Úir+r r Ú ióz&SQLrow.__getitem__..zNo such key as "%s" in %s)rPrZr¦Ú IndexErrorÚsliceÚindicesr¤r²ÚrangeÚtupler§r¨rprNr–Úexc_infor2Ú__repr__Úwith_traceback)r,r±r»ZvlZerÚstÚtrr r+r Ú __getitem__as(    ÿÿþzSQLrow.__getitem__cCs t| ¡ƒSr©ÚiterÚ__next__r+r r r Ú__iter__uszSQLrow.__iter__ccs"t|jjƒD]}| |¡Vq dSr)r¼r¤r²r¦)r,Únr r r rÆxszSQLrow.__next__cCs\tt|jj ¡ƒdd„d�}d}|D]&\}}||dt| |¡ƒd7}q$|dd…dS) NcSs|dS)Nrr r’r r r Ú}r¸z!SQLrow.__repr__..)r±z )Úsortedržr¤r§rŸr2r¦)r,ZtaglistrRr©r¶r r r r¿|s   zSQLrow.__repr__cs"tt‡fdd„tˆjjƒDƒƒƒS)Nc3s|]}tˆ |¡ƒVqdSr)r~r¦r´r+r r Ú …r¸z!SQLrow.__str__..)r~r½r¼r¤r²r+r r+r Ú__str__ƒsÿzSQLrow.__str__N) rrrr-rªr¦r³rÃrÇrÆr¿rÎr r r r r£Es r£c@s4eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd S) ÚSQLrowscCs`||_z$|j|_|j|_|j|_|j|_Wn*tyTt|_d|_g|_i|_Yn0||_dSr_)r­r«r²r¯r§rOr¬Ú numberOfRows)r,r­rÐr r r r r-“s   zSQLrows.__init__cCs|jSr)rÐr+r r r r³¡szSQLrows.__len__csˆjs gSt|tƒr6| ˆj¡}‡fdd„t|ŽDƒSt|tƒrôt|ƒdkrô|\}}t|tƒs”zˆj |  ¡}Wn"t y’t dt |ƒƒ‚Yn0ˆj tkr®ˆj||f}n(ˆj tkrȈj||}nˆj||}ˆjturä|St|ˆj|ƒStˆ|ƒ}|SdS)Ncsg|]}tˆ|ƒ‘qSr )r£)rµr r+r r r·©r¸z'SQLrows.__getitem__..r6z%adodbapi: no such column name as "%s")r­rPrºr»rÐr¼r½ÚlenrZr§r¨rpr2r«r¬r®r¯r°rœr£)r,Úitemr»r¶Újr{Úrowr r+r räs,        zSQLrows.__getitem__cCs t| ¡ƒSrrÄr+r r r rÇ¿szSQLrows.__iter__ccs$t|jƒD]}t||ƒ}|Vq dSr)r¼rÐr£)r,rÈrÔr r r rÆÂs zSQLrows.__next__N)rrrr-r³rÃrÇrÆr r r r rÏ‘s rÏc Csd}g}| d¡}d}|D]ú}|rJ|dkr8|dd…}n|d|d7}nÄ|�r| dd¡}||d7}d}z |d}WntyŽd}Yn0|röd}|d} |  ¡s°| dkrÞ|d7}z ||} Wq tyÚYqÞYq 0q |d|…}||d…}|rJ| |¡|d 7}qJ| }q||fS) Nrqú'Fr`rÊrrÚ_ú?)Úsplitr¹Úisalnumr) ÚopÚoutOpZoutparmsÚchunksÚinQuotesÚchunkÚsprRr¶Úcr r r ÚchangeNamedToQmarkËsFÿ            rác Csþd}g}| d¡}d}|D]Ú}|rR|dkr@|dkr@|dd…}qî|d|d7}nœd|vrÖ|rî| dd¡}||d7}t|ƒdkrÎz|d dd¡\}}Wnty¸td |ƒ‚Yn0| |¡|d 7}qZd}qZn| d ¡}|d  |¡7}| }q||fS) NrqrÕFr`z%(rrz)sz+Pyformat SQL has incorrect format near "%s"r×z%s)rØrÑr1rrÚjoin)rÚrÛZ outparamsrÜrÝrÞrßrRr r r ÚchangeFormatToQmarkõs@ÿÿÿ    ÿ    rã)�rr!rƒrvr–r)rqrrrr•Úplatformr}ZSystemrrr%ršr°r~Z unicodeTyperZZlongTypertr�ZmakeByteBufferÚ memoryviewZmemoryViewTypeÚ ExceptionZ_BaseExceptionÚ NameErrorr rrrrrrrrrrrÚobjectrZ mx.DateTimerVZ mxDateTimerTrXr\Zbase_dateconverterZ threadsafetyZapilevelZ paramstyleZaccepted_paramstylesZ adIntegerZ adSmallIntZ adTinyIntZ adUnsignedIntZadUnsignedSmallIntZadUnsignedTinyIntZ adBooleanZadErrorZadoIntegerTypesZ adChapterZ adoRowIdTypesrwZ adFileTimeZadUnsignedBigIntZ adoLongTypesZ adDecimalZ adNumericZ adVarNumericZ adCurrencyZadoExactNumericTypesrxZadSingleZadoApproximateNumericTypesruZadCharZ adLongVarCharZadLongVarWCharZ adVarCharZ adVarWCharZadWCharZadoStringTypesZadBinaryZadLongVarBinaryZ adVarBinaryZadoBinaryTypesZadDBTimeZ adDBTimeStamprsZadDBDateZadoDateTimeTypesZadEmptyZ adIDispatchZ adIUnknownZ adPropVariantZadArrayZ adUserDefinedZ adVariantZadGUIDZadoRemainingTypesreÚSTRINGZBINARYÚNUMBERZDATETIMEZROWIDZOTHERr;Úboolr„rorzr|r�r…r†r‡r‚r�rŽr�r‘r”r™rœr¡r�ZvariantConversionsržr¼Z RS_WIN_32r¬r®r£rÏrárãr r r r Ús     AK #ø ü ù ø  ÿ ø    ÷ÿL:*