§
    eŠtj�  ã                  óÊ   — d dl mZ d dlZd dlZd dlmZ d dlmZ ej        rddlmZ ddl	m
Z
 ddl	mZ  G d	„ d
ej        ¦  «        Z G d„ de¦  «        Z G d„ de¦  «        ZdS )é    )ÚannotationsN)ÚAny)ÚClassVaré   )Ú
Connection)ÚDBAPIConnection)ÚDialectc                  óœ   — e Zd ZU dZdZdZded<   ej        dd„¦   «         Z	ej        dd„¦   «         Z
dd„Zej        dd„¦   «         Zdd„ZdS )ÚConnectionCharacteristica÷  An abstract base for an object that can set, get and reset a
    per-connection characteristic, typically one that gets reset when the
    connection is returned to the connection pool.

    transaction isolation is the canonical example, and the
    ``IsolationLevelCharacteristic`` implementation provides this for the
    ``DefaultDialect``.

    The ``ConnectionCharacteristic`` class should call upon the ``Dialect`` for
    the implementation of each method.   The object exists strictly to serve as
    a dialect visitor that can be placed into the
    ``DefaultDialect.connection_characteristics`` dictionary where it will take
    effect for calls to :meth:`_engine.Connection.execution_options` and
    related APIs.

    .. versionadded:: 1.4

    © FúClassVar[bool]ÚtransactionalÚdialectr	   Ú
dbapi_connr   ÚreturnÚNonec                ó   — dS )zNReset the characteristic on the DBAPI connection to its default
        value.Nr   ©Úselfr   r   s      ú_/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sqlalchemy/engine/characteristics.pyÚreset_characteristicz-ConnectionCharacteristic.reset_characteristic,   ó   € € € ó    Úvaluer   c                ó   — dS )z<set characteristic on the DBAPI connection to a given value.Nr   ©r   r   r   r   s       r   Úset_characteristicz+ConnectionCharacteristic.set_characteristic3   r   r   Úconnr   c                ó4   — |                       |||¦  «         dS )zÜset characteristic on the :class:`_engine.Connection` to a given
        value.

        .. versionadded:: 2.0.30 - added to support elements that are local
           to the :class:`_engine.Connection` itself.

        N)r   ©r   r   r   r   r   s        r   Úset_connection_characteristicz6ConnectionCharacteristic.set_connection_characteristic9   s"   € ð 	×Ò ¨°UÑ;Ô;Ð;Ð;Ð;r   c                ó   — dS )zXGiven a DBAPI connection, get the current value of the
        characteristic.

        Nr   r   s      r   Úget_characteristicz+ConnectionCharacteristic.get_characteristicI   r   r   c                ó.   — |                       ||¦  «        S )zæGiven a :class:`_engine.Connection`, get the current value of the
        characteristic.

        .. versionadded:: 2.0.30 - added to support elements that are local
           to the :class:`_engine.Connection` itself.

        )r#   ©r   r   r   r   s       r   Úget_connection_characteristicz6ConnectionCharacteristic.get_connection_characteristicR   s   € ð ×&Ò& w°
