ó
    Ð]jL'  ã                  óÎ  • S r SSKJr  SSKrSSKJr  SSKJr  SSKJ	r	J
r
Jr  SSKJr  SS	KJr  SS
KJrJr  SSKJrJr  SSKJr  SSKJr  \	(       a  SSKJr  SSKJr  \R<                  R>                  r\R@                  RB                  r!\RD                  " \#5      r$ " S S\%5      r& " S S\RN                  5      r( " S S\\   5      r) " S S\)S   5      r* " S S\)S   5      r+g)zC
Transaction context managers returned by Connection.transaction()
é    )ÚannotationsN)ÚEnum)ÚTracebackType)ÚTYPE_CHECKINGÚAnyÚGeneric)ÚIteratoré   )Úerrors)ÚpqÚsql)ÚConnectionTypeÚPQGen)ÚSelf)Úconnection_summary)Ú
Connection)ÚAsyncConnectionc                  ó4   • \ rS rSrSrSrSS	S jjrS
S jrSrg)ÚRollbacké    zò
Exit the current `Transaction` context immediately and rollback any changes
made within this context.

If a transaction context is specified in the constructor, rollback
enclosing transactions contexts up to and including the one specified.
ÚpsycopgNc                ó   • Xl         g ©N©Útransaction)Úselfr   s     ÚP/home/mande/repo/quber/.venv/lib/python3.13/site-packages/psycopg/transaction.pyÚ__init__ÚRollback.__init__+   s   € Ø&Õó    c                óP   • U R                   R                   SU R                  < S3$ )NÚ(Ú))Ú	__class__Ú__qualname__r   ©r   s    r   Ú__repr__ÚRollback.__repr__.   s'   € Ø—.‘.×-Ñ-Ð.¨a°×0@Ñ0@Ñ/CÀ1ÐEÐEr    r   r   )r   z%Transaction | AsyncTransaction | None©ÚreturnÚstr)Ú__name__Ú
__module__r%   Ú__firstlineno__Ú__doc__r   r'   Ú__static_attributes__© r    r   r   r       s   † ñð €Jö'÷Fr    r   c                  ó   • \ rS rSrSrSrg)ÚOutOfOrderTransactionNestingé2   z)Out-of-order transaction nesting detectedr1   N)r,   r-   r%   r.   r/   r0   r1   r    r   r3   r3   2   s   † Ü3r    r3   c                  óÐ   • \ rS rSr " S S\\5      r  S     SS jjr\SS j5       r	SS jr
SS jr        SS	 jrSS
 jrSS jrSS jrSS jrSS jrSS jrSS jrSrg)ÚBaseTransactioné6   c                  ó0   • \ rS rSrSrSrSrSrSrSr	Sr
S	rg
)ÚBaseTransaction.Statusé7   z¡
The current status of a transaction.

Exposed as the `~psycopg.Transaction.status` attribute of
`~psycopg.Transaction` and `~psycopg.AsyncTransaction` objects.
Únot_startedÚactiveÚ	committedÚfailedÚrolled_back_explicitlyÚrolled_back_with_errorr1   N)r,   r-   r%   r.   r/   ÚNOT_STARTEDÚACTIVEÚ	COMMITTEDÚFAILEDÚROLLED_BACK_EXPLICITLYÚROLLED_BACK_WITH_ERRORr0   r1   r    r   ÚStatusr9   7   s)   † ñ	ð $ˆØˆØˆ	ØˆØ!9ÐØ!9Ór    rG   Nc                óÄ   • Xl         U R                   R                  U l        U=(       d    SU l        X0l        U R                  R
                  U l        SU l        SU l        g )NÚ Féÿÿÿÿ)	Ú_connÚpgconnÚ_savepoint_nameÚforce_rollbackrG   rA   ÚstatusÚ_outer_transactionÚ_stack_index)r   Ú
