Ë
    êëj�  ã                  óÀ   — d Z ddlmZ ddlmZmZmZ ddlmZm	Z	 ddl
mZ ddlmZmZ ddlmZmZ dd	lmZ dd
lmZ ddlmZ erddlmZ  G d„ dedef   ee   «      Zy)z$
psycopg server-side cursor (sync).
é    )Úannotations)ÚTYPE_CHECKINGÚAnyÚoverload)ÚIterableÚIteratoré   )Úerrors)ÚParamsÚQuery)ÚRowÚ
RowFactory)ÚCursor)ÚSelf)ÚServerCursorMixin)Ú
Connectionc                  ó  ‡ — e Zd ZdZdZedddœ	 	 	 	 	 	 	 dd„«       Zedddœ	 	 	 	 	 	 	 	 	 dd„«       Zddddœ	 	 	 	 	 	 	 	 	 dd	„Zdˆ fd
„Z	 dddœ	 	 	 	 	 	 	 	 	 dd„Zddœ	 	 	 	 	 	 	 dd„Zdd„Z	ddd„Z
dd„Zd d„Zd!d"d„Zˆ xZS )#ÚServerCursorÚpsycopg© NF)Ú
scrollableÚwithholdc                ó   — y ©Nr   )ÚselfÚ
connectionÚnamer   r   s        ú]/var/www/html/kelly/kelly-backend/venv/lib/python3.12/site-packages/psycopg/_server_cursor.pyÚ__init__zServerCursor.__init__   s   € ð ó    c                ó   — y r   r   ©r   r   r   Úrow_factoryr   r   s         r   r   zServerCursor.__init__(   s   € ð r    )r#   r   r   c               ó€   — t        j                  | ||xs |j                  ¬«       t        j                  | |||«       y )N)r#   )r   r   r#   r   r"   s         r   r   zServerCursor.__init__3   s8   € ô 	�‰Ø�*¨+Ò*O¸×9OÑ9Oõ	
ô 	×"Ñ" 4¨¨z¸8ÕDr    c                ó"  •— | j                   j                  5  | j                  r
	 ddd«       y| j                   j                  s)| j                   j                  | j	                  «       «       t
        ‰| �  «        ddd«       y# 1 sw Y   yxY w)zI
        Close the current cursor and free associated resources.
        N)Ú_connÚlockÚclosedÚwaitÚ
_close_genÚsuperÚclose)r   Ú	__class__s    €r   r,   zServerCursor.closeA   sZ   ø€ ð �Z‰Z�_‹_Ø�{Š{Ø÷ ˆ_ð —:‘:×$Ò$Ø—
‘
—‘ §¡Ó 1Ô2Ü‰G‰MŒO÷ �_‰_ús   ˜B¯ABÂB)Úbinaryc               óž  — |rt        dt        |«      d   › �«      ‚| j                  j                  rt	        j
                  d«      ‚	 | j                  j                  5  | j                  j                  | j                  |||«      «       ddd«       | S # 1 sw Y   | S xY w# t        j                  $ r}|j                  d«      ‚d}~ww xY w)zC
        Open a cursor to execute a query to the database.
        zkeyword not supported: r   z2server-side cursors not supported in pipeline modeN)Ú	TypeErrorÚlistÚ_pgconnÚpipeline_statusÚeÚNotSupportedErrorr&   r'   r)   Ú_declare_genÚ_NO_TRACEBACKÚwith_traceback)r   ÚqueryÚparamsr.   ÚkwargsÚexs         r   ÚexecutezServerCursor.executeL   s´   € ñ ÜÐ5´d¸6³lÀ1±oÐ5FÐGÓHÐHØ�<‰<×'Ò'Ü×%Ñ%ØDóð ð	*Ø—‘—“Ø—
‘
—‘ × 1Ñ 1°%¸ÀÓ HÔI÷ !ð
 ˆ÷ !ð
 ˆûô �‰ò 	*Ø×#Ñ# DÓ)Ð)ûð	*ús6   Á	B# Á-BÂB# ÂB ÂB# Â B# Â#CÂ6CÃCT)Ú	returningc               ó,   — t        j                  d«      ‚)z/Method not implemented for server-side cursors.z0executemany not supported on server-side cursors)r4   r5   )r   r9   Ú
