ó
    Ð]j?Z  ã                  óŽ  • S r SSKJr  SSKJrJrJrJr  SSKJ	r	J
r
  SSKJr  SSKJrJr  SSKJr  SS	KJr  SS
KJr  SSKJrJrJrJrJr  SSKJrJr  SSKJr  SSK J!r!  SSK"J#r#  SSK$J%r%J&r&  SSK'J(r(  SSK)J*r*J+r+J,r,  SSK-J.r.  \(       a  SSKJ/r/  SSK0J1r1J2r2  \Rf                  Rh                  r4\Rf                  Rj                  r5\Rl                  Rn                  r7\Rl                  Rp                  r8\Rl                  Rr                  r9\Rl                  Rt                  r:\Rl                  Rv                  r;\Rl                  Rx                  r<\Rl                  Rz                  r=\Rl                  R|                  r>\Rl                  R~                  r?\Rl                  R€                  r@\R‚                  R„                  rB " S S\\\4   5      rCg)z
Psycopg BaseCursor object
é    )Úannotations)ÚTYPE_CHECKINGÚAnyÚGenericÚNoReturn)ÚReferenceTypeÚref)Úpartial)ÚIterableÚSequenceé   )Úadapt)Úerrors)Úpq)ÚConnectionTypeÚLoaderÚParamsÚPQGenÚQuery)ÚRowÚRowMaker)ÚColumn)ÚTemplate)Úconnection_summary)ÚPostgresClientQueryÚPostgresQuery)ÚPrepare)ÚexecuteÚfetchÚsend)Úcapabilities)ÚTransformer)ÚPGconnÚPGresultc                  ó&  • \ rS rSr% SR	                  5       rS\S'   S\S'   S\S'   \rS	\S
'   S6S jr	S7S8S jjr
S9S jr\S:S j5       r\S;S j5       r\S<S j5       r\S=S j5       r\S>S j5       r\S?S j5       rS@S jrSASBS jjrSCS jr\SDS j5       rSES jr SASSS.         SFS jjjr        SGS jr        SGS jrSSS.       SHS jjr SA     SIS jjr SASS .         SJS! jjjrSKS" jrSASLS# jjr SA     SMS$ jjr S%SS&.       SNS' jjr! SA     SOS( jjr"SPS) jr#SQS* jr$SASRS+ jjr%SPS, jr&\'        SSS- j5       r(STS. jr)SS .       SUS/ jjr*SVS0 jr+SWS1 jr,SXS2 jr-SYS3 jr.\S9S4 j5       r/S5r0g)ZÚ
BaseCursoré0   zá
        _conn format _adapters arraysize _closed _results pgresult _pos
        _iresult _rowcount _query _tx _last_query _row_factory _make_row
        _pgconn _execmany_returning _statusmessage
        __weakref__
        r"   Ú_txúRowMaker[Row]Ú	_make_rowr#   Ú_pgconnztype[PostgresQuery]Ú