connectionÚsavepoint_namerN   s       r   r   ÚBaseTransaction.__init__F   sN   € ð  Œ
Ø—j‘j×'Ñ'ˆŒØ-×3°ˆÔØ,ÔØ—k‘k×-Ñ-ˆŒØ"'ˆÔØˆÕr    c                ó   • U R                   $ )zF
The name of the savepoint; `!None` if handling the main transaction.
)rM   r&   s    r   rS   ÚBaseTransaction.savepoint_nameT   s   € ð ×#Ñ#Ð#r    c                ó0  • U R                   R                   SU R                   R                   3n[        U R                  5      nU R
                  (       a  U R
                  < S3OSnSU SU SU R                  R                   SU S[        U 5      S S	3$ )
NÚ.Ú rI   Ú<r"   z) z at 0xÚxÚ>)	r$   r-   r%   r   rL   rS   rO   ÚvalueÚid)r   ÚclsÚinfoÚsps       r   r'   ÚBaseTransaction.__repr__]   s‹   € Ø—‘×*Ñ*Ð+¨1¨T¯^©^×-HÑ-HÐ,IÐJˆÜ! $§+¡+Ó.ˆØ,0×,?×,?�×#Ñ#Ñ& aÑ(ÀRˆØ�3�%�q˜˜˜A˜dŸk™k×/Ñ/Ð0°°4°&¸¼rÀ$»xÈ¸lÈ!ÐLÐLr    c              #  ó8  #   • U R                   U R                  R                  :w  a  [        S5      eU R                  R                  U l         U R                  5         U R                  5        H&  nU R                  R                  U5       S h  v•N   M(     g  N	7f)Nz(transaction blocks can be used only once)	rO   rG   rA   Ú	TypeErrorrB   Ú_push_savepointÚ_get_enter_commandsrK   Ú_exec_command)r   Úcommands     r   Ú
_enter_genÚBaseTransaction._enter_genc   sr   é € Ø�;‰;˜$Ÿ+™+×1Ñ1Ó1ÜÐFÓGÐGØ—k‘k×(Ñ(ˆŒà×ÑÔØ×/Ñ/Ö1ˆGØ—z‘z×/Ñ/°Ó8×8Ò8ò 2Ù8ùs   ‚BBÂBÂ
Bc              #  ó  #   • U(       d*  U R                   (       d  U R                  5        S h  v•N   g U R                  U5       S h  v•N $  N N! [         a    e [         a   n[
        R                  SX5         S nAgS nAff = f7f)NFz#error ignored in rollback of %s: %s)rN   Ú_commit_genÚ_rollback_genr3   Ú	ExceptionÚloggerÚwarning)r   Úexc_typeÚexc_valÚexc_tbÚexc2s        r   Ú	_exit_genÚBaseTransaction._exit_genl   sx   é € ö ˜t×2×2Ø×'Ñ'Ó)×)Ð)ØðØ#'×#5Ñ#5°gÓ#>×>Ð?ñ *ñ ?øÜ/ó ð Üó Ü—‘ÐDÀdÔQÜûðüsJ   ‚,B	®A¯B	µA Á	AÁ
A ÁB	ÁA ÁBÁ&BÁ<B	ÂBÂB	c              #  óî   #   • U R                  S5      nU R                  R                  U l        U(       a  UeU R	                  5        H&  nU R
                  R                  U5       S h  v•N   M(     g  N	7f)NÚcommit)Ú_pop_savepointrG   rC   rO   Ú_get_commit_commandsrK   rg   )r   Úexrh   s      r   rl   ÚBaseTransaction._commit_gen…   s\   é € Ø× Ñ  Ó*ˆØ—k‘k×+Ñ+ˆŒÞØˆHà×0Ñ0Ö2ˆGØ—z‘z×/Ñ/°Ó8×8Ò8ò 3Ù8ùs   ‚A'A5Á)A3Á*
