
    gi                        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dS )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d7d            Zedddd8d            Zddddd9dZd: fdZ	 d;ddd<d"Zd#d$d=d(Zd>d*Z	d?d@d/Z
dAd0ZdBd2ZdCdDd6Z xZS )EServerCursorpsycopg NF)
scrollablewithhold
connectionConnection[Row]namestrr   bool | Noner   boolc                   d S Nr   )selfr   r   r   r   s        f/var/www/html/Pagina-Ingenieria-Requisitos/venv/lib/python3.11/site-packages/psycopg/_server_cursor.py__init__zServerCursor.__init__   s	     s    Connection[Any]row_factoryRowFactory[Row]c                   d S r    r   r!   r   r   r&   r   r   s         r"   r#   zServerCursor.__init__(   s	     sr$   )r&   r   r   RowFactory[Row] | Nonec               p    t          j        | ||p|j                   t          j        | |||           d S )N)r&   )r   r#   r&   r   r)   s         r"   r#   zServerCursor.__init__3   sK     	*+*O9O	
 	
 	
 	
 	"4z8DDDDDr$   returnNonec                ,   | j         j        5  | j        r	 ddd           dS | j         j        s,| j                             |                                            t                                                       ddd           dS # 1 swxY w Y   dS )zI
        Close the current cursor and free associated resources.
        N)_connlockclosedwait
_close_gensuperclose)r!   	__class__s    r"   r5   zServerCursor.closeA   s     Z_ 	 	{ 	 	 	 	 	 	 	 	 :$ 3
 1 1222GGMMOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   	B	AB		BB)binaryqueryr   paramsParams | Noner7   kwargsr   r   c                  |r%t          dt          |          d                    | j        j        rt	          j        d          	 | j        j        5  | j                            | 	                    |||                     ddd           n# 1 swxY w Y   n,# t          j
        $ r}|                    d          d}~ww xY w| S )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/   r0   r2   _declare_gen_NO_TRACEBACKwith_traceback)r!   r8   r9   r7   r;   exs         r"   executezServerCursor.executeL   s+     	IGd6ll1oGGHHH<' 	%D  	* J J
 1 1% H HIIIJ J J J J J J J J J J J J J J 	* 	* 	*##D)))	* s<   	B 0BB BB BB C,CCT)	returning
params_seqIterable[Params]rH   c               *    t          j        d          )z/Method not implemented for server-side cursors.z0executemany not supported on server-side cursors)rA   rB   )r!   r8   rI   rH   s       r"   executemanyzServerCursor.executemanyf   s     !"TUUUr$   
Row | Nonec                    | j         j        5  | j                             |                     d                    }d d d            n# 1 swxY w Y   |r| xj        dz  c_        |d         S d S )Nr	   r   )r/   r0   r2   
_fetch_gen_posr!   recss     r"   fetchonezServerCursor.fetchonel   s    Z_ 	7 	7:??4??1#5#566D	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	IINII7N4   .AAAr   sizeint	list[Row]c                    |s| j         }| j        j        5  | j                            |                     |                    }d d d            n# 1 swxY w Y   | xj        t          |          z  c_        |S r    )	arraysizer/   r0   r2   rO   rP   len)r!   rU   rR   s      r"   	fetchmanyzServerCursor.fetchmanyu   s     	">DZ_ 	: 	::??4??4#8#899D	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:		SYY		s   .AAAc                    | j         j        5  | j                             |                     d                     }d d d            n# 1 swxY w Y   | xj        t          |          z  c_        |S r    )r/   r0   r2   rO   rP   rZ   rQ   s     r"   fetchallzServerCursor.fetchall}   s    Z_ 	: 	::??4??4#8#899D	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:		SYY		rT   Iterator[Row]c              #    K   	 | j         j        5  | j                             |                     | j                            }d d d            n# 1 swxY w Y   |D ]}| xj        dz  c_        |V  t          |          | j        k     rd S )NTr	   )r/   r0   r2   rO   itersizerP   rZ   )r!   rR   recs      r"   __iter__zServerCursor.__iter__   s      	 G Gztt}'E'EFFG G G G G G G G G G G G G G G  		Q						4yy4=((	s   3AAArelativevaluemodec                    | j         j        5  | j                             |                     ||                     d d d            n# 1 swxY w Y   |dk    r| xj        |z  c_        d S || _        d S )Nrc   )r/   r0   r2   _scroll_genrP   )r!   rd   re   s      r"   scrollzServerCursor.scroll   s    Z_ 	; 	;JOOD,,UD99:::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; :IIIIIIDIIIs   /AAA)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-   r    )
r8   r   r9   r:   r7   r   r;   r   r,   r   )r8   r   rI   rJ   rH   r   r,   r-   )r,   rM   )r   )rU   rV   r,   rW   )r,   rW   )r,   r^   )rc   )rd   rV   re   r   r,   r-   )__name__
__module____qualname__	__slots__r   r#   r5   rG   rL   rS   r[   r]   rb   rh   __classcell__)r6   s   @r"   r   r      s       JI #'     X  #'     X /3"&E E E E E E	 	 	 	 	 	 !%
 #     6 PTV V V V V V                     r$   r   r%   N)__doc__
__future__r   typingr   r   r   collections.abcr   r    r
   rA   abcr   r   rowsr   r   cursorr   _compatr   _server_cursor_baser   r   r   r   r   r$   r"   <module>rx      s;    # " " " " " / / / / / / / / / / . . . . . . . .               ! ! ! ! ! ! ! !             2 2 2 2 2 2 '&&&&&&z z z z z$%6%;<fSk z z z z zr$   