_query_clsc                ó8  • Xl         [        U l        UR                  U l        [
        R                  " UR                  5      U l        SU l	        SU l
        S U l        U R                  5         [        U R                  [        U 5      5      U R                  l        g )Nr   F)Ú_connÚTEXTÚformatÚpgconnr+   r   ÚAdaptersMapÚadaptersÚ	_adaptersÚ	arraysizeÚ_closedÚ_last_queryÚ_resetr
   Ú_loaders_changedr	   Ú_register_loader_callback)ÚselfÚ
connections     ÚQ/home/mande/repo/quber/.venv/lib/python3.13/site-packages/psycopg/_cursor_base.pyÚ__init__ÚBaseCursor.__init__=   st   € ØŒ
ÜˆŒØ!×(Ñ(ˆŒÜ×*Ò*¨:×+>Ñ+>Ó?ˆŒØˆŒØˆŒØ)-ˆÔØ�‰Œô 4;Ø×!Ñ!¤3 t£9ó4
ˆ�‰Õ0ó    c                óˆ   • / U l         S U l        SU l        SU l        SU l        S U l        U   S U l        U(       a  S U l        g g ©Nr   éÿÿÿÿ)Ú_resultsÚpgresultÚ_posÚ_iresultÚ	_rowcountÚ_statusmessageÚ_execmany_returningÚ_query)r;   Úreset_querys     r=   r8   ÚBaseCursor._resetL   sG   € Ø(*ˆŒØ)-ˆŒØˆŒ	ØˆŒØˆŒØ,0ˆÔÙà04ˆÔ ÞØˆD�Kð r@   c           
     ót  • U R                   R                   SU R                   R                   3n[        U R                  5      nU R
                  (       a  SnOHU R                  (       a5  [        R                  " U R                  R                  5      R                  nOSnSU SU SU S[        U 5      S S	3	$ )
NÚ.Úclosedz	no resultÚ<z [z] z at 0xÚxÚ>)Ú	__class__Ú
__module__Ú__qualname__r   r+   r6   rE   r   Ú
ExecStatusÚstatusÚnameÚid)r;   ÚclsÚinforX   s       r=   Ú__repr__ÚBaseCursor.__repr__Y   s“   € Ø—‘×*Ñ*Ð+¨1¨T¯^©^×-HÑ-HÐ,IÐJˆÜ! $§,¡,Ó/ˆØ�<�<Ø‰FØ�]�]Ü—]’] 4§=¡=×#7Ñ#7Ó8×=Ñ=‰Fà ˆFØ�3�%�r˜&˜  D 6¨´°4³¸¨|¸1Ð=Ð=r@   c                ó   • U R                   $ )z$The connection this cursor is using.)r.   ©r;   s    r=   r<   ÚBaseCursor.connectiond   s   € ð �z‰zÐr@   c                ó   • U R                   $ ©N)r4   r`   s    r=   r3   ÚBaseCursor.adaptersi   s   € à�~‰~Ðr@   c                ó   • U R                   $ )z`True` if the cursor is closed.)r6   r`   s    r=   rP   ÚBaseCursor.closedm   s   € ð �|‰|Ðr@   c                ó,  • U R                   nU(       a|  UR                  (       d<  UR                  [        :X  d(  UR                  [        :X  d  UR                  [
        :X  a/  [        UR                  5       Vs/ s H  n[        X5      PM     sn$ gs  snf )zv
A list of `Column` objects describing the current resultset.

`!None` if the current resultset didn't return tuples.
N)rE   ÚnfieldsrX   Ú	TUPLES_OKÚSINGLE_TUPLEÚTUPLES_CHUNKÚranger   )r;   ÚresÚis      r=   ÚdescriptionÚBaseCursor.descriptionr   sj   € ð �m‰mˆö
 Ø�K�KØ�z‰zœYÓ&Ø�z‰zœ\Ó)Ø�z‰zœ\Ó)ä-2°3·;±;Ô-?Ó@Ò-?¨”F˜4–OÑ-?Ñ@Ð@àùò As   Á8Bc                ó   • U R                   $ )zS