A5c              #  ó  #   • [        U[        5      (       a!  [        R                  U R                   S3SS9  U R                  S5      n[        U[        5      (       d  U R                  (       a  U R                  R                  U l	        OU R                  R                  U l	        U(       a  UeU R                  5        H&  nU R                  R                  U5       S h  v•N   M(     U R                  R                  R                  5         U R                  R                  R                  U R                  5       S h  v•N   [        U[        5      (       a!  UR                   (       a  UR                   U L a  gg Nš N=7f)Nz: Explicit rollback from: T)Úexc_infoÚrollbackF)Ú
isinstancer   ro   ÚdebugrK   ry   rN   rG   rE   rO   rF   Ú_get_rollback_commandsrg   Ú	_preparedÚclearÚmaintain_genr   )r   rr   r{   rh   s       r   rm   ÚBaseTransaction._rollback_genŽ   s  é € Ü�gœx×(Ñ(Ü�L‰L˜DŸJ™J˜<Ð'AÐBÈTˆLÑRà× Ñ  Ó,ˆä�gœx×(Ñ(¨D×,?×,?ØŸ+™+×<Ñ<ˆD�KàŸ+™+×<Ñ<ˆDŒKæØˆHà×2Ñ2Ö4ˆGØ—z‘z×/Ñ/°Ó8×8Ò8ñ 5ð 	�
‰
×Ñ×"Ñ"Ô$Ø—:‘:×'Ñ'×4Ñ4°T·Z±ZÓ@×@Ð@ä�gœx×(Ñ(Ø×&×&¨'×*=Ñ*=ÀÒ*EØàñ 9ñ 	Aùs%   ‚CF Ã!E<Ã"AF Å E>Å<F Å>F c              #  óF  #   • U R                   (       a  U R                  R                  5       v •  U R                  (       a_  [        R
                  " S5      R                  [        R                  " U R                  5      5      R                  U R                  5      v •  g g 7f)NzSAVEPOINT {})	rP   rK   Ú_get_tx_start_commandrM   r   ÚSQLÚformatÚ
IdentifierÚas_bytesr&   s    r   rf   Ú#BaseTransaction._get_enter_commands©   sg   é € Ø×"×"Ø—*‘*×2Ñ2Ó4Ò4à××ä—’˜Ó'ß‘œŸš t×';Ñ';Ó<Ó=ß‘˜$Ÿ*™*Ó%óð  ùs   ‚BB!c              #  ór  #   • U R                   (       ao  U R                  (       d^  [        R                  " S5      R	                  [        R
                  " U R                   5      5      R                  U R                  5      v •  U R                  (       a"  U R                  R                  (       a   eSv •  g g 7f)Nz
RELEASE {}s   COMMIT©	rM   rP   r   r‰   rŠ   r‹   rŒ   rK   Ú_num_transactionsr&   s    r   rz   Ú$BaseTransaction._get_commit_commands´   sv   é € Ø××¨×(?×(?ä—’˜Ó%ß‘œŸš t×';Ñ';Ó<Ó=ß‘˜$Ÿ*™*Ó%òð ×"×"Ø—z‘z×3×3Ð3Ð3Ø‹Oð #ùs   ‚B5B7c              #  ó&  #   • U R                   (       aÉ  U R                  (       d¸  [        R                  " S5      R	                  [        R
                  " U R                   5      S9R                  U R                  5      v •  [        R                  " S5      R	                  [        R
                  " U R                   5      S9R                  U R                  5      v •  U R                  (       a"  U R                  R                  (       a   eSv •  g g 7f)NzROLLBACK TO {n})ÚnzRELEASE {n}s   ROLLBACKr�   r&   s    r   r‚   Ú&BaseTransaction._get_rollback_commandsÀ   s¶   é € Ø××¨×(?×(?ä—’Ð)Ó*ß‘œ#Ÿ.š.¨×)=Ñ)=Ó>�Ð?ß‘˜$Ÿ*™*Ó%òô —’˜Ó&ß‘œ#Ÿ.š.¨×)=Ñ)=Ó>�Ð?ß‘˜$Ÿ*™*Ó%òð ×"×"Ø—z‘z×3×3Ð3Ð3ØÓð #ùs   ‚DDc                ó~  • U R                   R                  [        :H  U l        U R                  (       a  U R                  R
                  (       a   eO2U R                  (       d!  SU R                  R
                  S-    3U l        U R                  R
                  U l        U R                  =R
                  S-  sl        g)z
Push the transaction on the connection transactions stack.

Also set the internal state of the object and verify consistency.
Ú_pg3_r
   N)rL   Útransaction_statusÚIDLErP   rK   r�   rM   rQ   r&   s    r   re   ÚBaseTransaction._push_savepointÑ   s�   € ð #'§+¡+×"@Ñ"@ÄDÑ"HˆÔØ×"×"ð —z‘z×3×3Ð3Ð3Ð3ð ×'×'Ø).¨t¯z©z×/KÑ/KÈaÑ/OÐ.PÐ'Q�Ô$à ŸJ™J×8Ñ8ˆÔØ�
‰
×$Ò$¨Ñ)Ö$r    c                ó¬   • U R                   =R                  S-  sl        U R                   R                  U R                  :X  a  g[        SU SU  35      $ )za
Pop the transaction from the connection transactions stack.

Also verify the state consistency.
r
   Nztransaction z at the wrong nesting level: )rK   r�   rQ   r3   )r   Úactions     r   ry   ÚBaseTransaction._pop_savepointä   sR   € ð 	�
‰
×$Ò$¨Ñ)Õ$Ø�:‰:×'Ñ'¨4×+<Ñ+<Ó<Øä+Ø˜6˜(Ð"?À¸vÐFó
ð 	
r    )rK   rP   rM   rQ   rN   rL   rO   ©NF)rR   r   rS   ú
str | NonerN   Úbool)r*   rž   r)   )r*   zPQGen[None])rq   útype[BaseException] | Nonerr   úBaseException | Noners   úTracebackType | Noner*   úPQGen[bool])rr   r¡   r*   r£   )r*   zIterator[bytes])r*   ÚNone)r›   r+   r*   zException | None)r,   r-   r%   r.   r+   r   rG   r   ÚpropertyrS   r'   ri   ru   rl   rm   rf   rz   r‚   re   ry   r0   r1   r    r   r6   r6   6   s¦   † ô:��dô :ð$ &*Ø$ð	à"ðð #ðð õ	ð ó$ó ð$ôMô9ðà,ðð &ðð %ð	ð
 
