
    fj1!                         S SK r SSKJr  SSKJr   " S S\ R
                  5      r1 SkrSS	S
SS.r " S S\R                  5      r
g)    N   )connresource)
exceptionsc                   (    \ rS rSrSrSrSrSrSrSr	g)	TransactionState   r   r             N)
__name__
__module____qualname____firstlineno__NEWSTARTED	COMMITTED
ROLLEDBACKFAILED__static_attributes__r       L/var/www/html/GQ-WA/venv/lib/python3.13/site-packages/asyncpg/transaction.pyr   r      s    
CGIJFr   r   >   serializableread_committedrepeatable_readread_uncommittedr   r   r   r   )zread committedzread uncommittedr   zrepeatable readc                      ^  \ rS rSrSrSrU 4S jrS rS r\	R                  S 5       rS rS	 rS
 rS r\	R                  S 5       r\	R                  S 5       rS rSrU =r$ )Transaction$   zRepresents a transaction or savepoint block.

Transactions are created by calling the
:meth:`Connection.transaction() <connection.Connection.transaction>`
function.
)_connection
_isolation	_readonly_deferrable_state_nested_id_managedc                    > [         TU ]  U5        U(       a)  U[        ;  a  [        SR	                  [        U5      5      eX l        X0l        X@l        [        R                  U l
        SU l        S U l        SU l        g )Nz2isolation is expected to be either of {}, got {!r}F)super__init__ISOLATION_LEVELS
ValueErrorformatr!   r"   r#   r   r   r$   r%   r&   r'   )self
connection	isolationreadonly
deferrable	__class__s        r   r*   Transaction.__init__/   sp    $*::!6"2I>@ @ $!%&**r   c                    #    U R                   (       a  [        R                  " S5      eSU l         U R                  5       I S h  vN   g  N7f)Nz6cannot enter context: already in an `async with` blockT)r'   
apg_errorsInterfaceErrorstartr.   s    r   
__aenter__Transaction.__aenter__?   s:     ==++HJ Jjjls   AAA
Ac                   #     U R                  S5         Ub  U R	                  5       I S h  vN   OU R                  5       I S h  vN   SU l        g ! [        R                   a    U[        L a   g e f = f NI N2! SU l        f = f7f)N	__aexit__F)_check_conn_validityr6   r7   GeneratorExit_Transaction__rollback_Transaction__commitr'   )r.   extypeextbs       r   r=   Transaction.__aexit__F   s     	%%k2	"!oo'''mmo%%!DM) (( 	& 	  (%!DMs[   BA A: A6A: A8A: 
BA3/B1A33B6A: 8A: :	BBc                   #    U R                  S5        U R                  [        R                  L a  [        R
                  " S5      eU R                  nUR                  c<  UR                  R                  5       (       a  [        R
                  " S5      eXl        OU R                  (       a  UR                  R                  nUc*  [        U R                  R                  S5      I Sh  vN    nU R                  U:w  a0  [        R
                  " SR                  U R                  U5      5      eSU l        U R                  (       a2  UR                  S5      U l        S	R                  U R                   5      nOS
