§
    YŠtj}  ã                  óì   — d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z	 ddl
mZmZmZmZ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j        d¦  «        Z G d„ deee         ¦  «        ZdS )z5
Psycopg null connection pool module (sync version).
é    )ÚannotationsN)Úcast)Ú
Connection)ÚTransactionStatusé   )ÚCTÚConnectFailedCBÚConnectionCBÚConninfoParamÚKwargsParam)ÚAddConnectionÚConnectionPool)ÚPoolTimeoutÚTooManyRequests)ÚConnectionTimeout)ÚEvent)Ú_BaseNullConnectionPoolzpsycopg.poolc                  óž   ‡ — e Zd Z	 d5 eee         e¦  «        dddddddddddddddd	d
œd6ˆ fd(„Zd7d8d+„Zd9d.„Z	d:d1„Z
d;d<d2„Zd=d3„Zd>d4„Zˆ xZS )?ÚNullConnectionPoolÚ Nr   Fç      >@g      ¬@g     À‚@g     Àr@é   )Úconnection_classÚkwargsÚmin_sizeÚmax_sizeÚopenÚ	configureÚcheckÚresetÚnameÚclose_returnsÚtimeoutÚmax_waitingÚmax_lifetimeÚmax_idleÚreconnect_timeoutÚreconnect_failedÚnum_workersÚconninfor   r   útype[CT]r   úKwargsParam | Noner   Úintr   ú
int | Noner   úbool | Noner   úConnectionCB[CT] | Noner   r    r!   ú
str | Noner"   Úboolr#   Úfloatr$   r%   r&   r'   r(   úConnectFailedCB | Noner)   c               ól   •— t          ¦   «                              ||||||	||||
d||||||¬¦  «         d S )NF)r   r   r   r   r    r   r   r   r!   r"   r#   r$   r%   r&   r'   r)   )ÚsuperÚ__init__)Úselfr*   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   Ú	__class__s                      €úT/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/psycopg_pool/null_pool.pyr7   zNullConnectionPool.__init__   sc   ø€ õ0 	‰Œ×ÒØØØ-ØØØØØØØØØØ#Ø%ØØ/Ø#ð# 	ñ 	
ô 	
ð 	
ð 	
ð 	
ó    ÚreturnÚNonec                óH  — |                       ¦   «          | j        5  | j        rJ ‚t          ¦   «         | _        ddd¦  «         n# 1 swxY w Y   t                               d| j        ¦  «         |                      t          | ¦  «        ¦  «         | j         	                    |¦  «        s'|  
                    ¦   «          t          d|› d�¦  «        ‚| j        5  | j        sJ ‚d| _        ddd¦  «         n# 1 swxY w Y   t                               d| j        ¦  «         dS )a9  
        Create a connection for test.

        Calling this function will verify that the connectivity with the
        database works as expected. However the connection will not be stored
        in the pool.

        Close the pool, and raise `PoolTimeout`, if not ready within *timeout*
        sec.
        Nz"waiting for pool %r initializationz%pool initialization incomplete after z seczpool %r is ready to use)Ú_check_open_getconnÚ_lockÚ_pool_full_eventr   ÚloggerÚinfor!   Úrun_taskr   ÚwaitÚcloser   )r8   r#   s     r:   rE   zNullConnectionPool.waitJ   s•  € ð 	× Ò Ñ"Ô"Ð"àŒZð 	,ð 	,ØÔ,Ð,Ð,Ð,Ý$)¡G¤GˆDÔ!ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,õ 	�ŠÐ8¸$¼)ÑDÔDÐDØ�Š•m DÑ)Ô)Ñ*Ô*Ð*ØÔ$×)Ò)¨'Ñ2Ô2ð 	UØ�JŠJ‰LŒLˆLÝÐSÀgÐSÐSÐSÑTÔTÐTàŒZð 	)ð 	)ØÔ(Ð(Ð(Ð(Ø$(ˆDÔ!ð	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)õ 	�ŠÐ-¨t¬yÑ9Ô9Ð9Ð9Ð9s#   œAÁA	ÁA	ÃC7Ã7C;Ã>C;úfloat | Noneú	CT | Nonec                óú  — |�|dk    rt          ¦   «         ‚d }| j        dk    s| j        | j        k     rX	 |                      |¬¦  «        }n/# t          $ r"}t          t          |¦  «        ¦  «        d ‚d }~ww xY w| xj        dz  c_        no| j        rht          | j        ¦  «        | j        k    rK| j	        | j
        xx         dz  cc<   t          d| j        ›d�dt          | j        ¦  «        › d�z   ¦  «        ‚|S )	Ng        r   )r#   r   z	the pool z has alreadyú z requests waiting)r   r   Ú_nconnsÚ_connectr   Ústrr$   ÚlenÚ_waitingÚ_statsÚ_REQUESTS_ERRORSr   r!   )r8   r#   ÚconnÚexs       r:   Ú_get_ready_connectionz(NullConnectionPool._get_ready_connectiong   s$  € ØÐ 7¨c¢> >Ý‘-”-ÐàˆØŒ=˜AÒÐ ¤°´Ò!=Ð!=ð5Ø—}’}¨W�}Ñ5Ô5��øÝ$ð 5ð 5ð 5Ý!¥# b¡'¤'Ñ*Ô*°Ð4øøøøð5øøøàˆLŒL˜AÑˆLŒLˆLØÔð 	¥# d¤mÑ"4Ô"4¸Ô8HÒ"HÐ"HØŒK˜Ô-Ð.Ð.Ô.°!Ñ3Ð.Ð.Ñ.Ý!Ø5˜DœIÐ5Ð5Ð5Ø;•c˜$œ-Ñ(Ô(Ð;Ð;Ð;ñ<ñô ð ð ˆs   µA Á