Number of records affected by the operation that produced
the current result set.
)rH   r`   s    r=   ÚrowcountÚBaseCursor.rowcountˆ   s   € ð �~‰~Ðr@   c                óŒ   • U R                   =(       a    U R                   R                  [        :H  nU(       a  U R                  $ S$ )zcIndex of the next row to fetch in the current result set.

`!None` if there is no result to fetch.
N)rE   rX   ri   rF   )r;   Útupless     r=   Ú	rownumberÚBaseCursor.rownumber�   s2   € ð —‘×D 4§=¡=×#7Ñ#7¼9Ñ#DˆÞ"ˆt�y‰yÐ,¨Ð,r@   c                ó   • g rc   © )r;   Úsizess     r=   ÚsetinputsizesÚBaseCursor.setinputsizes™   ó   € àr@   Nc                ó   • g rc   ry   )r;   ÚsizeÚcolumns      r=   ÚsetoutputsizeÚBaseCursor.setoutputsize�   r}   r@   c                óŽ   • U R                   [        U R                  5      S-
  :  a  U R                  U R                   S-   5        gg)zõ
Move to the result set of the next query executed through `executemany()`
or to the next result set if `execute()` returned more than one.

Return `!True` if a new result is available, which will be the one
methods `!fetch*()` will operate on.
r   TN)rG   ÚlenrD   Ú_select_current_resultr`   s    r=   ÚnextsetÚBaseCursor.nextset¡   s;   € ð �=‰=œ3˜tŸ}™}Ó-°Ñ1Ó1Ø×'Ñ'¨¯©¸Ñ(9Ô:Øàr@   c                ó\   • U R                   (       a  U R                   R                  5       $ S$ )zc
The status tag of the current result set.

`!None` if the cursor doesn't have a result available.
N)rI   Údecoder`   s    r=   ÚstatusmessageÚBaseCursor.statusmessage¯   s&   € ð 04×/B×/Bˆt×"Ñ"×)Ñ)Ó+ÐLÈÐLr@   c                ó   • [         erc   )ÚNotImplementedErrorr`   s    r=   Ú_make_row_makerÚBaseCursor._make_row_maker¸   s   € Ü!Ð!r@   ©ÚprepareÚbinaryc             #  ó¨  #   • U R                  U5       Sh  v•N   U R                  X5      nU R                  XSUS9 Sh  v•N   U R                  R                  (       a,  U R                  R                  R                  5        Sh  v•N   Xl        U R                  R                  R                  U R                  5       Sh  v•N   g N² N‹ NF N7f)z*Generator implementing `Cursor.execute()`.Nr�   )	Ú_start_queryÚ_convert_queryÚ_maybe_prepare_genr.   Ú	_pipelineÚ_communicate_genr7   Ú	_preparedÚmaintain_gen)r;   ÚqueryÚparamsr‘   r’   Úpgqs         r=   Ú_execute_genÚBaseCursor._execute_genÃ   s¦   é € ð ×$Ñ$ UÓ+×+Ð+Ø×!Ñ! %Ó0ˆØ×*Ñ*¨3ÈÐ*ÐO×OÐOØ�:‰:××Ø—z‘z×+Ñ+×<Ñ<Ó>×>Ð>à ÔØ—:‘:×'Ñ'×4Ñ4°T·Z±ZÓ@×@Ñ@ñ 	,áOá>ñ 	AùsF   ‚C—C
˜(CÁ CÁACÂCÂ<CÃCÃCÃCÃCÃCc              #  óf  #   • U R                   R                  nU(       d   eU R                  U5       Sh  v•N   U(       d  SU l        U R                  b   eX0l        SnU He  nU(       a  U R                  X5      nXpl        SnOWR                  U5        U R                  USS9 Sh  v•N   UR                  5        Sh  v•N   Mg     Xl
        U(       a  UR                  SS9 Sh  v•N   U R                   R                  R                  U R                   5       Sh  v•N   g Nð N~ Nh NB N7f)zI
Generator implementing `Cursor.executemany()` with pipelines available.
Nr   TF©r‘   )Úflush)r.   r—   r”   rH   rJ   r•   rK   Údumpr–   r˜   r7   Ú
_fetch_genr™   rš   )r;   r›   Ú
params_seqÚ	returningÚpipelineÚfirstrœ   r�   s           r=   Ú_executemany_gen_pipelineÚ$BaseCursor._executemany_gen_pipelineÕ   s  é € ð —:‘:×'Ñ'ˆÞˆˆxà×$Ñ$ UÓ+×+Ð+ÞØˆDŒNà×'Ñ'Ñ/Ð/Ð/Ø#,Ô àˆÛ ˆFÞØ×)Ñ)¨%Ó8�Ø!”Ø‘à—‘˜Ô à×.Ñ.¨s¸DÐ.ÐA×AÐAØ×0Ñ0Ó2×2Ò2ñ !ð !ÔæØ×*Ñ*°Ð*Ð6×6Ð6à—:‘:×'Ñ'×4Ñ4°T·Z±ZÓ@×@Ñ@ñ1 	,ñ  BÙ2ñ
 7á@ùsX   ‚4D1¶D'·A3D1Â*D)Â+D1ÃD+Ã'D1Ã*D-Ã+6D1Ä!D/Ä"D1Ä)D1Ä+D1Ä-D1Ä/D1c              #  ó´  #   • U R                  U5       Sh  v•N   U(       d  SU l        U R                  b   eX0l        SnU HM  nU(       a  U R                  X5      nX`l        SnOWR                  U5        U R                  USS9 Sh  v•N   MO     Xl        U R                  R                  R                  U R                  5       Sh  v•N   g Nº NH N	7f)zM
Generator implementing `Cursor.executemany()` with pipelines not available.
Nr   TFr¡   )r”   rH   rJ   r•   rK   r£   r–   r7   r.   r™   rš   )r;   r›   r¥   r¦   r¨   rœ   r�   s          r=   Ú_executemany_gen_no_pipelineÚ'BaseCursor._executemany_gen_no_pipelineø   sÉ   é € ð ×$Ñ$ UÓ+×+Ð+ÞØˆDŒNà×'Ñ'Ñ/Ð/Ð/Ø#,Ô àˆÛ ˆFÞØ×)Ñ)¨%Ó8�Ø!”Ø‘à—‘˜Ô à×.Ñ.¨s¸DÐ.ÐA×AÒAñ !ð !ÔØ—:‘:×'Ñ'×4Ñ4°T·Z±ZÓ@×@Ñ@ñ' 	,ñ  Bñ 	Aùs5   ‚C—C˜A3CÂCÂA CÃCÃCÃCÃCc             #  ó–  #   • U R                  X5      u  pEU[        R                  L a  U R                  XS9  O§U[        R                  L a„  U R                  XQ5        U R                  R                  (       dX  [        U R                  5       S h  v•N nU H5  nUR                  [        :X  d  M  [        R                  " XpR                  S9e   U R                  XQUS9  U R                  R                   R#                  XU5      nU R                  R                  (       a:  S n	Ub  X„U4n	U R                  R                  R$                  R'                  X	45        g [        U R                  5       S h  v•N nUb&  U R                  R                   R)                  X„XV5        U R+                  U5        U R-                  U5        g  GN4 NS7f)N©r’   ©Úencoding)Ú_get_preparedr   ÚNOÚ_execute_sendÚSHOULDÚ_send_preparer.   r—   r   r+   rX   ÚFATAL_ERRORÚeÚerror_from_resultÚ	_encodingÚ_send_query_preparedr™   Úmaybe_add_to_cacheÚresult_queueÚappendÚvalidateÚ_check_resultsÚ_set_results)
r;   r�   r‘   r’   ÚpreprY   ÚresultsÚresultÚkeyÚqueueds
             r=   r–   ÚBaseCursor._maybe_prepare_gen  sj  é € ð ×'Ñ'¨Ó5‰
