
    (ph\                       % S r SSKJr  SSKrSSK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  SS	K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  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%  SSK&J'r'J(r(J)r)J*r*  SSK+J,r,  SSK-J.r.  SSK/J0r0  SSK1J2r2  SSK3J4r4  \	(       a  SSK5J6r6J7r7  SSK8J9r9  \*" S5      r:\Rv                  Rx                  r<\Rv                  Rz                  r=\R|                  R~                  r?\R|                  R                  r@\R                  R                  rB\R                  R                  rC\R                  R                  rD\R                  R                  rF\R                  R                  rG\2R                  " 5       rI\R                  " S5      rK " S S\5      rLS\LlM        \\R                  /S4   rOS\PS '   \\L/S4   rQS\PS!'    " S" S#\\!   5      rRg)$z
psycopg connection objects
    )annotationsN)CallableGeneric
NamedTupleTYPE_CHECKING)refReferenceType)warn)partial   )pq)errors)postgres)
generators)PQGen	PQGenConnQuery)
ComposableSQL)Xid)Row)AdaptersMap)IsolationLevel)LiteralStringSelf	TypeAliasTypeVar)connection_summary)BasePipeline)PrepareManager)capabilities)ConnectionInfo)PGconnPGresult)BasePool	CursorRowpsycopgc                  <    \ rS rSr% SrS\S'    S\S'    S\S'   Srg	)
Notify;   z8An asynchronous notification received from the database.strchannelpayloadintpid N)__name__
__module____qualname____firstlineno____doc____annotations____static_attributes__r0       K/var/www/html/venv/lib/python3.13/site-packages/psycopg/_connection_base.pyr)   r)   ;   s    BLIL3	HEr8   r)   r   NoticeHandlerNotifyHandlerc                     \ rS rSrSr\R                  r\R                  r\R                  r\R                  r	\R                  r
\R                  r\R                  r\R                  r\R                  r\R                  rS;S jrS<S jrS=S jr\S>S j5       r\S>S j5       r\S>S j5       r\R.                  S?S	 j5       rS?S
 jrS@S jr\SAS j5       r\R.                  SBS j5       rSBS jrSCS jr\SDS j5       r\R.                  SES j5       rSES jrSFS jr\SDS j5       r \ R.                  SES j5       r SES jr!SFS jr"SGS jr#\SHS j5       r$\SIS j5       r%\SJS j5       r&SKS jr'S<S jr(S>S jr)SLS jr*SMS  jr+SMS! jr,\-      SNS" j5       r.SOS# jr/SOS$ jr0\-      SPS% j5       r1\SQS& j5       r2\2R.                  SRS' j5       r2\SQS( j5       r3\3R.                  SRS) j5       r3\4 SSS*S+.     STS, jjj5       r5\64     SUS- jjr7SVS. jr8S<S/ jr9SWS0 jr:SXS1 jr;SWS2 jr<SWS3 jr=SYS4 jr>SZS5 jr?SWS6 jr@      S[S7 jrAS<S8 jrBS9rCg:)\BaseConnectionN   z
Base class for different types of connections.

