o
    E6÷ds	  ã                   @  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	   úxC:\Users\jesus\OneDrive\Desktop\erpjis_fastapi\backend\jisbackend\Lib\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_characteristic+   r   z+ConnectionCharacteristic.set_characteristicc                 C  r   )zXGiven a DBAPI connection, get the current value of the
        characteristic.

        Nr	   r   r	   r	   r   Úget_characteristic1   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)Zreset_isolation_levelr   r	   r	   r   r   >   s   z1IsolationLevelCharacteristic.reset_characteristicr   r   c                 C  s   |  ||¡ d S r&   )Z_assert_and_set_isolation_levelr   r	   r	   r   r   C   s   z/IsolationLevelCharacteristic.set_characteristicc                 C  s
   |  |¡S r&   )Zget_isolation_levelr   r	   r	   r   r   H   s   
z/IsolationLevelCharacteristic.get_characteristicNr   r   r   )r   r   r   r   r"   r   r   r   r	   r	   r	   r   r%   ;   s
   
 

r%   )Ú
__future__r   r#   Útypingr   r   ÚTYPE_CHECKINGZ
interfacesr   r   ÚABCr   r%   r	   r	   r	   r   Ú<module>   s    .