ˆØ”7—:‘:Òà×Ñ˜sÐÒ2ð ”w—~‘~Ò%Ø×"Ñ" 4Ô-Ø—z‘z×+×+Ü)0°·±Ó)>×>�GÛ")˜Ø!Ÿ=™=¬KÕ7Ü"#×"5Ò"5°fÇ~Á~Ñ"VÐVñ #*ð ×%Ñ% d¸Ð%Ñ?ð
 �j‰j×"Ñ"×5Ñ5°cÀÓFˆà�:‰:××ØˆFØ‰Ø TÐ*�Ø�J‰J× Ñ ×-Ñ-×4Ñ4°d°^ÔDØô % T§\¡\Ó2×2ˆà‰?Ø�J‰J× Ñ ×)Ñ)¨#°TÔCà×Ñ˜GÔ$Ø×Ñ˜'Õ"ò5 ?ñ( 3ùs,   ‚BG	ÂGÂG	Â0CG	Å3GÅ4AG	ÇG	c                óL   • U R                   R                  R                  X5      $ rc   )r.   r™   Úget)r;   r�   r‘   s      r=   r²   ÚBaseCursor._get_prepared@  s   € ð �z‰z×#Ñ#×'Ñ'¨Ó5Ð5r@   r¯   c             #  ó�  #   • U R                  U5       Sh  v•N   U R                  X5      nU R                  XSSS9  US:  a  [        S5      eUS:X  a  U R                  R                  5         O/[        R                  " SS9  U R                  R                  U5        Xl	        [        U R                  5       Sh  v•N   g Nª N7f)z2Generator to send the query for `Cursor.stream()`.NT)r’   Úforce_extendedr   zsize must be >= 1)Úcheck)r”   r•   r´   Ú
