diff options
| author | robot-piglet <[email protected]> | 2024-10-13 16:50:16 +0300 |
|---|---|---|
| committer | robot-piglet <[email protected]> | 2024-10-13 17:05:39 +0300 |
| commit | 90e8f69f92f72af0118e4b09f4853493dde2677c (patch) | |
| tree | f9437968e3d19a48adeaaedc0175cf93f43de354 /contrib/python | |
| parent | 8acff7ec3d64307981a0af24d067c172e0ea531f (diff) | |
Intermediate changes
commit_hash:832e3683ad1b3c1089fec74bc325f641da0b442b
Diffstat (limited to 'contrib/python')
| -rw-r--r-- | contrib/python/ydb/py3/.dist-info/METADATA | 2 | ||||
| -rw-r--r-- | contrib/python/ydb/py3/ya.make | 2 | ||||
| -rw-r--r-- | contrib/python/ydb/py3/ydb/credentials.py | 26 | ||||
| -rw-r--r-- | contrib/python/ydb/py3/ydb/driver.py | 39 | ||||
| -rw-r--r-- | contrib/python/ydb/py3/ydb/ydb_version.py | 2 |
5 files changed, 59 insertions, 12 deletions
diff --git a/contrib/python/ydb/py3/.dist-info/METADATA b/contrib/python/ydb/py3/.dist-info/METADATA index 56abf2d928e..d78acdc0709 100644 --- a/contrib/python/ydb/py3/.dist-info/METADATA +++ b/contrib/python/ydb/py3/.dist-info/METADATA @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: ydb -Version: 3.18.0 +Version: 3.18.1 Summary: YDB Python SDK Home-page: http://github.com/ydb-platform/ydb-python-sdk Author: Yandex LLC diff --git a/contrib/python/ydb/py3/ya.make b/contrib/python/ydb/py3/ya.make index c4e2895311a..5d5e6636e39 100644 --- a/contrib/python/ydb/py3/ya.make +++ b/contrib/python/ydb/py3/ya.make @@ -2,7 +2,7 @@ PY3_LIBRARY() -VERSION(3.18.0) +VERSION(3.18.1) LICENSE(Apache-2.0) diff --git a/contrib/python/ydb/py3/ydb/credentials.py b/contrib/python/ydb/py3/ydb/credentials.py index 97bf741e412..f42932b9781 100644 --- a/contrib/python/ydb/py3/ydb/credentials.py +++ b/contrib/python/ydb/py3/ydb/credentials.py @@ -44,6 +44,9 @@ class Credentials(abc.ABC): return token return "" + def _update_driver_config(self, driver_config): + pass + class OneToManyValue(object): def __init__(self): @@ -184,11 +187,23 @@ def _wrap_static_credentials_response(rpc_state, response): class StaticCredentials(AbstractExpiringTokenCredentials): def __init__(self, driver_config, user, password="", tracer=None): super(StaticCredentials, self).__init__(tracer) - self.driver_config = driver_config + + from .driver import DriverConfig + + if driver_config is not None: + self.driver_config = DriverConfig( + endpoint=driver_config.endpoint, + database=driver_config.database, + root_certificates=driver_config.root_certificates, + ) self.user = user self.password = password self.request_timeout = 10 + @classmethod + def from_user_password(cls, user: str, password: str, tracer=None): + return cls(None, user, password, tracer) + def _make_token_request(self): conn = connection.Connection.ready_factory(self.driver_config.endpoint, self.driver_config) assert conn is not None, "Failed to establish connection in to %s" % self.driver_config.endpoint @@ -204,6 +219,15 @@ class StaticCredentials(AbstractExpiringTokenCredentials): conn.close() return {"expires_in": 30 * 60, "access_token": result.token} + def _update_driver_config(self, driver_config): + from .driver import DriverConfig + + self.driver_config = DriverConfig( + endpoint=driver_config.endpoint, + database=driver_config.database, + root_certificates=driver_config.root_certificates, + ) + class AnonymousCredentials(Credentials): @staticmethod diff --git a/contrib/python/ydb/py3/ydb/driver.py b/contrib/python/ydb/py3/ydb/driver.py index ecd3319e874..1559b0d00bc 100644 --- a/contrib/python/ydb/py3/ydb/driver.py +++ b/contrib/python/ydb/py3/ydb/driver.py @@ -1,12 +1,16 @@ # -*- coding: utf-8 -*- +import grpc +import logging +import os +from typing import Any # noqa + from . import credentials as credentials_impl, table, scheme, pool from . import tracing -import os -import grpc from . import iam from . import _utilities -from typing import Any # noqa + +logger = logging.getLogger(__name__) class RPCCompression: @@ -172,7 +176,7 @@ class DriverConfig(object): database, credentials=default_credentials(credentials), root_certificates=root_certificates, - **kwargs + **kwargs, ) @classmethod @@ -183,13 +187,22 @@ class DriverConfig(object): database, credentials=default_credentials(credentials), root_certificates=root_certificates, - **kwargs + **kwargs, ) def set_grpc_keep_alive_timeout(self, timeout): self.grpc_keep_alive_timeout = timeout return self + def _update_attrs_by_kwargs(self, **kwargs): + for key, value in kwargs.items(): + if value is not None: + if getattr(self, key) is not None: + logger.warning( + f"Arg {key} was used in both DriverConfig and Driver. Value from Driver will be used." + ) + setattr(self, key, value) + ConnectionParams = DriverConfig @@ -202,7 +215,7 @@ def get_config( root_certificates=None, credentials=None, config_class=DriverConfig, - **kwargs + **kwargs, ): if driver_config is None: if connection_string is not None: @@ -213,7 +226,17 @@ def get_config( driver_config = config_class.default_from_endpoint_and_database( endpoint, database, root_certificates, credentials, **kwargs ) - return driver_config + else: + kwargs["endpoint"] = endpoint + kwargs["database"] = database + kwargs["root_certificates"] = root_certificates + kwargs["credentials"] = credentials + + driver_config._update_attrs_by_kwargs(**kwargs) + + if driver_config.credentials is not None: + driver_config.credentials._update_driver_config(driver_config) + return driver_config @@ -228,7 +251,7 @@ class Driver(pool.ConnectionPool): database=None, root_certificates=None, credentials=None, - **kwargs + **kwargs, ): """ Constructs a driver instance to be used in table and scheme clients. diff --git a/contrib/python/ydb/py3/ydb/ydb_version.py b/contrib/python/ydb/py3/ydb/ydb_version.py index ed2ab66d7ab..f890bc7248e 100644 --- a/contrib/python/ydb/py3/ydb/ydb_version.py +++ b/contrib/python/ydb/py3/ydb/ydb_version.py @@ -1 +1 @@ -VERSION = "3.18.0" +VERSION = "3.18.1" |