nU R                  S:X  a  US-  nOAU R                  S:X  a  US-  nO+U R                  S:X  a  US-  nOU R                  S:X  a  US-  nU R"                  (       a  US-  nU R$                  (       a  US-  nUS-  n U R                  R'                  U5      I Sh  vN   [        R                  U l        g GNU N! [(         a    [        R*                  U l        e f = f7f)z)Enter the transaction or savepoint block.r8   z0cannot start; the transaction is already startedNzEcannot use Connection.transaction() in a manually started transactionzSHOW transaction_isolation;zNnested transaction has a different isolation level: current {!r} != outer {!r}T	savepointzSAVEPOINT {};BEGINr   z ISOLATION LEVEL READ COMMITTEDr   z! ISOLATION LEVEL READ UNCOMMITTEDr   z  ISOLATION LEVEL REPEATABLE READr   z ISOLATION LEVEL SERIALIZABLEz
 READ ONLYz DEFERRABLE;)_Transaction__check_state_baser$   r   r   r6   r7   r    	_top_xact	_protocolis_in_transactionr!   ISOLATION_LEVELS_BY_VALUEfetchvalr-   r%   _get_unique_idr&   r"   r#   executeBaseExceptionr   )r.   contop_xact_isolationquerys       r   r8   Transaction.start_   s+     	(;;*222++BD D == }}..00 //56 6 !M %(]]%=%="%-)B"..779; ;*<& ??&88$3355;V OO-?6AB B  DL<<))+6DH#**4884EE"22::$66<<$55;;N288~~%&SLE	3""**5111
 +22DKE;: 2 	*11DK	s=   C'I')H>*DI'I #I$I (I'I !I$$I'c                    U R                   [        R                  L a%  [        R                  " SR                  U5      5      eU R                   [        R                  L a%  [        R                  " SR                  U5      5      eU R                   [        R                  L a%  [        R                  " SR                  U5      5      eg )Nz/cannot {}; the transaction is already committedz1cannot {}; the transaction is already rolled backz,cannot {}; the transaction is in error state)r$   r   r   r6   r7   r-   r   r   r.   opnames     r   __check_state_baseTransaction.__check_state_base   s    ;;*444++AHH  ;;*555++CJJ  ;;*111++>EE  2r   c                     U R                   [        R                  LaT  U R                   [        R                  L a%  [        R
                  " SR                  U5      5      eU R                  U5        g g )Nz-cannot {}; the transaction is not yet started)r$   r   r   r   r6   r7   r-   rJ   rX   s     r   __check_stateTransaction.__check_state   sa    ;;.666{{.222 //CJJ ! ! ##F+ 7r   c                   #    U R                  S5        U R                  R                  U L a  S U R                  l        U R                  (       a  SR	                  U R
                  5      nOSn U R                  R                  U5      I S h  vN   [        R                  U l	        g  N! [         a    [        R                  U l	        e f = f7f)NcommitzRELEASE SAVEPOINT {};zCOMMIT;)_Transaction__check_stater    rK   r%   r-   r&   rQ   r   r   r$   rR   r   r.   rU   s     r   __commitTransaction.__commit   s     8$%%-)-D&<<+22488<EE	5""**5111
 +44DK 2 	*11DK	0   A+C.B) B'B) C'B) )!C

Cc                   #    U R                  S5        U R                  R                  U L a  S U R                  l        U R                  (       a  SR	                  U R
                  5      nOSn U R                  R                  U5      I S h  vN   [        R                  U l	        g  N! [         a    [        R                  U l	        e f = f7f)NrollbackzROLLBACK TO {};z	ROLLBACK;)ra   r    rK   r%   r-   r&   rQ   r   r   r$   rR   r   rb   s     r   
__rollbackTransaction.__rollback   s     :&%%-)-D&<<%,,TXX6EE	6""**5111
 +55DK 2 	*11DK	re   c                    #    U R                   (       a  [        R                  " S5      eU R                  5       I Sh  vN   g N7f)z;Exit the transaction or savepoint block and commit changes.z8cannot manually commit from within an `async with` blockN)r'   r6   r7   rA   r9   s    r   r`   Transaction.commit   s5      ==++JL Lmmo   ;AAAc                    #    U R                   (       a  [        R                  " S5      eU R                  5       I Sh  vN   g N7f)z=Exit the transaction or savepoint block and rollback changes.z:cannot manually rollback from within an `async with` blockN)r'   r6   r7   r@   r9   s    r   rg   Transaction.rollback   s6      ==++LN Noorl   c                 f   / nUR                  SR                  U R                  R                  R	                  5       5      5        U R
                  b  UR                  U R
                  5        U R                  (       a  UR                  S5        U R                  (       a  UR                  S5        U R                  R                  R                  S5      (       a  SnOU R                  R                  nSR                  X R                  R                  SR                  U5      [        U 5      5      $ )Nzstate:{}r1   r2   zasyncpg.asyncpgz<{}.{} {} {:#x}> )appendr-   r$   namelowerr!   r"   r#   r3   r   
startswithr   joinid)r.   attrsmods      r   __repr__Transaction.__repr__   s    Z&&t{{'7'7'='='?@A??&LL)>>LL$LL&>>$$//
;;C..++C!((((#((5/2d8E 	Er   )r#   r&   r!   r'   r%   r"   r$   )r   r   r   r   __doc__	__slots__r*   r:   r=   r   guardedr8   rJ   ra   rA   r@   r`   rg   rz   r   __classcell__)r3   s   @r   r   r   $   s    9I "2 73 73r,5&6&      E Er   r   )enum r   r   r6   Enumr   r+   rN   ConnectionResourcer   r   r   r   <module>r      sT      &tyy   '*"(	 RE,11 REr   