
    hp                        S SK Jr  S SKJrJr  S SKJr  S SKJr  \(       a-  S SK	r	S SK
JrJr  S SKr\	R                  S:  a  S SKJr  OS SKJr   " S	 S
5      r " S S5      rg)    )annotations)TYPE_CHECKINGAny)import_optional)
_run_asyncN)	CoroutineIterable)      )Selfc                      \ rS rSrSrSS jrSS jrSS jr SSS.     SS jjjr SSS.     SS	 jjjr	\r
\	rS
rg)ODBCCursorProxy   z:Cursor proxy for ODBC connections (requires `arrow-odbc`).c                ,    Xl         0 U l        S U l        g )Nconnection_stringexecute_optionsquery)selfr   s     \/home/james-whalen/.local/lib/python3.13/site-packages/polars/io/database/_cursor_proxies.py__init__ODBCCursorProxy.__init__   s    !2/1!%
    c                    gzClose the cursor.N r   s    r   closeODBCCursorProxy.close       r   c                    X l         Xl        gz?Execute a query (n/a: just store query for the fetch* methods).N)r   r   r   r   r   s      r   executeODBCCursorProxy.execute    s    .
r   F)	fetch_allc               L    SSK Jn  UR                  U R                  USS95      $ )z%Fetch all results as a pyarrow Table.r   )TableT)
batch_sizer&   )pyarrowr(   from_batchesfetch_record_batches)r   r)   r&   r(   s       r   fetch_arrow_table!ODBCCursorProxy.fetch_arrow_table%   s-     	"!!%%t%L
 	
r   c             #     #    SSK Jn  SSKJn  SnU" SU R                  UU R
                  S.U R                  D6nU H  nUv   US-  nM     US:X  a%  U(       a  UR                  / UR                  S9v   ggg7f)	z.Fetch results as an iterable of RecordBatches.r   )read_arrow_batches_from_odbc)RecordBatch)r   r)   r      )schemaNr   )	
arrow_odbcr0   r*   r1   r   r   r   from_pylistr3   )r   r)   r&   r0   r1   	n_batchesbatch_readerbatchs           r   r,   $ODBCCursorProxy.fetch_record_batches/   s      	<'	3 
**!"44
 ""	
 "EKNI " >i))"\5H5H)II (>s   A7A9r   N)r   strreturnNoner;   r<   )r   r:   r   r   r;   r<   )i'  )r)   intr&   boolr;   zpa.Table)r)   r>   r&   r?   r;   zIterable[pa.RecordBatch])__name__
__module____qualname____firstlineno____doc__r   r   r$   r-   r,   fetchall	fetchmany__static_attributes__r   r   r   r   r      sy    D&
  !'
=B

6:
	
 !'J=BJJ6:J	!J. !H$Ir   r   c                      \ rS rSr% SrSrS\S'   SS jr\    SS j5       r	\    SS j5       r
SS	 jrSS
 jrSS jrSS jrSrg)SurrealDBCursorProxyJ   z?Cursor proxy for both SurrealDB and AsyncSurrealDB connections.Nzlist[dict[str, Any]] | None_cached_resultc                v    [        S5      n[        XR                  5      U l        0 U l        Xl        S U l        g )N	surrealdb)r   
isinstanceAsyncSurrealDBis_asyncr   clientr   )r   rQ   rM   s      r   r   SurrealDBCursorProxy.__init__O   s2    #K0	"6+C+CD/1
r   c                `   #    U I Sh  vN S   nUS   S:w  a  [        US   5      eUS   $  N#7f)zUnpack the async query result.Nr   statusOKresultRuntimeErrorrV   responses     r   _unpack_result_async)SurrealDBCursorProxy._unpack_result_asyncV   s@     
 !L!$H%x122!! !s   .,$.c                D    U S   nUS   S:w  a  [        US   5      eUS   $ )zUnpack the query result.r   rT   rU   rV   rW   rY   s     r   _unpack_result#SurrealDBCursorProxy._unpack_result`   s5    
 !9H%x122!!r   c                    gr   r   r   s    r   r   SurrealDBCursorProxy.closej   r    r   c                ,    SU l         X l        Xl        U $ r"   )rK   r   r   r#   s      r   r$   SurrealDBCursorProxy.executen   s    ".
r   c           	     F   U R                   (       aM  [        U R                  U R                  R	                  U R                  U R
                  =(       d    SS9S95      $ U R                  U R                  R	                  U R                  U R
                  =(       d    SS9S9$ )z.Fetch all results (as a list of dictionaries).N)r   	variables)rV   )rP   r   r[   rQ   r   r   r^   r   s    r   rE   SurrealDBCursorProxy.fetchallu   s     }} ));;,,"jj#'#7#7#?4 -  * 	
 $${{((**#33;t )  % 	
r   c                    U R                   c  U R                  5       U l         U R                   SU nU R                   SU2	 U$ )z%Fetch results in batches (simulated).N)rK   rE   )r   sizerV   s      r   rF   SurrealDBCursorProxy.fetchmany   sI     &"&--/D $$Ud+&r   )rK   rQ   r   rP   r   )rQ   r   r;   r<   )rV   )Coroutine[Any, Any, list[dict[str, Any]]]r;   rj   )rV   list[dict[str, Any]]r;   rk   r=   )r   r:   r   r   r;   r   )r;   rk   )rh   r>   r;   rk   )r@   rA   rB   rC   rD   rK   __annotations__r   staticmethodr[   r^   r   r$   rE   rF   rG   r   r   r   rI   rI   J   sq    I26N/6 "9"	2" " "$"	" " 
(
r   rI   )
__future__r   typingr   r   polars._dependenciesr   polars.io.database._utilsr   syscollections.abcr   r	   r*   paversion_infor   typing_extensionsr   rI   r   r   r   <module>rw      sH    " % 0 03
7"*3% 3%lI Ir   