mirror of
https://gitlab.com/MoonTestUse1/AdministrationItDepartmens.git
synced 2025-08-14 00:25:46 +02:00
Проверка 09.02.2025
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
# engine/characteristics.py
|
||||
# Copyright (C) 2005-2024 the SQLAlchemy authors and contributors
|
||||
# Copyright (C) 2005-2025 the SQLAlchemy authors and contributors
|
||||
# <see AUTHORS file>
|
||||
#
|
||||
# This module is part of SQLAlchemy and is released under
|
||||
@@ -12,6 +12,7 @@ from typing import Any
|
||||
from typing import ClassVar
|
||||
|
||||
if typing.TYPE_CHECKING:
|
||||
from .base import Connection
|
||||
from .interfaces import DBAPIConnection
|
||||
from .interfaces import Dialect
|
||||
|
||||
@@ -44,13 +45,30 @@ class ConnectionCharacteristic(abc.ABC):
|
||||
def reset_characteristic(
|
||||
self, dialect: Dialect, dbapi_conn: DBAPIConnection
|
||||
) -> None:
|
||||
"""Reset the characteristic on the connection to its default value."""
|
||||
"""Reset the characteristic on the DBAPI connection to its default
|
||||
value."""
|
||||
|
||||
@abc.abstractmethod
|
||||
def set_characteristic(
|
||||
self, dialect: Dialect, dbapi_conn: DBAPIConnection, value: Any
|
||||
) -> None:
|
||||
"""set characteristic on the connection to a given value."""
|
||||
"""set characteristic on the DBAPI connection to a given value."""
|
||||
|
||||
def set_connection_characteristic(
|
||||
self,
|
||||
dialect: Dialect,
|
||||
conn: Connection,
|
||||
dbapi_conn: DBAPIConnection,
|
||||
value: Any,
|
||||
) -> None:
|
||||
"""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.
|
||||
|
||||
"""
|
||||
self.set_characteristic(dialect, dbapi_conn, value)
|
||||
|
||||
@abc.abstractmethod
|
||||
def get_characteristic(
|
||||
@@ -61,8 +79,22 @@ class ConnectionCharacteristic(abc.ABC):
|
||||
|
||||
"""
|
||||
|
||||
def get_connection_characteristic(
|
||||
self, dialect: Dialect, conn: Connection, dbapi_conn: DBAPIConnection
|
||||
) -> Any:
|
||||
"""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.
|
||||
|
||||
"""
|
||||
return self.get_characteristic(dialect, dbapi_conn)
|
||||
|
||||
|
||||
class IsolationLevelCharacteristic(ConnectionCharacteristic):
|
||||
"""Manage the isolation level on a DBAPI connection"""
|
||||
|
||||
transactional: ClassVar[bool] = True
|
||||
|
||||
def reset_characteristic(
|
||||
@@ -79,3 +111,45 @@ class IsolationLevelCharacteristic(ConnectionCharacteristic):
|
||||
self, dialect: Dialect, dbapi_conn: DBAPIConnection
|
||||
) -> Any:
|
||||
return dialect.get_isolation_level(dbapi_conn)
|
||||
|
||||
|
||||
class LoggingTokenCharacteristic(ConnectionCharacteristic):
|
||||
"""Manage the 'logging_token' option of a :class:`_engine.Connection`.
|
||||
|
||||
.. versionadded:: 2.0.30
|
||||
|
||||
"""
|
||||
|
||||
transactional: ClassVar[bool] = False
|
||||
|
||||
def reset_characteristic(
|
||||
self, dialect: Dialect, dbapi_conn: DBAPIConnection
|
||||
) -> None:
|
||||
pass
|
||||
|
||||
def set_characteristic(
|
||||
self, dialect: Dialect, dbapi_conn: DBAPIConnection, value: Any
|
||||
) -> None:
|
||||
raise NotImplementedError()
|
||||
|
||||
def set_connection_characteristic(
|
||||
self,
|
||||
dialect: Dialect,
|
||||
conn: Connection,
|
||||
dbapi_conn: DBAPIConnection,
|
||||
value: Any,
|
||||
) -> None:
|
||||
if value:
|
||||
conn._message_formatter = lambda msg: "[%s] %s" % (value, msg)
|
||||
else:
|
||||
del conn._message_formatter
|
||||
|
||||
def get_characteristic(
|
||||
self, dialect: Dialect, dbapi_conn: DBAPIConnection
|
||||
) -> Any:
|
||||
raise NotImplementedError()
|
||||
|
||||
def get_connection_characteristic(
|
||||
self, dialect: Dialect, conn: Connection, dbapi_conn: DBAPIConnection
|
||||
) -> Any:
|
||||
return conn._execution_options.get("logging_token", None)
|
||||
|
Reference in New Issue
Block a user