ó
    Ñ]j�  ã                  óÔ   • S SK Jr  S SKrS SKrS SKJr  S SKJr  \R                  (       a  SSKJr  SSK	J
r
  SSK	Jr   " S	 S
\R                  5      r " S S\5      r " S S\5      rg)é    )ÚannotationsN)ÚAny)ÚClassVaré   )Ú
Connection)ÚDBAPIConnection)ÚDialectc                  ó  • \ rS rSr% SrSrSrS\S'   \R                        SS j5       r
\R                          SS j5       r          SS	 jr\R                        SS
 j5       r        SS jrSrg)ÚConnectionCharacteristicé   aÃ  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]Útransactionalc                ó   • g)zFReset the characteristic on the DBAPI connection to its default
value.Nr   ©ÚselfÚdialectÚ
dbapi_conns      Ú^/home/mande/repo/quber/.venv/lib/python3.13/site-packages/sqlalchemy/engine/characteristics.pyÚreset_characteristicÚ-ConnectionCharacteristic.reset_characteristic,   ó   � ó    c                ó   • g)z<set characteristic on the DBAPI connection to a given value.Nr   ©r   r   r   Úvalues       r   Úset_characteristicÚ+ConnectionCharacteristic.set_characteristic3   r   r   c                ó(   • U R                  XU5        g)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   Úconnr   r   s        r   Úset_connection_characteristicÚ6ConnectionCharacteristic.set_connection_characteristic9   s   € ð 	×Ñ °UÕ;r   c                ó   • g)zHGiven a DBAPI connection, get the current value of the
characteristic.

Nr   r   s      r   Úget_characteristicÚ+ConnectionCharacteristic.get_characteristicI   r   r   c                ó$   • U R                  X5      $ )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_characteristicÚ6ConnectionCharacteristic.get_connection_characteristicR   s   € ð ×&Ñ& wÓ;Ð;r   N©r   r	   r   r   ÚreturnÚNone©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__Ú__firstlineno__Ú__doc__Ú	__slots__r   Ú__annotations__ÚabcÚabstractmethodr   r   r"   r%   r)   Ú__static_attributes__r   r   r   r   r      s  ‡ ñð& €Ià$)€M�>Ó)à×ÑðØðØ,;ðà	óó ðð 	×ÑðKØðKØ,;ðKØDGðKà	óKó ðKð
<àð<ð ð<ð $ð	<ð
 ð<ð 
ô<ð  	×ÑðØðØ,;ðà	óó ðð
<Øð
<Ø&0ð
<Ø>Mð
<à	÷
<r   r   c                  ón   • \ rS rSr% SrSrS\S'         SS jr        SS jr      SS jr	S	r
g
)ÚIsolationLevelCharacteristicé_   z0Manage the isolation level on a DBAPI connectionTr   r   c                ó&   • UR                  U5        g ©N)Úreset_isolation_levelr   s      r   r   Ú1IsolationLevelCharacteristic.reset_characteristicd   s   € ð 	×%Ñ% jÕ1r   c                ó&   • UR                  X#5        g r@   )Ú_assert_and_set_isolation_levelr   s       r   r   Ú/IsolationLevelCharacteristic.set_characteristici   s   € ð 	×/Ñ/°
ÕBr   c                ó$   • UR                  U5      $ r@   )Úget_isolation_levelr   s      r   r%   Ú/IsolationLevelCharacteristic.get_characteristicn   s   € ð ×*Ñ*¨:Ó6Ð6r   r   Nr+   r.   r0   )r2   r3   r4   r5   r6   r   r8   r   r   r%   r;   r   r   r   r=   r=   _   ss   ‡ Ù:à$(€M�>Ó(ð2Øð2Ø,;ð2à	ô2ð
CØðCØ,;ðCØDGðCà	ôCð
7Øð7Ø,;ð7à	÷7r   r=   c                  ó¦   • \ rS rSr% SrSrS\S'         SS jr        SS jr          SS jr	      SS	 jr
        SS
 jrSrg)ÚLoggingTokenCharacteristicét   z_Manage the 'logging_token' option of a :class:`_engine.Connection`.

.. versionadded:: 2.0.30

Fr   r   c                ó   • g r@   r   r   s      r   r   Ú/LoggingTokenCharacteristic.reset_characteristic}   s   € ð 	r   c                ó   • [        5       er@   ©ÚNotImplementedErrorr   s       r   r   Ú-LoggingTokenCharacteristic.set_characteristic‚   ó   € ô "Ó#Ð#r   c                ó0   ^• T(       a  U4S jUl         g U? g )Nc                ó   >• ST< SU < 3$ )NÚ[z] r   )Úmsgr   s    €r   Ú<lambda>ÚJLoggingTokenCharacteristic.set_connection_characteristic.<locals>.<lambda>�   s
   ø� »uÂcÑ2Jr   )Ú_message_formatterr    s       `r   r"   Ú8LoggingTokenCharacteristic.set_connection_characteristic‡   s   ø€ ö Ü&JˆDÕ#àÑ'r   c                ó   • [        5       er@   rO   r   s      r   r%   Ú-LoggingTokenCharacteristic.get_characteristic“   rR   r   c                ó:   • UR                   R                  SS 5      $ )NÚlogging_token)Ú_execution_optionsÚgetr(   s       r   r)   Ú8LoggingTokenCharacteristic.get_connection_characteristic˜   s   € ð ×&Ñ&×*Ñ*¨?¸DÓAÐAr   r   Nr+   r.   r/   r0   r1   )r2   r3   r4   r5   r6   r   r8   r   r   r"   r%   r)   r;   r   r   r   rJ   rJ   t   sÑ   ‡ ñð %*€M�>Ó)ðØðØ,;ðà	ôð
$Øð$Ø,;ð$ØDGð$à	ô$ð

(àð
(ð ð
(ð $ð	
(ð
 ð
(ð 
ô
(ð$Øð$Ø,;ð$à	ô$ð
BØðBØ&0ðBØ>MðBà	÷Br   rJ   )Ú
__future__r   r9   Útypingr   r   ÚTYPE_CHECKINGÚbaser   Ú
interfacesr   r	   ÚABCr   r=   rJ   r   r   r   Ú<module>rh      sW   ðõ #ã 
Û Ý Ý à	××Ý Ý+Ý#ôH<˜sŸw™wô H<ôV7Ð#;ô 7ô*'BÐ!9õ 'Br   