Sh3ll
OdayForums


Server : LiteSpeed
System : Linux premium84.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
User : claqxcrl ( 523)
PHP Version : 8.1.32
Disable Function : NONE
Directory :  /opt/hc_python/lib64/python3.12/site-packages/sqlalchemy/pool/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //opt/hc_python/lib64/python3.12/site-packages/sqlalchemy/pool/__pycache__/events.cpython-312.pyc
�

���g]3����ddlmZddlZddlmZddlmZddlmZddlmZddlmZdd	lm	Z	dd
lm
Z
ddlmZdd
lm
Z
ddlmZejrddlmZddlmZGd�de
j(e	�Zy)�)�annotationsN)�Any)�Optional)�Type)�Union�)�ConnectionPoolEntry)�Pool)�PoolProxiedConnection)�PoolResetState�)�event)�util)�Engine)�DBAPIConnectionc�~�eZdZdZdZeZejd�e							dd���Z
e							dd��Z						dd�Z						dd	�Z
								dd
�Z						dd�Zej"dddgd
��								dd��Z								dd�Z								dd�Z						dd�Z						dd�Zdd�Zy)�
PoolEventsa�Available events for :class:`_pool.Pool`.

    The methods here define the name of an event as well
    as the names of members that are passed to listener
    functions.

    e.g.::

        from sqlalchemy import event


        def my_on_checkout(dbapi_conn, connection_rec, connection_proxy):
            "handle an on checkout event"


        event.listen(Pool, "checkout", my_on_checkout)

    In addition to accepting the :class:`_pool.Pool` class and
    :class:`_pool.Pool` instances, :class:`_events.PoolEvents` also accepts
    :class:`_engine.Engine` objects and the :class:`_engine.Engine` class as
    targets, which will be resolved to the ``.pool`` attribute of the
    given engine or the :class:`_pool.Pool` class::

        engine = create_engine("postgresql+psycopg2://scott:tiger@localhost/test")

        # will associate with engine.pool
        event.listen(engine, "checkout", my_on_checkout)

    �SomeEngineOrPoolzsqlalchemy.enginec�f�tjs$tjjj
}t
|t�r&t|�rtSt|t�sJ�|St
|�r|jSt
|t�r|St|d�r|j�yy)N�_no_async_engine_events)
�typing�
TYPE_CHECKINGr�	preloaded�enginer�
isinstance�type�
issubclassr
�pool�hasattrr)�cls�target�
identifierrs    �G/opt/hc_python/lib64/python3.12/site-packages/sqlalchemy/pool/events.py�_accept_withzPoolEvents._accept_with=s����#�#��^�^�*�*�1�1�F��f�d�#��&�&�)���!�&�$�/�/�/��
�
���
'��;�;��
���
%��M�
�V�6�
7��*�*�,��c�x�|j}|jd|j�|jdi|��y)N�asyncio�)�dispatch_target�
setdefault�_is_asyncio�base_listen)r �	event_key�kwr!s    r#�_listenzPoolEvents._listenVs6���*�*��
�
�
�i��!3�!3�4��	���#��#r%�dbapi_connection�connection_recordc��y)aCalled at the moment a particular DBAPI connection is first
        created for a given :class:`_pool.Pool`.

        This event allows one to capture the point directly after which
        the DBAPI module-level ``.connect()`` method has been used in order
        to produce a new DBAPI connection.

        :param dbapi_connection: a DBAPI connection.
         The :attr:`.ConnectionPoolEntry.dbapi_connection` attribute.

        :param connection_record: the :class:`.ConnectionPoolEntry` managing
         the DBAPI connection.

        Nr(��selfr0r1s   r#�connectzPoolEvents.connectb��r%c��y)a)Called exactly once for the first time a DBAPI connection is
        checked out from a particular :class:`_pool.Pool`.

        The rationale for :meth:`_events.PoolEvents.first_connect`
        is to determine
        information about a particular series of database connections based
        on the settings used for all connections.  Since a particular
        :class:`_pool.Pool`
        refers to a single "creator" function (which in terms
        of a :class:`_engine.Engine`
        refers to the URL and connection options used),
        it is typically valid to make observations about a single connection
        that can be safely assumed to be valid about all subsequent
        connections, such as the database version, the server and client
        encoding settings, collation settings, and many others.

        :param dbapi_connection: a DBAPI connection.
         The :attr:`.ConnectionPoolEntry.dbapi_connection` attribute.

        :param connection_record: the :class:`.ConnectionPoolEntry` managing
         the DBAPI connection.

        Nr(r3s   r#�
first_connectzPoolEvents.first_connectvr6r%c��y)a�Called when a connection is retrieved from the Pool.

        :param dbapi_connection: a DBAPI connection.
         The :attr:`.ConnectionPoolEntry.dbapi_connection` attribute.

        :param connection_record: the :class:`.ConnectionPoolEntry` managing
         the DBAPI connection.

        :param connection_proxy: the :class:`.PoolProxiedConnection` object
          which will proxy the public interface of the DBAPI connection for the
          lifespan of the checkout.

        If you raise a :class:`~sqlalchemy.exc.DisconnectionError`, the current
        connection will be disposed and a fresh connection retrieved.
        Processing of all checkout listeners will abort and restart
        using the new connection.

        .. seealso:: :meth:`_events.ConnectionEvents.engine_connect`
           - a similar event
           which occurs upon creation of a new :class:`_engine.Connection`.

        Nr()r4r0r1�connection_proxys    r#�checkoutzPoolEvents.checkout�r6r%c��y)a�Called when a connection returns to the pool.

        Note that the connection may be closed, and may be None if the
        connection has been invalidated.  ``checkin`` will not be called
        for detached connections.  (They do not return to the pool.)

        :param dbapi_connection: a DBAPI connection.
         The :attr:`.ConnectionPoolEntry.dbapi_connection` attribute.

        :param connection_record: the :class:`.ConnectionPoolEntry` managing
         the DBAPI connection.

        Nr(r3s   r#�checkinzPoolEvents.checkin�r6r%z2.0c�
�||fS)Nr()r0r1�reset_states   r#�<lambda>zPoolEvents.<lambda>�s����B
r%c��y)a�Called before the "reset" action occurs for a pooled connection.

        This event represents
        when the ``rollback()`` method is called on the DBAPI connection
        before it is returned to the pool or discarded.
        A custom "reset" strategy may be implemented using this event hook,
        which may also be combined with disabling the default "reset"
        behavior using the :paramref:`_pool.Pool.reset_on_return` parameter.

        The primary difference between the :meth:`_events.PoolEvents.reset` and
        :meth:`_events.PoolEvents.checkin` events are that
        :meth:`_events.PoolEvents.reset` is called not just for pooled
        connections that are being returned to the pool, but also for
        connections that were detached using the
        :meth:`_engine.Connection.detach` method as well as asyncio connections
        that are being discarded due to garbage collection taking place on
        connections before the connection was checked in.

        Note that the event **is not** invoked for connections that were
        invalidated using :meth:`_engine.Connection.invalidate`.    These
        events may be intercepted using the :meth:`.PoolEvents.soft_invalidate`
        and :meth:`.PoolEvents.invalidate` event hooks, and all "connection
        close" events may be intercepted using :meth:`.PoolEvents.close`.

        The :meth:`_events.PoolEvents.reset` event is usually followed by the
        :meth:`_events.PoolEvents.checkin` event, except in those
        cases where the connection is discarded immediately after reset.

        :param dbapi_connection: a DBAPI connection.
         The :attr:`.ConnectionPoolEntry.dbapi_connection` attribute.

        :param connection_record: the :class:`.ConnectionPoolEntry` managing
         the DBAPI connection.

        :param reset_state: :class:`.PoolResetState` instance which provides
         information about the circumstances under which the connection
         is being reset.

         .. versionadded:: 2.0

        .. seealso::

            :ref:`pool_reset_on_return`

            :meth:`_events.ConnectionEvents.rollback`

            :meth:`_events.ConnectionEvents.commit`

        Nr()r4r0r1r?s    r#�resetzPoolEvents.reset�r6r%c��y)a!Called when a DBAPI connection is to be "invalidated".

        This event is called any time the
        :meth:`.ConnectionPoolEntry.invalidate` method is invoked, either from
        API usage or via "auto-invalidation", without the ``soft`` flag.

        The event occurs before a final attempt to call ``.close()`` on the
        connection occurs.

        :param dbapi_connection: a DBAPI connection.
         The :attr:`.ConnectionPoolEntry.dbapi_connection` attribute.

        :param connection_record: the :class:`.ConnectionPoolEntry` managing
         the DBAPI connection.

        :param exception: the exception object corresponding to the reason
         for this invalidation, if any.  May be ``None``.

        .. seealso::

            :ref:`pool_connection_invalidation`

        Nr(�r4r0r1�	exceptions    r#�
invalidatezPoolEvents.invalidater6r%c��y)aNCalled when a DBAPI connection is to be "soft invalidated".

        This event is called any time the
        :meth:`.ConnectionPoolEntry.invalidate`
        method is invoked with the ``soft`` flag.

        Soft invalidation refers to when the connection record that tracks
        this connection will force a reconnect after the current connection
        is checked in.   It does not actively close the dbapi_connection
        at the point at which it is called.

        :param dbapi_connection: a DBAPI connection.
         The :attr:`.ConnectionPoolEntry.dbapi_connection` attribute.

        :param connection_record: the :class:`.ConnectionPoolEntry` managing
         the DBAPI connection.

        :param exception: the exception object corresponding to the reason
         for this invalidation, if any.  May be ``None``.

        Nr(rDs    r#�soft_invalidatezPoolEvents.soft_invalidate!r6r%c��y)a�Called when a DBAPI connection is closed.

        The event is emitted before the close occurs.

        The close of a connection can fail; typically this is because
        the connection is already closed.  If the close operation fails,
        the connection is discarded.

        The :meth:`.close` event corresponds to a connection that's still
        associated with the pool. To intercept close events for detached
        connections use :meth:`.close_detached`.

        :param dbapi_connection: a DBAPI connection.
         The :attr:`.ConnectionPoolEntry.dbapi_connection` attribute.

        :param connection_record: the :class:`.ConnectionPoolEntry` managing
         the DBAPI connection.

        Nr(r3s   r#�closezPoolEvents.close=r6r%c��y)a�Called when a DBAPI connection is "detached" from a pool.

        This event is emitted after the detach occurs.  The connection
        is no longer associated with the given connection record.

        :param dbapi_connection: a DBAPI connection.
         The :attr:`.ConnectionPoolEntry.dbapi_connection` attribute.

        :param connection_record: the :class:`.ConnectionPoolEntry` managing
         the DBAPI connection.

        Nr(r3s   r#�detachzPoolEvents.detachVr6r%c��y)a�Called when a detached DBAPI connection is closed.

        The event is emitted before the close occurs.

        The close of a connection can fail; typically this is because
        the connection is already closed.  If the close operation fails,
        the connection is discarded.

        :param dbapi_connection: a DBAPI connection.
         The :attr:`.ConnectionPoolEntry.dbapi_connection` attribute.

        Nr()r4r0s  r#�close_detachedzPoolEvents.close_detachedhr6r%N)r!z-Union[Pool, Type[Pool], Engine, Type[Engine]]r"�str�returnz!Optional[Union[Pool, Type[Pool]]])r-zevent._EventKey[Pool]r.rrP�None)r0rr1r	rPrQ)r0rr1r	r:rrPrQ)r0zOptional[DBAPIConnection]r1r	rPrQ)r0rr1r	r?rrPrQ)r0rr1r	rEzOptional[BaseException]rPrQ)r0rrPrQ)�__name__�
__module__�__qualname__�__doc__�_target_class_docr
�_dispatch_targetr�preload_module�classmethodr$r/r5r8r;r=r�_legacy_signaturerBrFrHrJrLrNr(r%r#rrs
���<+�����T���,�-���=����
+�	��.��.�	$�(�	$��	$�
�		$��	$��)��/��
�	�(�)��/��
�	�:�)��/��0�	�

��:�3��/��
�	�&�U���
�	�0�1�	
��6�)�6�/�6�$�	6�

�6��6�p�)��/��+�	�

��<�)��/��+�	�

��8�)��/��
�	�2�)��/��
�	�$r%r)�
__future__rrrrrr�baser	r
rr�rrrrr�engine.interfacesr�Eventsrr(r%r#�<module>r`sQ��#�
�����%��'� ���	����3�Y����d�#�Yr%

ZeroDay Forums Mini