Format: application/x-python-code
⬇ Download File (17.4 KB)
   1  o
   2  
   3  ��h�i�@s�dZddlmZddlZddlZddlZddlZddlZddlm	Z	m
   4  Z
   5  mZddlm
   6  ZdZdd	�ZGd
   7  d�de�ZGdd
   8  �d
   9  e�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGd d!�d!�ZGd"d#�d#e�ZGd$d%�d%e�Ze�Z dZ!d&Z"d'Z#d(Z$ej%ej&ej'ej(ej)ej*ej+ej,fZ-ej.fZ/ej0ej1ej2fZ3ej4ej5ej6ej7fZ8ej9ej:fZ;ej<ej=ej>ej?ej@ejAejBfZCejDejEejFfZGejHejIejJejKfZLejMejNejOejPejQejRejSejTfZUGd)d*�d*�ZV	eVeC�ZW	eVeG�ZX	eVe-e3e8e;�ZY	eVeL�ZZ	eVe/�Z[eVeU�Z\e]ejFe^ej9e_d�ejMe`ej<eaej+ejbej4ecej0edejFiZed+d,�Zfd-d.�Zgd/d0�Zhd1d2�Zid3d4�Zjd5d6�Zkd7d8�Zld9d:�Zmd;d<�Znd=d>�Zod?d@�ZpdAdB�ZqdCdD�ZrdEdF�ZsGdGdH�dHetece	eugeuff�ZveveLege;eke8eie3ene-eme/emeCeqeGeoeUeri	�ZwexeyddI��\ZzZ{Z|GdJdK�dK�Z}GdLdM�dM�Z~dNdO�ZdPdQ�Z�dS)Rz�adodbapi.apibase - A python DB API 2.0 (PEP 249) interface to Microsoft ADO
  10  
  11  Copyright (C) 2002 Henrik Ekelund, version 2.1 by Vernon Cole
  12  * https://sourceforge.net/projects/pywin32
  13  * https://sourceforge.net/projects/adodbapi
  14  �)�annotationsN)�Callable�Iterable�Mapping�)�
  15  ado_constsFcCsZ||f}z|j�|�WnY|dur)z|j�|�W||��Y||��||���N)�messages�append)�
  16  connection�cursorZ
  17  errorclassZ
  18  errorvalue�err�r�Fc:\Users\shubh\Videos\agent\nova\Lib\site-packages\adodbapi/apibase.py�standardErrorHandlers�rc@�eZdZdS)�ErrorN��__name__�
  19  __module__�__qualname__rrrrr&�rc@r)�WarningNrrrrrr/rrc@r)�InterfaceErrorNrrrrrr3rrc@r)�
  20  DatabaseErrorNrrrrrr7rrc@r)�
  21  InternalErrorNrrrrrr;rrc@r)�OperationalErrorNrrrrrr?rrc@r)�ProgrammingErrorNrrrrrrCrrc@r)�IntegrityErrorNrrrrrrGrrc@r)�	DataErrorNrrrrrrKrrc@r)�NotSupportedErrorNrrrrrr Orr c@seZdZdZdS)�FetchFailedErrorz�
  22      Error is used by RawStoredProcedureQuerySet to determine when a fetch
  23      failed due to a connection being closed or there is no record set
  24      returned. (Non-standard, added especially for django)
  25      N)rrr�__doc__rrrrr!Ssr!c@sNeZdZdd�Zdd�Zddd�Zdd	�Zd
  26  d�Zdd
  27  �Zdd�Z	dd�Z
  28  dS)�
  29  TimeConvertercCsdt�ddd���d|_t|�ddd��t|�ddd��t|�dddddd��tjtjtjh|_	dS)Nik��ri�)
  30  �datetime�date�	toordinal�_ordinal_1899_12_31�type�Date�Time�	Timestamp�time�types��selfrrr�__init__�s
  31  �zTimeConverter.__init__c
  32  Cs^z|��}z|j}Wnd}Y|�||�WSz|�|�WYStd|�d���)z"Returns a ComDate from a date-timer�Cannot convert "z
  33  " to COMdate.)�	timetuple�microsecond�ComDateFromTuple�
  34  ValueError)r1�obj�tt�msrrr�COMDate�s
  35  zTimeConverter.COMDatercCsdt�|d|d|d�}|��|j}|dd|dd|dd	|}t|�d
  36  }||S)Nrr��i��<�i@Bg`�4B)r&r'r(r)�float)r1�t�microseconds�d�integerPartr:Z	fractPartrrrr6�s
  37  (zTimeConverter.ComDateFromTuplecC�t�)z3Returns an object of the wanted type from a ComDate��NotImplementedError)r1�comDaterrr�DateObjectFromCOMDate��z#TimeConverter.DateObjectFromCOMDatecCrF)z8This function constructs an object holding a date value.rG�r1�year�month�dayrrrr+�rKzTimeConverter.DatecCrF)z8This function constructs an object holding a time value.rG�r1�hour�minute�secondrrrr,�rKzTimeConverter.TimecCrF)z>This function constructs an object holding a time stamp value.rG�r1rMrNrOrQrRrSrrrr-�rKzTimeConverter.Timestampc
  38  Csnz|�d�}W|Sttfy6t|tj�r |��d}Y|Sz
  39  t�d|�}WY|Std|�d���w)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:%Sr3z" to isoformat)	�	isoformat�	TypeError�AttributeError�
  40  isinstancer&r'r.�strftimer7)r1r8�srrr�DateObjectToIsoFormatString�s	����z)TimeConverter.DateObjectToIsoFormatStringN)r)rrrr2r;r6rJr+r,r-r\rrrrr#�s
  41  r#c@�4eZdZdd�Zdd�Zdd�Zdd�Zd	d
  42  �ZdS)�pythonDateTimeConvertercCst�|�dSr)r#r2r0rrrr2��z pythonDateTimeConverter.__init__c	Cstt|tj�r|��}|��}tj�tj�|�|�}|St|�}t|�}||}tj�||j�tj	|dd�}|S)Ni\&)Zmilliseconds)
  43  rYr&r(r.�combine�fromordinalrA�intr)�	timedelta)	r1rIZodnZtim�newZfComDaterE�	floatpartZdterrrrJ�s��z-pythonDateTimeConverter.DateObjectFromCOMDatecC�t�|||�Sr)r&r'rLrrrr+�r_zpythonDateTimeConverter.DatecCrfr)r&r.rPrrrr,�r_zpythonDateTimeConverter.TimecCst�||||||�Sr)r&rTrrrr-��z!pythonDateTimeConverter.TimestampN�rrrr2rJr+r,r-rrrrr^�sr^c@r])�pythonTimeConvertercCst�|�|j�tj�dSr)r#r2r/�addr.�struct_timer0rrrr2�s
  44  zpythonTimeConverter.__init__cCs6t|tj�r
  45  |��St|�}d}t�||d�}|S)zReturns ticks since 1970i�Qg@��@)rYr&r4rAr.�gmtime)r1rIZfcomDateZ
  46  secondsperdayrBrrrrJ�sz)pythonTimeConverter.DateObjectFromCOMDatecCs|�|||ddd�S�Nr)r-rLrrrr+
  47  rgzpythonTimeConverter.DatecCst�|d|d|�S)Nr?)r.rlrPrrrr,
  48  szpythonTimeConverter.Timec
  49  Cs"t�t�||||||dddf	��S)Nr�����)r.�	localtime�mktimerTrrrr-s�zpythonTimeConverter.TimestampNrhrrrrri�sriz2.0�qmark)rq�named�formatZpyformatZdynamicc@s$eZdZdd�Zdd�Zdd�ZdS)�DBAPITypeObjectcCst|�|_dSr)�	frozenset�values)r1ZvaluesTuplerrrr2Pr_zDBAPITypeObject.__init__cCs
  50  ||jvSr�rv�r1�otherrrr�__eq__S�
  51  zDBAPITypeObject.__eq__cCs
  52  ||jvSrrwrxrrr�__ne__Vr{zDBAPITypeObject.__ne__N)rrrr2rzr|rrrrrtOsrtc	Cs�t|�}zt|WStyKddlm}||jvr tjYSt|t	�r*tj
  53  YSt|tj�r5tj
  54  YSt|tj�r@tjYStd|�d|�d���w)Nr��
  55  dateconverterzcannot convert "z" (type=z) to ADO)r*�typeMap�KeyError�r~r/�adc�adDaterY�str�adBSTR�numbers�Integral�adBigInt�Real�adDoubler)rD�tpr~rrr�pyTypeToADOTypezs
  56  
  57  
  58  
  59  
  60  
  61  
  62  �r�cCsddlm}|�|�S)Nrr})r�r~rJ)�vr~rrr�variantConvertDate�s
  63  r�cC�t|�Sr�r���variantrrr�	cvtString��r�cCst|tj�Sr)�_convertNumberWithCulture�decimal�Decimalr�rrr�
  64  cvtDecimal��r�cCr�r)r�r�rrr�
  65  cvtNumeric�r�r�cCs
  66  t|t�Sr)r�rAr�rrr�cvtFloat�r{r�c
  67  Cs`z||�WStttjfy/zt|��dd�}||�WYStttjfy.YYdSww)N�,�.)r7rWr��InvalidOperationr��replace)r��fZ
  68  europeVsUSrrrr��s
  69  ��r�cCr�r�rbr�rrr�cvtInt�r�r�cCr�rr�r�rrr�cvtLong�r�r�cCr�r)�bytesr�rrr�	cvtBuffer�r�r�cCr�rr�r�rrr�
  70  cvtUnicode�r�r�cCs|Srr��xrrr�identity�sr�cCs tdkrtj�d|�d��|S)Nrz#Conversion called for Unusual data=�
  71  )�verbose�sys�stderr�writer�rrr�
  72  cvtUnusual�sr�cCs|durdS||�Srr)r��funcrrr�convert_to_python�sr�c@s$eZdZdZd
  73  dd�Zdd
  74  d�ZdS)�MultiMapzhA dictionary of ado.type : function
  75      -- but you can set multiple items by passing an iterable of keys�aDict�8Mapping[Iterable[int] | int, Callable[[object], object]]cCs|��D]\}}|||<qdSr)�items)r1r��kr�rrrr2�s
  76  �zMultiMap.__init__�adoType�Iterable[int] | int�cvtFn�Callable[[object], object]cCs8t|t�r|D]	}t�|||�qdSt�|||�dS)z/set a single item, or a whole iterable of itemsN)rYr�dict�__setitem__)r1r�r�r*rrrr��s
  77  
  78  �zMultiMap.__setitem__N)r�r�)r�r�r�r�)rrrr"r2r�rrrrr��s
  79  r�r>c@sTeZdZdd�Zdd�Zdd�Zdd�Zd	d
  80  �Zdd�Zd
  81  d�Z	dd�Z
  82  dd�ZdS)�SQLrowcCs||_||_dSr)�rows�index)r1r�r�rrrr2s
  83  zSQLrow.__init__cCs6z|�|jj|���WStytd�|���w)NzUnknown column name "{}")�	_getValuer��columnNames�lowerr�rXrs)r1�namerrr�__getattr__s
  84  �zSQLrow.__getattr__cCst|jjtkr|jj||jf}n|jjtkr |jj|j|}n	|jj||j}|jjtur1|St||jj|�Sr)	r��recordset_format�RS_ARRAY�ado_resultsr��	RS_REMOTE�
  85  converters�NotImplementedr�)r1�keyr�rrrr�szSQLrow._getValuecCs|jjSr)r��numberOfColumnsr0rrr�__len__r�zSQLrow.__len__c	s�t|t�rz��|�WSty�wt|t�r/|��jj�}�fdd�t|�D�}t	|�Sz���jj
  86  |���WStt
  87  fyXt��\}}}|d|�d�����|��w)Ncsg|]}��|��qSr)r���.0�ir0rr�
  88  <listcomp>$�z&SQLrow.__getitem__.<locals>.<listcomp>zNo such key as "z" in )rYrbr��
  89  IndexError�slice�indicesr�r��range�tupler�r�r�rWr��exc_info�with_traceback)r1r�r�ZvlZer�st�trrr0r�__getitem__s$
  90  �
  91  ��zSQLrow.__getitem__cC�t|���Sr��iter�__next__r0rrr�__iter__.r�zSQLrow.__iter__ccs$�t|jj�D]}|�|�VqdSr)r�r�r�r�)r1�nrrrr�1s��zSQLrow.__next__cCsXtt|jj���dd�d�}d}|D]\}}||�d|�|��d�7}q|dd�dS)	NcSs|dS)Nrrr�rrr�<lambda>6sz!SQLrow.__repr__.<locals>.<lambda>)r�z	<SQLrow={�:z, �����z}>)�sorted�listr�r�r�r�)r1Ztaglistr[r�r�rrr�__repr__5s
  92  zSQLrow.__repr__cs"tt�fdd�t�jj�D���S)Nc3s�|]
  93  }t��|��VqdSr)r�r�r�r0rr�	<genexpr>>s�z!SQLrow.__str__.<locals>.<genexpr>)r�r�r�r�r�r0rr0r�__str__<s�zSQLrow.__str__N)rrrr2r�r�r�r�r�r�r�r�rrrrr�s
  94  r�c@r])�SQLrowscCs`||_z|j|_|j|_|j|_|j|_Wnty*t|_d|_g|_i|_Ynw||_dSrm)r�r�r�r�r�rXr��numberOfRows)r1r�r�rrrrr2Ls
  95  �
  96  zSQLrows.__init__cCs|jSr)r�r0rrrr�ZszSQLrows.__len__cs��jsgSt|t�r|��j�}�fdd�t|�D�St|t�rwt|�dkrw|\}}t|t�sGz	�j	|�
  97  �}WntyFtd|����w�jt
  98  krT�j||f}n�jtkra�j||}n�j||}�jturo|St|�j|�St�|�}|S)Ncsg|]}t�|��qSr)r�)r�r�r0rrr�br�z'SQLrows.__getitem__.<locals>.<listcomp>r<z!adodbapi: no such column name as )r�rYr�r�r�r�r��lenrbr�r�r�r�r�r�r�r�r�r�)r1�itemr�r��jr��rowrr0rr�]s.
  99  
 100  �
 101  
 102  
 103  
 104  zSQLrows.__getitem__cCr�rr�r0rrrr�xr�zSQLrows.__iter__ccs&�t|j�D]
 105  }t||�}|VqdSr)r�r�r�)r1r�r�rrrr�{s
 106  �
 107  �zSQLrows.__next__N)rrrr2r�r�r�r�rrrrr�Jsr�c
 108  	Cs(d}g}|�d�}d}|D]�}|r%|dkr|dd�}np|d|d7}ng|r�|�dd�}||d7}d}z|d}WntyFd}Ynw|rd}|d}	|	��sW|	dkrs|d7}z||}	Wn	tyjYn	w|	��sW|	dksW|d|�}||d�}|r�|�|�|d	7}|s'|}q
 109  ||fS)
 110  Nr��'Frnr�rr�_�?)�splitr��isalnumr
 111  )
 112  �op�outOpZoutparms�chunks�inQuotes�chunk�spr[r��crrr�changeNamedToQmark�sN����
 113  �r�c	Cs�d}g}|�d�}d}|D]l}|r)|dkr |dkr |dd�}nV|d|d7}nMd|vrj|ri|�dd�}||d7}t|�dkrez|d�dd�\}}Wn
 114  tyZtd	|��w|�|�|d
 115  7}nd}|s/n|�d�}|d
 116  �|�7}|}q
 117  ||fS)Nr�r�Frnz%(rrz)sz+Pyformat SQL has incorrect format near "%s"r�z%s)r�r�r7rr
 118  �join)r�r�Z	outparamsr�r�r�r�r[rrr�changeFormatToQmark�s@���
 119  
 120  ��
 121  r�)�r"�
 122  __future__rr&r�r�r�r.�collections.abcrrrr�rr�r�r�	Exceptionrrrrrrrrrr r!r#r^riZbase_dateconverterZthreadsafetyZapilevelZ
 123  paramstyleZaccepted_paramstylesZ	adIntegerZ
 124  adSmallIntZ	adTinyIntZ
 125  adUnsignedIntZadUnsignedSmallIntZadUnsignedTinyIntZ	adBooleanZadErrorZadoIntegerTypesZ	adChapterZ
 126  adoRowIdTypesr�Z
 127  adFileTimeZadUnsignedBigIntZadoLongTypesZ	adDecimalZ	adNumericZadVarNumericZ
 128  adCurrencyZadoExactNumericTypesr�ZadSingleZadoApproximateNumericTypesr�ZadCharZ
 129  adLongVarCharZadLongVarWCharZ	adVarCharZ
 130  adVarWCharZadWCharZadoStringTypesZadBinaryZadLongVarBinaryZadVarBinaryZadoBinaryTypesZadDBTimeZ
 131  adDBTimeStampr�ZadDBDateZadoDateTimeTypesZadEmptyZadIDispatchZ
 132  adIUnknownZ
 133  adPropVariantZadArrayZ
 134  adUserDefinedZ	adVariantZadGUIDZadoRemainingTypesrt�STRING�BINARY�NUMBERZDATETIMEZROWID�OTHER�
 135  memoryviewrAr*r��boolr�rbr�rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r��objectr�ZvariantConversionsr�r�Z	RS_WIN_32r�r�r�r�r�r�rrrr�<module>s�	AE!�
 136  ��	�
 137  �
 138  �"��J:*