params_seqr>   s       r   ÚexecutemanyzServerCursor.executemanyf   s   € ô ×!Ñ!Ð"TÓUÐUr    c                óæ   — | j                   j                  5  | j                   j                  | j                  d«      «      }d d d «       r| xj                  dz  c_        |d   S y # 1 sw Y   Œ&xY w)Nr	   r   )r&   r'   r)   Ú
_fetch_genÚ_pos©r   Úrecss     r   ÚfetchonezServerCursor.fetchonel   sQ   € Ø�Z‰Z�_‹_Ø—:‘:—?‘? 4§?¡?°1Ó#5Ó6ˆD÷ áØ�IŠI˜‰N�IØ˜‘7ˆNà÷ ˆ_ús   —+A'Á'A0c                ó  — |s| j                   }| j                  j                  5  | j                  j                  | j	                  |«      «      }d d d «       | xj
                  t        «      z  c_        |S # 1 sw Y   Œ)xY wr   )Ú	arraysizer&   r'   r)   rC   rD   Úlen)r   ÚsizerF   s      r   Ú	fetchmanyzServerCursor.fetchmanyu   sX   € ÙØ—>‘>ˆDØ�Z‰Z�_‹_Ø—:‘:—?‘? 4§?¡?°4Ó#8Ó9ˆD÷ à�	Š	”S˜“YÑ�	Øˆ÷ ˆ_ús   ¥+A8Á8Bc                óì   — | j                   j                  5  | j                   j                  | j                  d «      «      }d d d «       | xj                  t        «      z  c_        |S # 1 sw Y   Œ)xY wr   )r&   r'   r)   rC   rD   rJ   rE   s     r   ÚfetchallzServerCursor.fetchall}   sL   € Ø�Z‰Z�_‹_Ø—:‘:—?‘? 4§?¡?°4Ó#8Ó9ˆD÷ à�	Š	”S˜“YÑ�	Øˆ÷ ˆ_ús   —+A*Á*A3c              #  ó>  K  — 	 | j                   j                  5  | j                   j                  | j                  | j                  «      «      }d d d «       D ]  }| xj
                  dz  c_        |–— Œ t        |«      | j                  k  ry Œ�# 1 sw Y   ŒCxY w­w)Nr	   )r&   r'   r)   rC   ÚitersizerD   rJ   )r   rF   Úrecs      r   Ú__iter__zServerCursor.__iter__ƒ   ss   è ø€ ØØ—‘—“Ø—z‘z—‘ t§¡°t·}±}Ó'EÓF�÷ !ã�Ø—	’	˜Q‘•	Ø“	ð ô �4‹y˜4Ÿ=™=Ò(Øð ß �üs   ‚Bš5BÁABÂBÂBc                óô   — | j                   j                  5  | j                   j                  | j                  ||«      «       d d d «       |dk(  r| xj                  |z  c_        y || _        y # 1 sw Y   Œ,xY w)NÚrelative)r&   r'   r)   Ú_scroll_genrD   )r   ÚvalueÚmodes      r   ÚscrollzServerCursor.scroll�   sV   € Ø�Z‰Z�_‹_Ø�J‰J�O‰O˜D×,Ñ,¨U°DÓ9Ô:÷ ð �:ÒØ�IŠI˜ÑŽIàˆD�I÷ ˆ_ús   —,A.Á.A7)r   zConnection[Row]r   Ústrr   úbool | Noner   Úbool)
r   úConnection[Any]r   rY   r#   zRowFactory[Row]r   rZ   r   r[   )
r   r\   r   rY   r#   zRowFactory[Row] | Noner   rZ   r   r[   )ÚreturnÚNoner   )
r9   r   r:   zParams | Noner.   rZ   r;   r   r]   r   )r9   r   r@   zIterable[Params]r>   r[   r]   r^   )r]   z
Row | None)r   )rK   Úintr]   ú	list[Row])r]   r`   )r]   zIterator[Row])rT   )rV   r_   rW   rY   r]   r^   )Ú__name__Ú
__module__Ú__qualname__Ú	__slots__r   r   r,   r=   rA   rG   rL   rN   rR   rX   Ú__classcell__)r-   s   @r   r   r      sw  ø„ Ø€JØ€Iàð #'Øñà#ðð ðð
  ðð òó ðð ð #'Øñà#ðð ðð
 %ðð  ðð òó ðð /3Ø"&ØñEà#ðEð ðEð
 ,ðEð  ðEð óEõ	ð !%ðð
 #ñàðð ðð
 ðð ðð 
óð6 PTñVØðVØ(8ðVØHLðVà	óVóôóó÷ð r    r   r\   N)Ú__doc__Ú
__future__r   Útypingr   r   r   Úcollections.abcr   r   Ú r
   r4   Úabcr   r   Úrowsr   r   Úcursorr   Ú_compatr   Ú_server_cursor_baser   r   r   r   r   r    r   Ú<module>rp      sP   ðñõ #ç /Ñ /ß .å ß ß !Ý Ý Ý 2áÝ&ôzÐ$Ð%6¸Ð%;Ñ<¸fÀS¹kõ zr    