a oes@s6dZddlZddlZddlZddlZddlZddlmZdZ ej dkZ e rhddl m Z mZedefZneeZ edZeZeZeZeZeZeZzeWneyeZYn0dd ZGd d d eZGd d d eZ GdddeZ!GdddeZ"Gddde"Z#Gddde"Z$Gddde"Z%Gddde"Z&Gddde"Z'Gddde"Z(Gddde$Z)Gd d!d!e*Z+zddl,Z-d"Z.WndZ.Yn0e.rGd#d$d$e+Z/nGd%d$d$e+Z/Gd&d'd'e+Z0Gd(d)d)e+Z1e0Z2dZ3d*Z4d+Z5d,Z6ej7ej8ej9ej:ej;ejfZ?ej@fZAejBejCejDfZEejFejGejHejIfZJejKejLfZMejNejOejPejQejRejSejTfZUejVejWejXfZYejZej[ej\ej]fZ^ej_ej`ejaejbejcejdejeejffZgGd-d.d.e*ZheheUZieheYZjehe?eEeJeMZkehe^ZleheAZmehegZneejXeoejKedej_eejNepej=ejqejFeejBeejXiZrd/d0Zsd1d2Ztd3d4Zud5d6Zvd7d8Zwd9d:Zxd;d<Zyd=d>Zzd?d@Z{dAdBZ|dCdDZ}dEdFZ~dGdHZdIdJZGdKdLdLeZee^eteMexeJeveEe{e?ezeAezeUe~eYe|egei ZeeddM\ZZZGdNdOdOe*ZGdPdQdQe*ZdRdSZdTdUZdS)Vzadodbapi.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)DateTimeDBNullcCsX||f}z|j|Wn Yn0|durLz|j|Wn Yn0||dSN)messagesappend)Z connectioncursorZ errorclassZ errorvalueerrr 1C:\Program Files\Certbot\pkgs\adodbapi\apibase.pystandardErrorHandler,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@sNeZdZddZddZdddZdd Zd d Zd d ZddZ ddZ dS) TimeConverterc Csdtdddd|_t|dddt|dddt|ddddddtjtjtjh|_ dS)Nik ri) datetimedate toordinal_ordinal_1899_12_31typeDateTime Timestamptimetypesselfr r r __init__szTimeConverter.__init__c Csz2|}z |j}Wnd}Yn0|||WSz||WYSz|WYYStdt|Yn0Yn0Yn0dS)z"Returns a ComDate from a date-timerzCannot convert "%s" to COMdate.N) timetupleZ microsecondComDateFromTupleCOMDate ValueErrorrepr)r,objttmsr r r r0s  zTimeConverter.COMDatercCsdt|d|d|d}||j}|dd|dd|dd |}t|d }||S) Nrri<i@Bg`4B)r!r"r#r$float)r,tZ microsecondsd integerPartr5Z fractPartr r r r/s ( zTimeConverter.ComDateFromTuplecCstdS)z3Returns an object of the wanted type from a ComDateNNotImplementedErrorr,comDater r r DateObjectFromCOMDatesz#TimeConverter.DateObjectFromCOMDatecCstdS)z8This function constructs an object holding a date value.Nr?r,yearmonthdayr r r r&szTimeConverter.DatecCstdS)z8This function constructs an object holding a time value.Nr?r,hourminutesecondr r r r'szTimeConverter.TimecCstdS)z>This function constructs an object holding a time stamp value.Nr?r,rErFrGrIrJrKr r r r(szTimeConverter.Timestampc Csz|d}Wnttfyt|tjr:|d}nPz|d}Wn@tyztd|}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 TypeErrorAttributeError isinstancer!r"strftimer)r1r2)r,r3sr r r DateObjectToIsoFormatStrings  "z)TimeConverter.DateObjectToIsoFormatStringN)r) rrrr-r0r/rCr&r'r(rSr r r r rs  rTc@s4eZdZddZddZddZddZd d Zd S) mxDateTimeConvertercCs t||jttjdSr)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.TimestampNrrrr-rCr&r'r(r r r r rTs rTc@s eZdZdS)rTNrr r r r rTsc@s4eZdZddZddZddZddZd d Zd S) pythonDateTimeConvertercCst|dSr)rr-r+r r r r-sz pythonDateTimeConverter.__init__c Cst|tjr6|}|}tjtj||}|St|trJ|}nt|}t |}||}tj||j tj |dd}|S)Ni\&)Z milliseconds) rPr!r#r)ZcombineZ fromordinalrToOADater;intr$Z timedelta) r,rBZodnZtimnewZfComDater>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@s4eZdZddZddZddZddZd d Zd S) pythonTimeConvertercCst||jtjdSr)rr-r*rUr) struct_timer+r r r r-7s zpythonTimeConverter.__init__cCsJt|tjr|St|tr(|}nt|}d}t||d}|S)zReturns ticks since 1970iQg@@)rPr!r.rrYr;r)gmtime)r,rBZfcomDateZ secondsperdayr<r r r rC;s   z)pythonTimeConverter.DateObjectFromCOMDatecCs||||dddSNr)r(rDr r r r&HszpythonTimeConverter.DatecCst|d|d|S)Nr9)r)r^rHr r r r'KszpythonTimeConverter.Timec Cs"tt||||||dddf S)Nr)r) localtimemktimerLr r r r(NszpythonTimeConverter.TimestampNrWr r r r r\6s  r\z2.0qmark)rcZnamedformatZpyformatZdynamicc@s$eZdZddZddZddZdS)DBAPITypeObjectcCst||_dSr) frozensetvalues)r,Z valuesTupler r r r-szDBAPITypeObject.__init__cCs ||jvSrrgr,otherr r r __eq__szDBAPITypeObject.__eq__cCs ||jvSrrhrir r r __ne__szDBAPITypeObject.__ne__N)rrrr-rkrlr r r r resrecCst|}z t|WStyddlm}||jvr@tjYSt|t rTtj YSt|t j rjtj YSt|t jrtjYStdt||fYn0dS)Nr dateconverterz$cannot convert "%s" (type=%s) to ADO)r%typeMapKeyErrorrnr*adcadDaterP StringTypesadBSTRnumbersZIntegraladBigIntZRealadDoublerr2)r=tprnr r r pyTypeToADOTypes          rzcCsddlm}||S)Nrrm)rqrnrC)vrnr r r variantConvertDates r|cCs$trz |WSYn0t|Sr) onIronPythonZToStringstrvariantr r r cvtStrings  rcCs t|tjSr)_convertNumberWithCulturedecimalDecimalrr r r cvtDecimalsrcCst|Sr)rrr r r cvtNumericsrcCs t|tSr)rr;rr r r cvtFloatsrc Csdz ||WStttjfy^zt|dd}||WYStttjfyXYn0Yn0dS)N,.)r1rNrZInvalidOperationr~replace)rfZ europeVsUSr r r rs rcCst|SrrZrr r r cvtIntsrcCst|Srrrr r r cvtLongsrcCst|Sr)bytesrr r r cvtBuffersrcCst|Sr)r~rr r r cvtUnicodesrcCs|Srr xr r r identitysrcCs@tdkrtjdt|t|trz||jj|WSty8td|Yn0dS)NzUnknown column name "{}") _getValuer columnNameslowerrprOrd)r,namer r r __getattr__Ks zSQLrow.__getattr__cCst|jjtkr |jj||jf}n2|jjtkr@|jj|j|}n|jj||j}|jjturb|St||jj|Sr) rrecordset_formatRS_ARRAY ado_resultsr RS_REMOTE convertersNotImplementedr)r,keyr{r r r rQs   zSQLrow._getValuecCs|jjSr)rnumberOfColumnsr+r r r __len__^szSQLrow.__len__c st|tr,z |WSty*Yn0t|trb|jj}fddt|D}t |Szjj | WSt t fyt\}}}|dt|f|Yn0dS)Ncsg|]}|qSr )r.0ir+r r iz&SQLrow.__getitem__..zNo such key as "%s" in %s)rPrZr IndexErrorsliceindicesrrrangetuplerrrprNrexc_infor2__repr__with_traceback)r,rrZvlZersttrr r+r __getitem__as(    zSQLrow.__getitem__cCs t|Sriter__next__r+r r r __iter__uszSQLrow.__iter__ccs"t|jjD]}||Vq dSr)rrrr)r,nr r r rxszSQLrow.__next__cCs\tt|jjddd}d}|D]&\}}||dt||d7}q$|dddS) NcSs|dS)Nrr rr r r }rz!SQLrow.__repr__..)rz )sortedrrrrr2r)r,ZtaglistrRrrr r r r|s   zSQLrow.__repr__cs"ttfddtjjDS)Nc3s|]}t|VqdSr)r~rrr+r r rz!SQLrow.__str__..)r~rrrrr+r r+r __str__szSQLrow.__str__N) rrrr-rrrrrrrrr r r r rEs rc@s4eZdZddZddZddZddZd d Zd S) SQLrowscCs`||_z$|j|_|j|_|j|_|j|_Wn*tyTt|_d|_g|_i|_Yn0||_dSr_)rrrrrrOr numberOfRows)r,rrr r r r r-s   zSQLrows.__init__cCs|jSr)rr+r r r rszSQLrows.__len__csjs gSt|tr6|j}fddt|DSt|trt|dkr|\}}t|tszj | }Wn"t yt dt |Yn0j tkrj||f}n(j tkrȈj||}nj||}jtur|St|j|St|}|SdS)Ncsg|]}t|qSr )r)rrr+r r rrz'SQLrows.__getitem__..r6z%adodbapi: no such column name as "%s")rrPrrrrrlenrZrrrpr2rrrrrrr)r,itemrrjr{rowr r+r rs,        zSQLrows.__getitem__cCs t|Srrr+r r r rszSQLrows.__iter__ccs$t|jD]}t||}|Vq dSr)rrr)r,rrr r r rs zSQLrows.__next__N)rrrr-rrrrr r r r rs rc Csd}g}|d}d}|D]}|rJ|dkr8|dd}n|d|d7}n|r|dd}||d7}d}z |d}Wntyd}Yn0|rd}|d} | s| dkr|d7}z ||} WqtyYqYq0q|d|}||d}|rJ|||d 7}qJ| }q||fS) Nrq'Fr`rrr_?)splitrisalnumr) opoutOpZoutparmschunksinQuoteschunksprRrcr r r changeNamedToQmarksF            rc Csd}g}|d}d}|D]}|rR|dkr@|dkr@|dd}q|d|d7}nd|vr|r|dd}||d7}t|dkrz|ddd\}}Wntytd |Yn0|||d 7}qZd}qZn|d }|d |7}| }q||fS) NrqrFr`z%(rrz)sz+Pyformat SQL has incorrect format near "%s"rz%s)rrr1rrjoin)rrZ outparamsrrrrrRr r r changeFormatToQmarks@        r)rr!rrvrr)rqrrrrplatformr}ZSystemrrr%rrr~Z unicodeTyperZZlongTypertrZmakeByteBuffer memoryviewZmemoryViewType ExceptionZ_BaseException NameErrorr rrrrrrrrrrrobjectrZ 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 adVariantZadGUIDZadoRemainingTypesreSTRINGZBINARYNUMBERZDATETIMEZROWIDZOTHERr;boolrrorzr|rrrrrrrrrrrrrrZvariantConversionsrrZ RS_WIN_32rrrrrrr r r r s     AK #          L:*