A8ÁA3Á3A8rR   r   c                ó@  — | j         5  | j        s| j        r	 d d d ¦  «         dS d |_        |j        j        t          j        k    r| j        | j	        xx         dz  cc<   |  
                    |¦  «         | xj        dz  c_        	 d d d ¦  «         dS # 1 swxY w Y   d S )NFr   T)r@   Ú_closedrO   Ú_poolÚpgconnÚtransaction_statusr   ÚUNKNOWNrP   Ú_RETURNS_BADÚ_close_connectionrK   ©r8   rR   s     r:   Ú_maybe_close_connectionz*NullConnectionPool._maybe_close_connection{   s  € ð ŒZð 		ð 		Ø”<ð  D¤Mð Øð		ð 		ð 		ñ 		ô 		ð 		ð 		ð 		ð ˆDŒJØŒ{Ô-Õ1BÔ1JÒJÐJØ”˜DÔ-Ð.Ð.Ô.°!Ñ3Ð.Ð.Ñ.Ø×"Ò" 4Ñ(Ô(Ð(ØˆLŒL˜AÑˆLŒLØð		ð 		ð 		ñ 		ô 		ð 		ð 		ð 		ð 		ð 		ð 		ð 		øøøð 		ð 		ð 		ð 		ð 		ð 		s   ˆB¥A!BÂBÂBc                óØ   — |                       ||¦  «        \  }}t                               d| j        ||¦  «         | j        5  || _        || _        ddd¦  «         dS # 1 swxY w Y   dS )zwChange the size of the pool during runtime.

        Only *max_size* can be changed; *min_size* must remain 0.
        z&resizing %r to min_size=%s max_size=%sN)Ú_check_sizerB   rC   r!   r@   Ú	_min_sizeÚ	_max_size)r8   r   r   s      r:   ÚresizezNullConnectionPool.resizeŠ   s»   € ð
 "×-Ò-¨h¸ÑAÔAÑˆ�(å�ŠØ4°d´iÀÈ8ñ	
ô 	
ð 	
ð ŒZð 	&ð 	&Ø%ˆDŒNØ%ˆDŒNð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð 	&ð 	&s   ÁAÁA#Á&A#c                ó   — dS )z9No-op, as the pool doesn't have connections in its state.N© )r8   s    r:   r   zNullConnectionPool.check˜   s   € àˆr;   c                óV  — d |_         | j        5  | j        r4| j                             ¦   «                              |¦  «        rnM| j        °4|                      |¦  «         | j        r| j                             ¦   «          n| xj        dz  c_        d d d ¦  «         d S # 1 swxY w Y   d S )Nr   )rW   r@   rO   ÚpopleftÚsetr\   rA   rK   r]   s     r:   Ú_add_to_poolzNullConnectionPool._add_to_poolœ   s  € ð ˆŒ
ð ŒZð 	&ð 	&Ø”-ð &ð ”=×(Ò(Ñ*Ô*×.Ò.¨tÑ4Ô4ð Øð	 ”-ð &ð ×&Ò& tÑ,Ô,Ð,ð Ô(ð &ØÔ)×-Ò-Ñ/Ô/Ð/Ð/ð �L”L AÑ%�L”Lð!	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð 	&ð 	&s   �BBÂB"Â%B")r   )$r*   r   r   r+   r   r,   r   r-   r   r.   r   r/   r   r0   r   r0   r    r0   r!   r1   r"   r2   r#   r3   r$   r-   r%   r3   r&   r3   r'   r3   r(   r4   r)   r-   )r   )r#   r3   r<   r=   )r#   rG   r<   rH   )rR   r   r<   r2   )N)r   r-   r   r.   r<   r=   )r<   r=   )rR   r   r<   r=   )Ú__name__Ú
__module__Ú__qualname__r   Útyper   r   r7   rE   rT   r^   rc   r   ri   Ú__classcell__)r9   s   @r:   r   r      s  ø€ € € € € ð #%ð*
ð &* T¨$¨r¬(°JÑ%?Ô%?Ø%)ØØ#Ø Ø-1Ø)-Ø)-ØØ#ØØØ'Ø#Ø#+Ø37Øð)*
ð *
ð *
ð *
ð *
ð *
ð *
ð *
ðX:ð :ð :ð :ð :ð:ð ð ð ð(ð ð ð ð&ð &ð &ð &ð &ðð ð ð ð&ð &ð &ð &ð &ð &ð &ð &r;   r   )Ú__doc__Ú
__future__r   ÚloggingÚtypingr   Úpsycopgr   Ú
psycopg.pqr   Úabcr   r	   r
   r   r   Úpoolr   r   Úerrorsr   r   Ú_compatr   Ú_acompatr   Úbase_null_poolr   Ú	getLoggerrB   r   re   r;   r:   ú<module>r|      sJ  ððð ð #Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø (Ð (Ð (Ð (Ð (Ð (à NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NØ /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø &Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3à	ˆÔ	˜>Ñ	*Ô	*€ðX&ð X&ð X&ð X&ð X&Ð0°.ÀÔ2Dñ X&ô X&ð X&ð X&ð X&r;   