o
    Š)f
  ã                   @  sx   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	 G dd	„ d	ej
ƒZG d
d„ deƒZdS )é    )ÚannotationsN)ÚAny)ÚClassVaré   )ÚDBAPIConnection)ÚDialectc                   @  sR   e Zd ZU dZdZdZded< ejddd„ƒZ	ejddd„ƒZ
ejd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                 C  ó   dS )z@Reset the characteristic on the connection to its default value.Nr	   ©Úselfr   r   r	   r	   ú^/var/www/html/flask-app/venv/lib/python3.12/site-packages/sqlalchemy/engine/characteristics.pyÚreset_characteristic+   ó    z-ConnectionCharacteristic.reset_characteristicÚvaluer   c                 C  r   )z6set characteristic on the connection to a given value.Nr	   ©r   r   r   r   r	   r	   r   Úset_characteristic1   r   z+ConnectionCharacteristic.set_characteristicc                 C  r   )zXGiven a DBAPI connection, get the current value of the
        characteristic.

        Nr	   r   r	   r	   r   Úget_characteristic7   r   z+ConnectionCharacteristic.get_characteristicN©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      s   
 r   c                   @  s8   e Zd ZU dZded< dd
d„Zddd„Zddd„ZdS )ÚIsolationLevelCharacteristicTr
   r   r   r   r   r   r   r   c                 C  s   |  |¡ d S ©N)Úreset_isolation_levelr   r	   r	   r   r   D   s   z1IsolationLevelCharacteristic.reset_characteristicr   r   c                 C  s   |  ||¡ d S r&   )Ú_assert_and_set_isolation_levelr   r	   r	   r   r   I   s   z/IsolationLevelCharacteristic.set_characteristicc                 C  s
   |  |¡S r&   )Úget_isolation_levelr   r	   r	   r   r   N   s   
z/IsolationLevelCharacteristic.get_characteristicNr   r   r   )r   r   r   r   r"   r   r   r   r	   r	   r	   r   r%   A   s
   
 

r%   )Ú
__future__r   r#   Útypingr   r   ÚTYPE_CHECKINGÚ
interfacesr   r   ÚABCr   r%   r	   r	   r	   r   Ú<module>   s   .