o
    Â¿i«  ã                   @  s    d dl mZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dlm
Z
 d d	lmZ ed
eeeef ZG dd„ dƒZG dd„ deƒZd
S )é    )Úannotations)ÚSequence)ÚDict)ÚIterator)ÚList)ÚOptional)Úoverload)ÚTuple)ÚUnionNc                   @  s¶   e Zd ZU dZded< ded< ded< ded	< g d
¢Zd*dd„Zd+dd„Zd,dd„Ze	d-dd„ƒZ
e	d.dd„ƒZ
d/d d„Z
ed0d!d"„ƒZed1d#d$„ƒZed,d%d&„ƒZed2d'd(„ƒZd)S )3Ú	ResultSetzÃResult of an SQL statement.

    The result is composed of columns and rows.
    Every row is represented as a `Row` object and the length of
    every row is equal to the number of columns.
    úTuple[str, ...]Ú_columnsú	List[Row]Ú_rowsÚintÚ_rows_affectedúOptional[int]Ú_last_insert_rowid©r   r   r   r   ÚcolumnsÚrowsúList['Row']Úrows_affectedÚlast_insert_rowidc                 C  s   || _ || _|| _|| _d S ©Nr   )Úselfr   r   r   r   © r   úH/home/ubuntu/.local/lib/python3.10/site-packages/libsql_client/result.pyÚ__init__   s   
zResultSet.__init__ÚreturnúIterator['Row']c                 C  s
   | j  ¡ S r   )r   Ú__iter__©r   r   r   r   r!   )   ó   
zResultSet.__iter__c                 C  ó
   t | jƒS r   )Úlenr   r"   r   r   r   Ú__len__,   r#   zResultSet.__len__ÚkeyÚRowc                 C  ó   d S r   r   ©r   r'   r   r   r   Ú__getitem__/   ó   zResultSet.__getitem__Úslicec                 C  r)   r   r   r*   r   r   r   r+   3   r,   úUnion[int, slice]úUnion[Row, List[Row]]c                 C  s
   | j | S r   ©r   r*   r   r   r   r+   7   r#   c                 C  ó   | j S r   )r   r"   r   r   r   r   :   ó   zResultSet.columnsc                 C  r1   r   r0   r"   r   r   r   r   >   r2   zResultSet.rowsc                 C  r1   r   )r   r"   r   r   r   r   B   r2   zResultSet.rows_affectedc                 C  r1   r   )r   r"   r   r   r   r   F   r2   zResultSet.last_insert_rowidN)r   r   r   r   r   r   r   r   )r   r    ©r   r   )r'   r   r   r(   )r'   r-   r   r   )r'   r.   r   r/   ©r   r   )r   r   )r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__Ú	__slots__r   r!   r&   r   r+   Úpropertyr   r   r   r   r   r   r   r   r      s.   
 



r   c                   @  s¢   e Zd ZU dZded< ded< ddgZd%d
d„Zed&dd„ƒZed'dd„ƒZed(dd„ƒZd)dd„Zd*dd„Z	d+dd„Z
d,dd„Zd-dd „ZeZed.d"d#„ƒZd$S )/r(   zfA row returned by an SQL statement.

    The row values can be accessed with an index or by name.
    úDict[str, int]Ú_column_idxsúTuple[Value, ...]Ú_valuesÚcolumn_idxsÚvaluesr   ÚNonec                 C  s   || _ || _d S r   )r=   r?   )r   r@   rA   r   r   r   r   U   s   
zRow.__init__r'   r   ÚValuec                 C  r)   r   r   r*   r   r   r   r+   Y   r,   zRow.__getitem__Ústrc                 C  r)   r   r   r*   r   r   r   r+   ]   r,   r-   c                 C  r)   r   r   r*   r   r   r   r+   a   r,   úUnion[int, str, slice]úUnion[Value, Tuple[Value, ...]]c                 C  s$   t |tƒr| j| }n|}| j| S )z#Access a value by index or by name.)Ú
isinstancerD   r=   r?   )r   r'   Ú	tuple_keyr   r   r   r+   e   s   

c                 C  r$   r   )r%   r?   r"   r   r   r   r&   p   r#   zRow.__len__c                 C  r$   r   )Úreprr?   r"   r   r   r   Ú__repr__s   r#   zRow.__repr__c                 C  r1   r   ©r?   r"   r   r   r   Úastuplev   s   zRow.astupleúDict[str, Value]c                   s   ‡ fdd„ˆ j  ¡ D ƒS )Nc                   s   i | ]
\}}|ˆ j | “qS r   rK   )Ú.0r'   Úidxr"   r   r   Ú
<dictcomp>z   s    zRow.asdict.<locals>.<dictcomp>)r=   Úitemsr"   r   r"   r   Úasdicty   s   z
Row.asdictr   c                 C  s   t | j ¡ ƒS r   )Útupler=   Úkeysr"   r   r   r   Ú_fields~   s   zRow._fieldsN)r@   r<   rA   r>   r   rB   )r'   r   r   rC   )r'   rD   r   rC   )r'   r-   r   r>   )r'   rE   r   rF   r3   )r   rD   )r   r>   )r   rM   r4   )r5   r6   r7   r8   r9   r:   r   r   r+   r&   rJ   rL   rR   Ú_asdictr;   rU   r   r   r   r   r(   K   s(   
 





r(   )Ú
__future__r   Úcollections.abcr   Útypingr   r   r   r   r   r	   r
   rD   r   ÚfloatÚbytesrC   r   r(   r   r   r   r   Ú<module>   s    <