Share common functionalities such as access to the wrapped PGconn, but
allow different interfaces (sync/async).
c                p   Xl         SU l        S U l        / U l        / U l        SU l        SU l        [        5       U l        S U l	        [        U 5      n[        [        R                  U5      Ul        [        [        R                  U5      Ul        U   S U l        U   S U l        S U l        S U l        SU l        g )NFr   r8   )pgconn_autocommit	_adapters_notice_handlers_notify_handlers_num_transactions_closedr    	_prepared_tpcr   r   r=   _notice_handlernotice_handler_notify_handlernotify_handler	_pipeline_isolation_level
_read_only_deferrable_begin_statement)selfr@   wselfs      r9   __init__BaseConnection.__init__b   s      .25757 "#)7)9-1	D	 '(F(F N '(F(F N 	.2 	7;'+(, #r8   c                    [        U S5      (       d  g U R                  (       a  g [        U S5      (       a  g [        SU  S3[        5        g )Nr@   _poolzconnection zV was deleted while still open. Please use 'with' or '.close()' to close the connection)hasattrclosedr
   ResourceWarningrR   s    r9   __del__BaseConnection.__del__   sN    tX&& ;; 4!!$  G G	
r8   c                    U R                   R                   SU R                   R                   3n[        U R                  5      nSU SU S[        U 5      S S3$ )N.< z at 0xx>)	__class__r2   r3   r   r@   id)rR   clsinfos      r9   __repr__BaseConnection.__repr__   sW    **+1T^^-H-H,IJ!$++.3%qfRXaL22r8   c                <    U R                   R                  [        :H  $ )z$`!True` if the connection is closed.)r@   statusBADr[   s    r9   rY   BaseConnection.closed   s     {{!!S((r8   c                l    U R                   R                  [        :H  =(       a    U R                  (       + $ )z
`!True` if the connection was interrupted.

A broken connection is always `closed`, but wasn't closed in a clean
way, such as using `close()` or a `!with` block.
)r@   rk   rl   rF   r[   s    r9   brokenBaseConnection.broken   s%     {{!!S(=-==r8   c                    U R                   $ )z'The autocommit state of the connection.)rA   r[   s    r9   
autocommitBaseConnection.autocommit   s     r8   c                &    U R                  U5        g N)_set_autocommitrR   values     r9   rr   rs          U#r8   c                    [         eru   NotImplementedErrorrw   s     r9   rv   BaseConnection._set_autocommit       !!r8   c              #  b   #    U R                  S5       S h  vN   [        U5      U l        g  N7f)Nrr   )_check_intrans_genboolrA   rw   s     r9   _set_autocommit_gen"BaseConnection._set_autocommit_gen   s*     **<888; 	9s   /-/c                    U R                   $ )zH
The isolation level of the new transactions started on the connection.
)rN   r[   s    r9   isolation_levelBaseConnection.isolation_level   s    
 $$$r8   c                &    U R                  U5        g ru   )_set_isolation_levelrw   s     r9   r   r      s    !!%(r8   c                    [         eru   r{   rw   s     r9   r   #BaseConnection._set_isolation_level   r~   r8   c              #  z   #    U R                  S5       S h  vN   Ub  [        U5      OS U l        SU l        g  N!7f)Nr   r8   )r   r   rN   rQ   rw   s     r9   _set_isolation_level_gen'BaseConnection._set_isolation_level_gen   s<     **+<===9>9Ju 5PT # 	>   ;9";c                    U R                   $ )zH
The read-only state of the new transactions started on the connection.
)rO   r[   s    r9   	read_onlyBaseConnection.read_only   s    
 r8   c                &    U R                  U5        g ru   )_set_read_onlyrw   s     r9   r   r      s    E"r8   c                    [         eru   r{   rw   s     r9   r   BaseConnection._set_read_only   r~   r8   c              #  z   #    U R                  S5       S h  vN   Ub  [        U5      OS U l        SU l        g  N!7f)Nr   r8   )r   r   rO   rQ   rw   s     r9   _set_read_only_gen!BaseConnection._set_read_only_gen   s8     **;777).):$u+ # 	8r   c                    U R                   $ )zI
The deferrable state of the new transactions started on the connection.
)rP   r[   s    r9   
deferrableBaseConnection.deferrable   s    
 r8   c                &    U R                  U5        g ru   )_set_deferrablerw   s     r9   r   r      ry   r8   c                    [         eru   r{   rw   s     r9   r   BaseConnection._set_deferrable   r~   r8   c              #  z   #    U R                  S5       S h  vN   Ub  [        U5      OS U l        SU l        g  N!7f)Nr   r8   )r   r   rP   rQ   rw   s     r9   _set_deferrable_gen"BaseConnection._set_deferrable_gen   s9     **<888*/*;4; # 	9r   c              #    #    U R                   R                  nU[        :X  aI  U R                  (       a8  U R                  R	                  5        S h  vN   U R                   R                  nU[        :w  ag  U R
                  (       a  [        R                  " SU< S35      e[        R                  " SU< S[        R                  " U5      R                   35      eg  N7f)Nzcan't change z2 now: connection.transaction() context in progressz' now: connection in transaction status )r@   transaction_statusIDLErM   	_sync_genrE   eProgrammingErrorr   TransactionStatusname)rR   	attributerk   s      r9   r   !BaseConnection._check_intrans_gen   s     //T>dnn~~//111[[33FT>%%((#I= 1C C 
 ((#I= 18++F3889;   2s   AC CBC c                ,    [        U R                  5      $ )z>A `ConnectionInfo` attribute to inspect connection properties.)r"   r@   r[   s    r9   rg   BaseConnection.info  s     dkk**r8   c                x    U R                   (       d  [        [        R                  5      U l         U R                   $ ru   )rB   r   r   adaptersr[   s    r9   r   BaseConnection.adapters  s%    ~~():):;DN~~r8   c                    U $ ru   r0   r[   s    r9   
connectionBaseConnection.connection  s	     r8   c                .    U R                   R                  $ )zReturn the file descriptor of the connection.

This function allows to use the connection as file-like object in
functions waiting for readiness, such as the ones defined in the
`selectors` module.
)r@   socketr[   s    r9   filenoBaseConnection.fileno  s     {{!!!r8   c                    U R                  5       (       a+  U R                  R                  5       nUR                  5         gg)z/Cancel the current operation on the connection.N)_should_cancelr@   
get_cancelcancel)rR   cs     r9   r   BaseConnection.cancel"  s1      &&(AHHJ !r8   c                    U R                   (       a  gU R                  (       a*  U R                  S   (       a  [        R                  " S5      eg)zXCheck whether the current command should actually be cancelled when
invoking cancel*().
Fr   z=cancel() cannot be used with a prepared two-phase transactionT)rY   rH   r   r   r[   s    r9   r   BaseConnection._should_cancel(  s:     ;;991$$O  r8   c             #     #    U R                   R                  5       nUR                  5         [        R                  " X!S9 S h  vN   g  N7f)Ntimeout)r@   cancel_connstartr   r   )rR   r   r   s      r9   _cancel_genBaseConnection._cancel_gen7  s7     kk--/$$[BBBs   AAA
Ac                :    U R                   R                  U5        g)z
Register a callable to be invoked when a notice message is received.

:param callback: the callback to call upon message received.
:type callback: Callable[[~psycopg.errors.Diagnostic], None]
N)rC   appendrR   callbacks     r9   add_notice_handler!BaseConnection.add_notice_handler<       	$$X.r8   c                :    U R                   R                  U5        g)z
Unregister a notice message callable previously registered.

:param callback: the callback to remove.
:type callback: Callable[[~psycopg.errors.Diagnostic], None]
N)rC   remover   s     r9   remove_notice_handler$BaseConnection.remove_notice_handlerE  r   r8   c                ,   U " 5       nU(       a  UR                   (       d  g [        R                  " XR                  R                  5      nUR                    H  n U" U5        M     g ! [
         a!  n[        R                  SXE5         S nAM7  S nAff = f)Nz)error processing notice callback '%s': %s)rC   r   
Diagnosticr@   	_encoding	Exceptionlogger	exception)rS   resrR   diagcbexs         r9   rI   BaseConnection._notice_handlerN  sv     w..||C!6!67''BV4 (  V  !LbUUVs   A((
B2BBc                :    U R                   R                  U5        g)z
Register a callable to be invoked whenever a notification is received.

:param callback: the callback to call upon notification received.
:type callback: Callable[[~psycopg.Notify], None]
N)rD   r   r   s     r9   add_notify_handler!BaseConnection.add_notify_handler]  r   r8   c                :    U R                   R                  U5        g)z
Unregister a notification callable previously registered.

:param callback: the callback to remove.
:type callback: Callable[[~psycopg.Notify], None]
N)rD   r   r   s     r9   remove_notify_handler$BaseConnection.remove_notify_handlerf  r   r8   c                8   U " 5       nU(       a  UR                   (       d  g UR                  R                  n[        UR                  R                  U5      UR                  R                  U5      UR                  5      nUR                    H  nU" U5        M     g ru   )rD   r@   r   r)   relnamedecodeextrabe_pid)rS   pgnrR   encnr   s         r9   rK   BaseConnection._notify_handlero  so     w..kk##3;;%%c*CII,<,<S,A3::N''BqE (r8   c                .    U R                   R                  $ )z
Number of times a query is executed before it is prepared.

- If it is set to 0, every query is prepared the first time it is
  executed.
- If it is set to `!None`, prepared statements are disabled on the
  connection.

Default value: 5
rG   prepare_thresholdr[   s    r9   r    BaseConnection.prepare_threshold|  s     ~~///r8   c                $    XR                   l        g ru   r   rw   s     r9   r   r     s    +0(r8   c                ^    U R                   R                  nU[        R                  :w  a  U$ S$ )z
Maximum number of prepared statements on the connection.

`!None` means no max number of prepared statements. The default value
is 100.
N)rG   prepared_maxsysmaxsize)rR   rvs     r9   r   BaseConnection.prepared_max  s)     ^^((3;;&r0D0r8   c                J    Uc  [         R                  nXR                  l        g ru   )r   r   rG   r   rw   s     r9   r   r     s    =KKE&+#r8   g        r   c             #  Z   #    [         R                  " XS9 Sh  vN nU " U5      nU$  N7f)z?Generator to connect to the database and create a new instance.r   N)r   connect)rf   conninfor   r@   conns        r9   _connect_genBaseConnection._connect_gen  s.     
 '..xII6{ Js   +)+c              #  2  #    U R                  5         [        U[        5      (       a&  UR                  U R                  R
                  5      nO&[        U[        5      (       a  UR                  U 5      nU R                  (       ak  [        U R                  R                  USUS9nU R                  R                  R                  U5        U R                  R                  R                  S5        gU[        :X  a  U R                  R                  U5        OU R                  R                  USUS9  [         R"                  " U R                  5       Sh  vN S   nUR$                  [&        :w  a  UR$                  [(        :w  a  UR$                  [*        :X  a(  [,        R.                  " X@R                  R
                  S9e[,        R0                  " S[2        R4                  " UR$                  5      R6                   SUR9                  5       < 35      eU$  N7f)z
Generator to send a command and receive the result to the backend.

Only used to implement internal commands such as "commit", with eventual
arguments bound client-side. The cursor can do more complex stuff.
N)result_formatencodingunexpected result z from command )_check_connection_ok
isinstancer+   encoder@   r   r   as_bytesrM   r   send_query_paramscommand_queuer   result_queueTEXT
send_queryr   executerk   
COMMAND_OK	TUPLES_OKFATAL_ERRORr   error_from_resultInterfaceErrorr   
ExecStatusr   r   )rR   commandr   cmdresults        r9   _exec_commandBaseConnection._exec_command  s     	!!#gs##nnT[[%:%:;G,,&&t,G>>--+	C NN((//4NN''..t4
 D KK""7+KK))'4})U'//<<bA==J&6==I+E}}+))&;;;P;PQQ&&(v}})E)J)J(K$W^^%5$8:   =s   EHHCHc              #  B  #    Ub  [         (       d$  Ub  SU-   OSnU R                  U5       Sh  vN   gU R                  5         U R                  (       ak  [	        U R
                  R                  U5      nU R                  R                  R                  U5        U R                  R                  R                  S5        gU R
                  R                  U5        [        R                  " U R
                  5       Sh  vN S   nUR                  [        :w  a~  UR                  [        :X  a(  [        R                   " X@R
                  R"                  S9e[        R$                  " S[&        R(                  " UR                  5      R*                   S35      eg GNk N7f)a5  
Deallocate one, or all, prepared statement in the session.

``name == None`` stands for DEALLOCATE ALL.

If possible, use protocol-level commands; otherwise use SQL statements.

Note that PgBouncer doesn't support DEALLOCATE name, but it supports
protocol-level Close from 1.21 and DEALLOCATE ALL from 1.22.
Ns   DEALLOCATE s   DEALLOCATE ALLr  r  r  z0 from sending closing prepared statement message)_HAS_SEND_CLOSEr  r  rM   r   r@   send_close_preparedr
  r   r  r   r  rk   r  r  r   r  r   r  r   r  r   )rR   r   stmtr  r  s        r9   _deallocateBaseConnection._deallocate  sB     <,0,<>D(BSD))$///!!#>>//C NN((//4NN''..t4''-'//<<bA==J&}}+))&;;;P;PQQ&&(v}})E)J)J(KFG 	 '# 0  =s#   -FFCF?F BFFc                   U R                   R                  [        :X  a  g U R                   R                  [        :X  a  [        R
                  " S5      e[        R                  " SU R                   R                   35      e)Nzthe connection is closedz7cannot execute operations: the connection is in status )r@   rk   OKrl   r   OperationalErrorr  r[   s    r9   r  #BaseConnection._check_connection_ok  sh    ;;#;;$$$%?@@++,,-/
 	
r8   c              #  ,  #    U R                   (       a  gU R                  R                  [        :w  a  gU R	                  U R                  5       5       Sh  vN   U R                  (       a#  U R                  R                  5        Sh  vN   gg N9 N7f)z.Generator to start a transaction if necessary.N)rA   r@   r   r   r  _get_tx_start_commandrM   r   r[   s    r9   _start_queryBaseConnection._start_query  sn     ;;))T1%%d&@&@&BCCC>>~~//111  	D1s$   ABB2B	B
BBc                "   U R                   (       a  U R                   $ S/nU R                  b_  [        U R                  5      nUR                  S5        UR                  UR                  R                  SS5      R                  5       5        U R                  b$  UR                  U R                  (       a  SOS5        U R                  b$  UR                  U R                  (       a  SOS5        S	R                  U5      U l         U R                   $ )
Ns   BEGINs   ISOLATION LEVEL_ra   s	   READ ONLYs
   READ WRITEs
   DEFERRABLEs   NOT DEFERRABLE    )
rQ   r   r   r   r   replacer  r   r   join)rR   partsvals      r9   r%  $BaseConnection._get_tx_start_command  s      (((
+ !5!56CLL+,LL))#s3::<=>>%LL]K??&LL$//?PQ $		% 0$$$r8   c              #    #    U R                   (       a  [        R                  " S5      eU R                  (       a  [        R                  " S5      eU R                  R
                  [        :X  a  gU R                  S5       Sh  vN   U R                  (       a#  U R                  R                  5        Sh  vN   gg N9 N7f)z-Generator implementing `Connection.commit()`.zExplicit commit() forbidden within a Transaction context. (Transaction will be automatically committed on successful exit from context.)z6commit() cannot be used during a two-phase transactionNs   COMMIT)
rE   r   r   rH   r@   r   r   r  rM   r   r[   s    r9   _commit_genBaseConnection._commit_gen2  s     !!$$4 
 99$$H  ;;))T1%%i000>>~~//111  	1 2s$   BCB>2C7C 8C Cc              #  p  #    U R                   (       a  [        R                  " S5      eU R                  (       a  [        R                  " S5      eU R                  (       a"  U R                  R                  5        Sh  vN   U R                  R                  [        :X  a  gU R                  S5       Sh  vN   U R                  R                  5         U R                  R                  U 5       Sh  vN   U R                  (       a#  U R                  R                  5        Sh  vN   gg N Nx N= N7f)z/Generator implementing `Connection.rollback()`.zExplicit rollback() forbidden within a Transaction context. (Either raise Rollback() or allow an exception to propagate out of the context.)z8rollback() cannot be used during a two-phase transactionNs   ROLLBACK)rE   r   r   rH   rM   r   r@   r   r   r  rG   clearmaintain_genr[   s    r9   _rollback_genBaseConnection._rollback_genF  s     !!$$A 
 99$$J 
 >>~~//111;;))T1%%k222>>..t444>>~~//111  2
 	34 2sH   A=D6?D. 7D67D08<D64D252D6'D4(D60D62D64D6c                P    U R                  5         [        R                  " XU5      $ )a  
Returns a `Xid` to pass to the `!tpc_*()` methods of this connection.

The argument types and constraints are explained in
:ref:`two-phase-commit`.

The values passed to the method will be available on the returned
object as the members `~Xid.format_id`, `~Xid.gtrid`, `~Xid.bqual`.
)
_check_tpcr   
from_parts)rR   	format_idgtridbquals       r9   xidBaseConnection.xida  s     	~~i66r8   c              #    #    U R                  5         [        U[        5      (       d  [        R                  " U5      nU R                  R
                  [        :w  aK  [        R                  " S[        R                  " U R                  R
                  5      R                   35      eU R                  (       a  [        R                  " S5      eUS4U l        U R                  U R                  5       5       S h  vN   g  N7f)Nz8can't start two-phase transaction: connection in status z3can't use two-phase transactions in autocommit modeF)r9  r  r   from_stringr@   r   r   r   r   r   r   r   rA   rH   r  r%  rR   r>  s     r9   _tpc_begin_genBaseConnection._tpc_begin_genn  s     #s##//#&C;;))T1$$(()G)GHMMNP 
 $$E  %L	%%d&@&@&BCCCs   C7D9C?:Dc              #    #    U R                   (       d  [        R                  " S5      eU R                   S   (       a  [        R                  " S5      eU R                   S   nUS4U l         U R                  [	        S5      R                  [        U5      5      5       S h  vN   U R                  (       a#  U R                  R                  5        S h  vN   g g  N9 N7f)Nz='tpc_prepare()' must be called inside a two-phase transactionr   zF'tpc_prepare()' cannot be used during a prepared two-phase transactionr   TzPREPARE TRANSACTION {})	rH   r   r   r  r   formatr+   rM   r   rB  s     r9   _tpc_prepare_genBaseConnection._tpc_prepare_gen  s     yy$$O  99Q<$$X  iil$K	%%c*B&C&J&J3s8&TUUU>>~~//111  	V1s$   BC!C"2CCCCc              #    #    SUR                  5        S3nUc:  U R                  (       d  [        R                  " U S35      eU R                  S   nOUU R                  (       a  [        R                  " U S35      e[	        U[
        5      (       d  [
        R                  " U5      nU R                  (       aI  U R                  S   (       d5  [        U SUR                  5        S35      nS U l        U" 5        S h  vN   g U R                  [        S	5      R                  [        U5      [        U5      5      5       S h  vN   S U l        g  NQ N7f)
Ntpc_z()z? without xid must must be called inside a two-phase transactionr   z= with xid must must be called outside a two-phase transactionr   r)  _genz{} PREPARED {})lowerrH   r   r   r  r   rA  getattrr  r   rF  r+   )rR   actionr>  fnamemeths        r9   _tpc_finish_genBaseConnection._tpc_finish_gen  s'     v||~&b);99((g = =  ))A,Cyy((g 7 7  c3''ooc*99TYYq\41V\\^$4D!9:DDIv))$%,,S[#c(C   DI s%   C;E=E>AEEEEc                    g)z0Raise NotSupportedError if TPC is not supported.Nr0   r[   s    r9   r9  BaseConnection._check_tpc  s     	r8   )rB   rA   rQ   rF   rP   rN   rC   rD   rE   rM   rG   rO   rH   r@   N)r@   r#   )returnNone)rU  r+   )rU  r   )rx   r   rU  rV  )rx   r   rU  PQGen[None])rU  IsolationLevel | None)rx   rX  rU  rV  )rx   rX  rU  rW  )rU  bool | None)rx   rY  rU  rV  )rx   rY  rU  rW  )r   r+   rU  rW  )rU  r"   )rU  r   )rU  zBaseConnection[Row])rU  r.   )r   floatrU  zPQGenConn[None])r   r:   rU  rV  )rS   "ReferenceType[BaseConnection[Row]]r   r$   rU  rV  )r   r;   rU  rV  )rS   r[  r   zpq.PGnotifyrU  rV  )rU  
int | None)rx   r\  rU  rV  ) )r   r+   r   rZ  rU  zPQGenConn[Self])r  r   r   z	pq.FormatrU  zPQGen[PGresult | None])r   zbytes | NonerU  rW  )rU  rW  )rU  bytes)r;  r.   r<  r+   r=  r+   rU  r   )r>  z	Xid | strrU  rW  )rN  r   r>  zXid | str | NonerU  rW  )Dr1   r2   r3   r4   r5   r   WarningErrorr  DatabaseError	DataErrorr"  IntegrityErrorInternalErrorr   NotSupportedErrorrT   r\   rh   propertyrY   ro   rr   setterrv   r   r   r   r   r   r   r   r   r   r   r   rg   r   r   r   r   r   r   r   r   staticmethodrI   r   r   rK   r   r   classmethodr   r  r  r  r  r&  r%  r1  r6  r>  rC  rG  rQ  r9  r7   r0   r8   r9   r=   r=   N   sV    iiGGGE%%NOOMI))%%NOOM))++!$F
&3
 ) ) > >     $ $"' % % ) )"$
   # #"$
     $ $"$
& + +    "C
// V1V8@V	V V// 
1
8C
	
 
 0 0 1 1 1 1 , , 58-2	  :>,,-6,	,\%N	

2%(2(267D(2#*:	>r8   r=   )Sr5   
__future__r   r   loggingtypingr   r   r   r   weakrefr   r	   warningsr
   	functoolsr   r]  r   r   r   r   r   abcr   r   r   sqlr   r   rH   r   rowsr   adaptr   _enumsr   _compatr   r   r   r   pq.miscr   rM   r   
_preparingr    _capabilitiesr!   _connection_infor"   pq.abcr#   r$   psycopg_pool.baser%   r&   Formatr  BINARY
ConnStatusr!  rl   r  r  r  r  r   r   INTRANShas_send_close_preparedr  	getLoggerr   r)   r2   r   r:   r6   r;   r=   r0   r8   r9   <module>r     so   # 
  ? ? &       ( (      " < < ' # & ' ,(* K 		yy~~			]]mm]]%%
MM##	mm''	  



&
&668			9	%
FZ 
F  #Q\\ND$89y 9#VHdN3y 3e	WS\ e	r8   