ôô29ôô6	ô
ôô"*÷&
r    r6   c                  óT   • \ rS rSrSrSr\S	S j5       rS
S jr        SS jrSr	g)ÚTransactionéó   zG
Returned by `Connection.transaction()` to handle a transaction block.
r   c                ó   • U R                   $ )z<The connection the object is managing.

:type: `Connection`
©rK   r&   s    r   rR   ÚTransaction.connectionú   ó   € ð �z‰zÐr    c                óº   • U R                   R                     U R                   R                  U R                  5       5        S S S 5        U $ ! , (       d  f       U $ = fr   ©rK   ÚlockÚwaitri   r&   s    r   Ú	__enter__ÚTransaction.__enter__  s;   € Ø�Z‰Z�_‹_Ø�J‰J�O‰O˜DŸO™OÓ-Ô.÷ àˆ÷ Œ_àˆús   —*AÁ
Ac                ó.  • U R                   R                  [        :X  aK  U R                  R                     U R                  R                  U R                  XU5      5      sS S S 5        $ U R                  R                  U l        g! , (       d  f       g = fr�   ©	rL   rO   ÚOKrK   r¯   r°   ru   rG   rD   ©r   rq   rr   rs   s       r   Ú__exit__ÚTransaction.__exit__  sa   € ð �;‰;×Ñ¤Ó#Ø—‘—“Ø—z‘z—‘ t§~¡~°hÈÓ'PÓQ÷ !‘ð Ÿ+™+×,Ñ,ˆDŒKØ÷	 !•ús   µ+BÂ
B©rO   N)r*   úConnection[Any]©r*   r   ©rq   r    rr   r¡   rs   r¢   r*   rŸ   )
r,   r-   r%   r.   r/   r¥   rR   r±   r·   r0   r1   r    r   r§   r§   ó   óP   † ñð €Jàóó ðôð
à,ðð &ðð %ð	ð
 
÷r    r§   rº   c                  óT   • \ rS rSrSrSr\S	S j5       rS
S jr        SS jrSr	g)ÚAsyncTransactioni  zL
Returned by `AsyncConnection.transaction()` to handle a transaction block.
r   c                ó   • U R                   $ )zAThe connection the object is managing.