ValueErrorr+   Úset_single_row_moder!   Úhas_stream_chunkedÚset_chunked_rows_moder7   r    )r;   r›   rœ   r’   r   r�   s         r=   Ú_stream_send_genÚBaseCursor._stream_send_genE  sª   é € ð ×$Ñ$ UÓ+×+Ð+Ø×!Ñ! %Ó0ˆØ×Ñ˜3¸dÐÑCØ�!‹8ÜÐ0Ó1Ð1Ø�Q‹YØ�L‰L×,Ñ,Õ.ä×+Ò+°$Ò7Ø�L‰L×.Ñ.¨tÔ4Ø ÔÜ˜Ÿ™Ó%×%Ñ%ñ 	,ñ 	&ùs"   ‚C—C˜B$CÂ<CÂ=CÃCc              #  óô  #   • [        U R                  5       S h  v•N nUc  g UR                  nU[        :X  d
  U[        :X  a=  X l        U R                  R                  X!S9  U(       a  U R                  5       U l	        U$ U[        :X  d
  U[        :X  aN  U(       a&  [        U R                  5       S h  v•N nU(       a  M&  U[        :w  a  [        R                  " S5      eg U R                  U5      $  NØ NA7f)N)Úset_loadersz1the operation in stream() didn't produce a result)r   r+   rX   rj   rk   rE   r(   Úset_pgresultrŽ   r*   ri   Ú
COMMAND_OKr¸   ÚProgrammingErrorÚ_raise_for_result)r;   r¨   rm   rX   s       r=   Ú_stream_fetchone_genÚBaseCursor._stream_fetchone_gen[  sÒ   é € Ü*/°·±Ó*=×=ˆØ‰;Øà—‘ˆØ”\Ó! V¬|Ó%;ØŒMØ�H‰H×!Ñ! #Ð!Ñ9ÞØ!%×!5Ñ!5Ó!7�”ØˆJà”yÓ  F¬jÓ$8æÜ!& t§|¡|Ó!4×4�÷ �#àœÓ"Ü×(Ò(ØGóð ð ð ×)Ñ)¨#Ó.Ð.ñ1  >ñ 5ùs(   ‚C8›C4œBC8Â4C6Â5C8Ã3C8Ã6C8c              #  óF  #   • U R                   (       a  [        R                  " S5      eU R                  5         U R                  (       a  U R                  ULa"  SU l        [
        R                  " U 5      U l        U R                  R                  5        Sh  v•N   g N7f)z‡Generator to start the processing of a query.

It is implemented as generator because it may send additional queries,
such as `begin`.
úthe cursor is closedN)
rP   r¸   ÚInterfaceErrorr8   r7   r   r"   r(   r.   r”   )r;   r›   s     r=   r”   ÚBaseCursor._start_queryv  so   é € ð �;�;Ü×"Ò"Ð#9Ó:Ð:à�‰ŒØ×× D×$4Ñ$4¸EÒ$AØ#ˆDÔÜ×(Ò(¨Ó.ˆDŒHØ—:‘:×*Ñ*Ó,×,Ó,ùs   ‚BB!ÂBÂB!c              #  óR  #   • U R                   R                  (       a  [        R                  " S5      eU R	                  5        Sh  v•N   U(       d  [        U[        5      (       a2  [        U R                  5      nUR                  X5        UR                  nU R                  U5      nU R                  USS9  [        [        U R                  5       Sh  v•N =n5      S:w  a  [        R                   " S5      eU R#                  US   5        U R%                  U5        g NÛ NL7f)z<Generator implementing sending a command for `Cursor.copy().z$COPY cannot be used in pipeline modeNFr¯   r   z*COPY cannot be mixed with other operationsr   )r.   r—   r¸   ÚNotSupportedErrorr”   Ú
isinstancer   r   r(   Úconvertr›   r•   r´   r„   r   r+   rØ   Ú_check_copy_resultrÁ   )r;   Ú	statementrœ   r�   r›   rÃ   s         r=   Ú_start_copy_genÚBaseCursor._start_copy_gen…  sé   é € ð �:‰:××Ü×%Ò%Ð&LÓMÐMà×$Ñ$Ó&×&Ð&ö ”Z 	¬8×4Ñ4Ü% d§h¡hÓ/ˆCØ�K‰K˜	Ô*ØŸ	™	ˆIà×#Ñ# IÓ.ˆà×Ñ˜5¨ÐÑ/Ü¤g¨d¯l©lÓ&;×;Ð<ˆwÓ=ÀÓBÜ×$Ò$Ð%QÓRÐRà×Ñ ¨¡
Ô+Ø×Ñ˜'Õ"ñ 	'ñ <ùs&   ‚AD'ÁD#ÁBD'ÃD%ÃAD'Ä%D'F)rÌ   r’   c               ó–  • Uc  U R                   nOU(       a  [        O[        nXl        U R                  R
                  (       ax  U R                  R
                  R                  R                  [        U R                  R                  UR                  UR                  UR                  UR                  US95        gU(       d  UR                  (       d
  U[        :X  aF  U R                  R                  UR                  UR                  UR                  UR                  US9  gU R                  R                  UR                  5        g)z„
Implement part of execute() before waiting common to sync and async.

This is not a generator, but a normal non-blocking function.
N)Úparam_formatsÚparam_typesÚresult_format)r0   ÚBINARYr/   rK   r.   r—   Úcommand_queuer¾   r
   r+   Úsend_query_paramsr›   rœ   ÚformatsÚtypesÚ
send_query)r;   r›   rÌ   r’   Úfmts        r=   r´   ÚBaseCursor._execute_send   sà   € ð ‰>Ø—+‘+‰Cæ"•&¬ˆCàŒà�:‰:××ð �J‰J× Ñ ×.Ñ.×5Ñ5ÜØ—L‘L×2Ñ2Ø—K‘KØ—L‘LØ"'§-¡-Ø %§¡Ø"%ñõ	ö ˜uŸ|Ÿ|¨s´f«}Ø�L‰L×*Ñ*Ø—‘Ø—‘Ø#Ÿm™mØ!ŸK™KØ!ð +ò ð �L‰L×#Ñ# E§K¡KÕ0r@   c                ó^   • U R                  U R                  5      nUR                  X5        U$ rc   )r,   r(   rã   )r;   r›   rœ   r�   s       r=   r•   ÚBaseCursor._convert_queryÍ  s'   € ð �o‰o˜dŸh™hÓ'ˆØ�‰�EÔ"Øˆ
r@   c                óê   • U(       d  [         R                  " S5      eU HP  nUR                  =n[        :w  d  M  U[        :w  d  M'  U[
        :w  d  M3  U[        :w  d  M?  U R                  U5        MR     g)z¡
Verify that the results of a query are valid.

Verify that the query returned at least one result and that they all
represent a valid result from the database.
zgot no result from the queryN)r¸   ÚInternalErrorrX   ri   r×   ÚEMPTY_QUERYÚ	COPY_BOTHrÙ   )r;   rÃ   rm   rX   s       r=   rÀ   ÚBaseCursor._check_resultsÔ  sX   € ö Ü—/’/Ð"@ÓAÐAãˆCàŸ:™:Ð%�¬)Õ3ØœjÕ(ØœkÕ)ØœiÕ'à×&Ñ& sÖ+ò r@   c                ó€  • UR                   =n[        :X  a  [        R                  " XR                  S9eU[
        :X  a  [        R                  " S5      eU[        :X  d  U[        :X  d
  U[        :X  a  [        R                  " S5      e[        R                  " S[        R                  " U5      R                   35      e)zF
Raise an appropriate error message for an unexpected database result
r°   úpipeline abortedz8COPY cannot be used with this method; use copy() insteadz%unexpected result status from query: )rX   r·   r¸   r¹   rº   ÚPIPELINE_ABORTEDÚPipelineAbortedÚCOPY_INÚCOPY_OUTrù   rØ   r÷   r   rW   rY   ©r;   rÄ   rX   s      r=   rÙ   ÚBaseCursor._raise_for_resultç  sž   € ð —m‘mÐ#ˆF¬Ó3Ü×%Ò% f·~±~ÑFÐFØÔ'Ó'Ü×#Ò#Ð$6Ó7Ð7Ø”wÓ &¬HÓ"4¸Ä)Ó8KÜ×$Ò$ØJóð ô —/’/Ø:¼2¿=º=ÈÓ;P×;UÑ;UÐ:VÐWóð r@   c                ó’  • Xl         U R                  U   =o0l        U R                  R	                  X2S9  SU l        UR                  [        :X  a  U R                  R                  U l	        O6UR                  [        :w  a"  U R                  R                  nUb  UOSU l	        UR                  U l        U R                  5       U l        g)z<
Select one of the results in the cursor as the active one.
)r0   r   NrC   )rG   rD   rE   r(   rÖ   rF   rX   ri   ÚntuplesrH   r   Úcommand_tuplesÚcommand_statusrI   rŽ   r*   )r;   rn   r0   rm   Únrowss        r=   r…   Ú!BaseCursor._select_current_resultø  s    € ð ŒØ"Ÿm™m¨AÑ.Ð.ˆŒmð
 	�‰×Ñ˜cÐÑ1àˆŒ	à�:‰:œÓ"Ø!Ÿ]™]×2Ñ2ˆD�Nð
 �Z‰Zœ8Ó#Ø—M‘M×0Ñ0ˆEØ&+Ñ&7™U¸RˆDŒNà!×0Ñ0ˆÔØ×-Ñ-Ó/ˆ�r@   c                ó¦  • U R                   c   XR                  S S & U R                  S5        g U R                   (       aF  U R                  (       + nU R                  R                  U5        U(       a  U R                  S5        g g U(       aF  US   R                  U l        U H+  nU =R                  UR                  =(       d    S-  sl        M-     g g rB   )rJ   rD   r…   Úextendr  rI   rH   r  )r;   rÃ   Úfirst_batchrm   s       r=   rÁ   ÚBaseCursor._set_results  s¤   € Ø×#Ñ#Ñ+à&�M‰M™!ÐØ×'Ñ'¨Õ*à×%×%Ø"Ÿm™mÔ+ˆKØ�M‰M× Ñ  Ô)ÞØ×+Ñ+¨AÕ.ð ö Ø&-¨b¡k×&@Ñ&@�Ô#Û"�CØ—N’N c×&8Ñ&8×&=¸AÑ=—Nò #ð r@   c                óú   • U" 5       =n(       d  g[         R                  " U5      Ul        UR                  nUR                  [        UR                  5      :  a"  UR                  UR                  5        XTl        gg)z…Callback called when self.adapters.set_loaders is called.

Allow to change the loaders after the results have been returned already.
N)r   r"   r(   rF   rG   r„   rD   r…   )r[   ÚwselfÚoidÚloaderr;   Úposs         r=   r9   ÚBaseCursor._loaders_changed'  s`   € ñ ›��•Øô ×$Ò$ TÓ*ˆŒØ�i‰iˆØ�=‰=œ3˜tŸ}™}Ó-Ó-Ø×'Ñ'¨¯©Ô6Ø�Ið .r@   c           	     ó¸  • U R                   R                  (       a‘  U R                   R                  R                  R                  [	        U R
                  R                  UUR                  UR                  S95        U R                   R                  R                  R                  S 5        g U R
                  R                  XR                  UR                  S9  g )N)rê   )
r.   r—   rí   r¾   r
   r+   Úsend_preparer›   rð   r½   )r;   rY   r›   s      r=   r¶   ÚBaseCursor._send_prepare9  s’   € Ø�:‰:××Ø�J‰J× Ñ ×.Ñ.×5Ñ5ÜØ—L‘L×-Ñ-ØØ—K‘KØ %§¡ñ	ôð �J‰J× Ñ ×-Ñ-×4Ñ4°TÕ:à�L‰L×%Ñ% d¯K©KÀUÇ[Á[Ð%ÒQr@   c          
     ó¤  • Uc  U R                   nOU(       a  [        O[        nU R                  R                  (       ac  U R                  R                  R
                  R                  [        U R                  R                  UUR                  UR                  US95        g U R                  R                  XR                  UR                  US9  g )N)ré   rë   )r0   rì   r/   r.   r—   rí   r¾   r
   r+   Úsend_query_preparedrœ   rï   )r;   rY   r�   r’   rò   s        r=   r»   ÚBaseCursor._send_query_preparedG  s—   € ð ‰>Ø—+‘+‰Cæ"•&¬ˆCà�:‰:××Ø�J‰J× Ñ ×.Ñ.×5Ñ5ÜØ—L‘L×4Ñ4ØØ—J‘JØ"%§+¡+Ø"%ñõð �L‰L×,Ñ,Ø—j‘j°·±È3ð -ò r@   c                ól  • U R                   (       a  [        R                  " S5      eU R                  =n(       d  [        R                  " S5      eUR
                  =n[        :X  a  U$ U[        :X  a  [        R                  " XR                  S9eU[        :X  a  [        R                  " S5      eUR                  (       a  SUR                  R                  5        S3nO' [        R                  " U5      R                   nSU S3n[        R                  " S	U 35      e! ["         a    U S3n N0f = f)
NrÝ   zno result availabler°   rü   z (command status: Ú)z
 - unknownz (result status: z)the last operation didn't produce records)rP   r¸   rÞ   rE   rØ   rX   ri   r·   r¹   rº   rý   rþ   r  r‰   r   rW   rY   rÎ   )r;   rm   rX   ÚdetailÚstatus_names        r=   Ú_check_result_for_fetchÚ"BaseCursor._check_result_for_fetch^  s  € Ø�;�;Ü×"Ò"Ð#9Ó:Ð:à—}‘}Ð$�Õ$Ü×$Ò$Ð%:Ó;Ð;à—j‘jÐ ˆF¤YÓ.ØˆJØ”{Ó"Ü×%Ò% c·N±NÑCÐCØÔ'Ó'Ü×#Ò#Ð$6Ó7Ð7à×!×!Ø-¨c×.@Ñ.@×.GÑ.GÓ.IÐ-JÈ!ÐL‘ð8Ü"$§-¢-°Ó"7×"<Ñ"<�Kð -¨[¨M¸Ð;�Ü×$Ò$Ø;¸F¸8ÐDóð øô "ó 8Ø%+ H¨JÐ"7’Kð8ús   Ã" D! Ä!D3Ä2D3c                ó  • UR                   nU[        :X  d
  U[        :X  a  gU[        :X  a  [        R
                  " XR                  S9e[        R                  " S[        R                  " U5      R                   35      e)zF
Check that the value returned in a copy() operation is a legit COPY.
Nr°   zZcopy() should be used only with COPY ... TO STDOUT or COPY ... FROM STDIN statements, got )rX   rÿ   r   r·   r¸   r¹   rº   rØ   r   rW   rY   r  s      r=   rä   ÚBaseCursor._check_copy_resultx  so   € ð —‘ˆØ”WÓ ¬(Ó 2ØØ”{Ó"Ü×%Ò% f·~±~ÑFÐFä×$Ò$ð/Ü/1¯}ª}¸VÓ/D×/IÑ/IÐ.JðLóð r@   c                óÔ   • U R                  5       nUS:X  a  U R                  U-   nOUS:X  a  UnO[        SU S35      eSUs=::  a  UR                  :  d  O  [	        S5      eX@l        g )NÚrelativeÚabsolutez
bad mode: z'. It should be 'relative' or 'absolute'r   zposition out of bound)r  rF   rÎ   r  Ú
IndexError)r;   ÚvalueÚmoderm   Únewposs        r=   Ú_scrollÚBaseCursor._scroll‡  sj   € Ø×*Ñ*Ó,ˆØ�:ÓØ—Y‘Y Ñ&‰FØ�ZÓØ‰Fä˜z¨$¨Ð/VÐWÓXÐXØ�FÕ(˜SŸ[™[Õ(ÜÐ4Ó5Ð5Ø�	r@   c                ó0   • U R                  SS9  SU l        g)z3Non-blocking part of closing. Common to sync/async.F)rL   TN)r8   r6   r`   s    r=   Ú_closeÚBaseCursor._close“  s   € ð 	�‰ ˆÑ&Øˆ�r@   c                ó.   • U R                   R                  $ rc   )r+   rº   r`   s    r=   rº   ÚBaseCursor._encodingš  s   € à�|‰|×%Ñ%Ð%r@   )r4   r6   r.   rJ   rG   r7   r*   r+   rF   rK   rD   rH   rI   r(   r5   r0   rE   )r<   r   )T)rL   ÚboolÚreturnÚNone)r0  Ústr)r0  r   )r0  zadapt.AdaptersMap)r0  r/  )r0  zlist[Column] | None)r0  Úint)r0  ú
int | None)rz   zSequence[Any]r0  r1  rc   )r   r   r€   r4  r0  r1  )r0  úbool | None)r0  z
str | None)r0  r)   )
r›   r   rœ   úParams | Noner‘   r5  r’   r5  r0  úPQGen[None])r›   r   r¥   zIterable[Params]r¦   r/  r0  r7  )r�   r   r‘   r5  r’   r5  r0  r7  )r�   r   r‘   r5  r0  ztuple[Prepare, bytes])
r›   r   rœ   r6  r’   r5  r   r3  r0  r7  )r¨   r/  r0  zPQGen[PGresult | None])r›   zQuery | Noner0  r7  )rå   r   rœ   r6  r0  r7  )r›   r   rÌ   r/  r’   r5  r0  r1  )r›   r   rœ   r6  r0  r   )rÃ   zlist[PGresult]r0  r1  )rÄ   r$   r0  r   )rn   r3  r0   zpq.Format | Noner0  r1  )r  z#ReferenceType[BaseCursor[Any, Any]]r  r3  r  ztype[Loader]r0  r1  )rY   Úbytesr›   r   r0  r1  )rY   r8  r�   r   r’   r5  r0  r1  )r0  r$   )rÄ   r$   r0  r1  )r%  r3  r&  r2  r0  r1  )r0  r1  )1Ú__name__rU   rV   Ú__firstlineno__ÚsplitÚ	__slots__Ú__annotations__r   r,   r>   r8   r]   Úpropertyr<   r3   rP   ro   rr   rv   r{   r�   r†   rŠ   rŽ   rž   r©   r¬   r–   r²   rÒ   rÚ   r”   ræ   r´   r•   rÀ   rÙ   r…   rÁ   Úclassmethodr9   r¶   r»   r  rä   r(  r+  rº   Ú__static_attributes__ry   r@   r=   r&   r&   0   sE  ‡ ð÷
 ‰E‹Gð ð 