Ñ;Ô;Ð;r   N©r   r	   r   r   r   r   ©r   r	   r   r   r   r   r   r   ©
r   r	   r   r   r   r   r   r   r   r   ©r   r	   r   r   r   r   ©r   r	   r   r   r   r   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r   Ú__annotations__ÚabcÚabstractmethodr   r   r!   r#   r&   r   r   r   r   r      sÎ   € € € € € € ðð ð& €Ià$)€MÐ)Ð)Ð)Ñ)àÔðð ð ñ Ôðð 	ÔðKð Kð Kñ ÔðKð
<ð <ð <ð <ð  	Ôðð ð ñ Ôðð
<ð 
<ð 
<ð 
<ð 
<ð 
<r   r   c                  ó:   — e Zd ZU dZdZded<   dd„Zdd„Zdd„ZdS )ÚIsolationLevelCharacteristicz0Manage the isolation level on a DBAPI connectionTr   r   r   r	   r   r   r   r   c                ó0   — |                      |¦  «         d S ©N)Úreset_isolation_levelr   s      r   r   z1IsolationLevelCharacteristic.reset_characteristicd   s   € ð 	×%Ò% jÑ1Ô1Ð1Ð1Ð1r   r   r   c                ó2   — |                      ||¦  «         d S r7   )Ú_assert_and_set_isolation_levelr   s       r   r   z/IsolationLevelCharacteristic.set_characteristici   s    € ð 	×/Ò/°
¸EÑBÔBÐBÐBÐBr   c                ó,   — |                      |¦  «        S r7   )Úget_isolation_levelr   s      r   r#   z/IsolationLevelCharacteristic.get_characteristicn   s   € ð ×*Ò*¨:Ñ6Ô6Ð6r   Nr'   r(   r*   )	r,   r-   r.   r/   r   r1   r   r   r#   r   r   r   r5   r5   _   sm   € € € € € € Ø:Ð:à$(€MÐ(Ð(Ð(Ñ(ð2ð 2ð 2ð 2ð
Cð Cð Cð Cð
7ð 7ð 7ð 7ð 7ð 7r   r5   c                  óJ   — e Zd ZU dZdZded<   dd„Zdd„Zdd„Zdd„Z	dd„Z
dS )ÚLoggingTokenCharacteristiczgManage the 'logging_token' option of a :class:`_engine.Connection`.

    .. versionadded:: 2.0.30

    Fr   r   r   r	   r   r   r   r   c                ó   — d S r7   r   r   s      r   r   z/LoggingTokenCharacteristic.reset_characteristic}   s	   € ð 	ˆr   r   r   c                ó   — t          ¦   «         ‚r7   ©ÚNotImplementedErrorr   s       r   r   z-LoggingTokenCharacteristic.set_characteristic‚   ó   € õ "Ñ#Ô#Ð#r   r   r   c                ó(   ‡— ‰rˆfd„|_         d S |` d S )Nc                ó   •— d‰›d| ›�S )Nú[z] r   )Úmsgr   s    €r   ú<lambda>zJLoggingTokenCharacteristic.set_connection_characteristic.<locals>.<lambda>�   s   ø€ € ¸u¸u¸uÀcÀcÐ2J€ r   )Ú_message_formatterr    s       `r   r!   z8LoggingTokenCharacteristic.set_connection_characteristic‡   s0   ø€ ð ð 	(Ø&JÐ&JÐ&JÐ&JˆDÔ#Ð#Ð#àÐ'Ð'Ð'r   c                ó   — t          ¦   «         ‚r7   rA   r   s      r   r#   z-LoggingTokenCharacteristic.get_characteristic“   rC   r   c                ó8   — |j                              dd ¦  «        S )NÚlogging_token)Ú_execution_optionsÚgetr%   s       r   r&   z8LoggingTokenCharacteristic.get_connection_characteristic˜   s   € ð Ô&×*Ò*¨?¸DÑAÔAÐAr   Nr'   r(   r)   r*   r+   )r,   r-   r.   r/   r   r1   r   r   r!   r#   r&   r   r   r   r>   r>   t   s�   € € € € € € ðð ð %*€MÐ)Ð)Ð)Ñ)ðð ð ð ð
$ð $ð $ð $ð

(ð 
(ð 
(ð 
(ð$ð $ð $ð $ð
Bð Bð Bð Bð Bð Br   r>   )Ú
__future__r   r2   Útypingr   r   ÚTYPE_CHECKINGÚbaser   Ú
interfacesr   r	   ÚABCr   r5   r>   r   r   r   ú<module>rU      s/  ðð #Ð "Ð "Ð "Ð "Ð "à 
€
€
€
Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à	Ôð $Ø Ð Ð Ð Ð Ð Ø+Ð+Ð+Ð+Ð+Ð+Ø#Ð#Ð#Ð#Ð#Ð#ðH<ð H<ð H<ð H<ð H<˜sœwñ H<ô H<ð H<ðV7ð 7ð 7ð 7ð 7Ð#;ñ 7ô 7ð 7ð*'Bð 'Bð 'Bð 'Bð 'BÐ!9ñ 'Bô 'Bð 'Bð 'Bð 'Br   