:type: `AsyncConnection`
rª   r&   s    r   rR   ÚAsyncTransaction.connection  r¬   r    c              ƒ  ó  #   • U R                   R                   IS h  v•N   U R                   R                  U R                  5       5      I S h  v•N   S S S 5      IS h  v•N   U $  NG N N
! , IS h  v•N  (       d  f       U $ = f7fr   r®   r&   s    r   Ú
__aenter__ÚAsyncTransaction.__aenter__$  sQ   é € Ø—:‘:—?—?“?Ø—*‘*—/‘/ $§/¡/Ó"3Ó4×4Ð4÷ #—?àˆñ #Ù4÷ #—?—?àˆüsV   ‚B�A%žB¡-A+ÁA'ÁA+ÁBÁA)ÁBÁ'A+Á)BÁ+BÁ1A4Á2BÁ>Bc              ƒ  ó„  #   • U R                   R                  [        :X  ac  U R                  R                   IS h  v•N   U R                  R                  U R                  XU5      5      I S h  v•N sS S S 5      IS h  v•N   $ U R                  R                  U l        g Nd N3 N%! , IS h  v•N  (       d  f       g = f7fr�   r´   r¶   s       r   Ú	__aexit__ÚAsyncTransaction.__aexit__)  sv   é € ð �;‰;×Ñ¤Ó#Ø—z‘z——“Ø!ŸZ™ZŸ_™_¨T¯^©^¸HÈvÓ-VÓW×W÷ '—‘ð Ÿ+™+×,Ñ,ˆDŒKØñ	 'ÙW÷ '——�üsV   ‚9C »B ¼C ¿/B&Á.B"Á/B&Á2C Á>B$Á?"C Â"B&Â$C Â&B=Â,B/Â-B=Â9C r¹   N)r*   úAsyncConnection[Any]r»   r¼   )
r,   r-   r%   r.   r/   r¥   rR   rÃ   rÆ   r0   r1   r    r   r¿   r¿     r½   r    r¿   rÈ   ),r/   Ú
__future__r   ÚloggingÚenumr   Útypesr   Útypingr   r   r   Úcollections.abcr	   rI   r   Úer   r   Úabcr   r   Ú_compatr   Úpq.miscr   rR   r   Úconnection_asyncr   ÚTransactionStatusr˜   Ú
ConnStatusrµ   Ú	getLoggerr,   ro   rn   r   ÚProgrammingErrorr3   r6   r§   r¿   r1   r    r   Ú<module>rØ      sÂ   ðñõ #ã Ý Ý ß .Ñ .Ý $å ß ß &Ý Ý 'æÝ&Ý1à	×Ñ× Ñ €à‡]�]×Ñ€à	×	Ò	˜8Ó	$€ôFˆyô Fô$4 1×#5Ñ#5ô 4ôz
�g˜nÑ-ô z
ôz�/Ð"3Ñ4ô ôD�Ð'=Ñ>õ r    