ÓØÓØƒOØ&3€JÐ#Ó3ô
öô	>ð óó ðð óó ðð óó ðð óó ðð* óó ðð ó-ó ð-ôöôð óMó ðMô"ð !%ðAð
  $Ø"ñAàðAð ðAð
 ðAð ðAð 
öAð$!AØð!AØ(8ð!AØEIð!Aà	ô!AðFAØðAØ(8ðAØEIðAà	ôAð>  $Ø"ñ+#àð+#ð ð	+#ð
 ð+#ð 
õ+#ð\ :>ð6Ø ð6Ø+6ð6à	õ6ð !%ð&ð
 #ñ&àð&ð ð&ð
 ð&ð ð&ð 
ö&ô,/ö6-ð  9=ð#Øð#Ø(5ð#à	õ#ð>  %Ø"ñ+1àð+1ð ð	+1ð
 ð+1ð 
õ+1ð\ 59ðØðØ$1ðà	õô,ô&ö"0ô6>ð( ðØ7ðØ>AðØKWðà	óó ðô"Rð IMñØðØ -ðØ:Eðà	õô.ô4ô
ôð ó&ó ó&r@   r&   N)DÚ__doc__Ú
__future__r   Útypingr   r   r   r   Úweakrefr   r	   Ú	functoolsr
   Úcollections.abcr   r   Ú r   r   r¸   r   Úabcr   r   r   r   r   Úrowsr   r   Ú_columnr   Ú_compatr   Úpq.miscr   Ú_queriesr   r   Ú
_preparingr   Ú
generatorsr   r   r    Ú_capabilitiesr!   r"   Úpq.abcr#   r$   ÚFormatr/   rì   rW   rø   r×   ri   r   rÿ   rù   r·   rj   rk   rý   ÚTransactionStatusÚACTIVEr&   ry   r@   r=   Ú<module>rU     s-  ðñõ #ç 8Ó 8ß &Ý ß .å Ý Ý ß =Õ =ß Ý Ý Ý 'ß 8Ý ß ,Ñ ,Ý 'æÝ ß(à	‡y�y‡~�~€Ø	�‰×	Ñ	€à�m‰m×'Ñ'€Ø�]‰]×%Ñ%€
Ø�M‰M×#Ñ#€	Ø�=‰=×!Ñ!€Ø
�-‰-×
Ñ
€Ø�M‰M×#Ñ#€	Ø�m‰m×'Ñ'€Ø�}‰}×)Ñ)€Ø�}‰}×)Ñ)€Ø—=‘=×1Ñ1Ð à	×	Ñ	×	$Ñ	$€ôl	&�˜¨Ð,Ñ-õ l	&r@   