Skip to content

Commit a27d679

Browse files
committed
change settings obj on requests
1 parent e68168a commit a27d679

File tree

2 files changed

+31
-27
lines changed

2 files changed

+31
-27
lines changed

ydb/aio/query/transaction.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
from .base import AsyncResponseContextIterator
77
from ... import issues
8+
from ...settings import BaseRequestSettings
89
from ...query import base
910
from ...query.transaction import (
1011
BaseQueryTxContext,
@@ -46,25 +47,25 @@ async def _ensure_prev_stream_finished(self) -> None:
4647
pass
4748
self._prev_stream = None
4849

49-
async def begin(self, settings: Optional[base.QueryClientSettings] = None) -> "QueryTxContextAsync":
50+
async def begin(self, settings: Optional[BaseRequestSettings] = None) -> "QueryTxContextAsync":
5051
"""WARNING: This API is experimental and could be changed.
5152
5253
Explicitly begins a transaction
5354
54-
:param settings: A request settings
55+
:param settings: An additional request settings BaseRequestSettings;
5556
5657
:return: None or exception if begin is failed
5758
"""
5859
await self._begin_call(settings)
5960
return self
6061

61-
async def commit(self, settings: Optional[base.QueryClientSettings] = None) -> None:
62+
async def commit(self, settings: Optional[BaseRequestSettings] = None) -> None:
6263
"""WARNING: This API is experimental and could be changed.
6364
6465
Calls commit on a transaction if it is open otherwise is no-op. If transaction execution
6566
failed then this method raises PreconditionFailed.
6667
67-
:param settings: A request settings
68+
:param settings: An additional request settings BaseRequestSettings;
6869
6970
:return: A committed transaction or exception if commit is failed
7071
"""
@@ -79,13 +80,13 @@ async def commit(self, settings: Optional[base.QueryClientSettings] = None) -> N
7980

8081
await self._commit_call(settings)
8182

82-
async def rollback(self, settings: Optional[base.QueryClientSettings] = None) -> None:
83+
async def rollback(self, settings: Optional[BaseRequestSettings] = None) -> None:
8384
"""WARNING: This API is experimental and could be changed.
8485
8586
Calls rollback on a transaction if it is open otherwise is no-op. If transaction execution
8687
failed then this method raises PreconditionFailed.
8788
88-
:param settings: A request settings
89+
:param settings: An additional request settings BaseRequestSettings;
8990
9091
:return: A committed transaction or exception if commit is failed
9192
"""
@@ -108,7 +109,7 @@ async def execute(
108109
syntax: Optional[base.QuerySyntax] = None,
109110
exec_mode: Optional[base.QueryExecMode] = None,
110111
concurrent_result_sets: Optional[bool] = False,
111-
settings: Optional[base.QueryClientSettings] = None,
112+
settings: Optional[BaseRequestSettings] = None,
112113
) -> AsyncResponseContextIterator:
113114
"""WARNING: This API is experimental and could be changed.
114115
@@ -137,17 +138,17 @@ async def execute(
137138
exec_mode=exec_mode,
138139
parameters=parameters,
139140
concurrent_result_sets=concurrent_result_sets,
141+
settings=settings,
140142
)
141143

142-
settings = settings if settings is not None else self.session._settings
143144
self._prev_stream = AsyncResponseContextIterator(
144145
stream_it,
145146
lambda resp: base.wrap_execute_query_response(
146147
rpc_state=None,
147148
response_pb=resp,
148149
tx=self,
149150
commit_tx=commit_tx,
150-
settings=settings,
151+
settings=self.session._settings,
151152
),
152153
)
153154
return self._prev_stream

ydb/query/transaction.py

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
from ..connection import _RpcState as RpcState
1616

1717
from . import base
18+
from ..settings import BaseRequestSettings
1819

1920
logger = logging.getLogger(__name__)
2021

@@ -214,7 +215,7 @@ def tx_id(self) -> Optional[str]:
214215
"""
215216
return self._tx_state.tx_id
216217

217-
def _begin_call(self, settings: Optional[base.QueryClientSettings]) -> "BaseQueryTxContext":
218+
def _begin_call(self, settings: Optional[BaseRequestSettings]) -> "BaseQueryTxContext":
218219
self._tx_state._check_invalid_transition(QueryTxStateEnum.BEGINED)
219220

220221
return self._driver(
@@ -226,7 +227,7 @@ def _begin_call(self, settings: Optional[base.QueryClientSettings]) -> "BaseQuer
226227
(self._session_state, self._tx_state, self),
227228
)
228229

229-
def _commit_call(self, settings: Optional[base.QueryClientSettings]) -> "BaseQueryTxContext":
230+
def _commit_call(self, settings: Optional[BaseRequestSettings]) -> "BaseQueryTxContext":
230231
self._tx_state._check_invalid_transition(QueryTxStateEnum.COMMITTED)
231232

232233
return self._driver(
@@ -238,7 +239,7 @@ def _commit_call(self, settings: Optional[base.QueryClientSettings]) -> "BaseQue
238239
(self._session_state, self._tx_state, self),
239240
)
240241

241-
def _rollback_call(self, settings: Optional[base.QueryClientSettings]) -> "BaseQueryTxContext":
242+
def _rollback_call(self, settings: Optional[BaseRequestSettings]) -> "BaseQueryTxContext":
242243
self._tx_state._check_invalid_transition(QueryTxStateEnum.ROLLBACKED)
243244

244245
return self._driver(
@@ -253,11 +254,12 @@ def _rollback_call(self, settings: Optional[base.QueryClientSettings]) -> "BaseQ
253254
def _execute_call(
254255
self,
255256
query: str,
256-
commit_tx: bool = False,
257-
syntax: base.QuerySyntax = None,
258-
exec_mode: base.QueryExecMode = None,
259-
parameters: dict = None,
260-
concurrent_result_sets: bool = False,
257+
commit_tx: Optional[bool],
258+
syntax: Optional[base.QuerySyntax],
259+
exec_mode: Optional[base.QueryExecMode],
260+
parameters: Optional[dict],
261+
concurrent_result_sets: Optional[bool],
262+
settings: Optional[BaseRequestSettings],
261263
) -> Iterable[_apis.ydb_query.ExecuteQueryResponsePart]:
262264
self._tx_state._check_tx_ready_to_use()
263265

@@ -277,6 +279,7 @@ def _execute_call(
277279
request.to_proto(),
278280
_apis.QueryService.Stub,
279281
_apis.QueryService.ExecuteQuery,
282+
settings=settings,
280283
)
281284

282285
def _move_to_beginned(self, tx_id: str) -> None:
@@ -323,26 +326,26 @@ def _ensure_prev_stream_finished(self) -> None:
323326
pass
324327
self._prev_stream = None
325328

326-
def begin(self, settings: Optional[base.QueryClientSettings] = None) -> "QueryTxContextSync":
329+
def begin(self, settings: Optional[BaseRequestSettings] = None) -> "QueryTxContextSync":
327330
"""WARNING: This API is experimental and could be changed.
328331
329332
Explicitly begins a transaction
330333
331-
:param settings: A request settings
334+
:param settings: An additional request settings BaseRequestSettings;
332335
333336
:return: Transaction object or exception if begin is failed
334337
"""
335338
self._begin_call(settings)
336339

337340
return self
338341

339-
def commit(self, settings: Optional[base.QueryClientSettings] = None) -> None:
342+
def commit(self, settings: Optional[BaseRequestSettings] = None) -> None:
340343
"""WARNING: This API is experimental and could be changed.
341344
342345
Calls commit on a transaction if it is open otherwise is no-op. If transaction execution
343346
failed then this method raises PreconditionFailed.
344347
345-
:param settings: A request settings
348+
:param settings: An additional request settings BaseRequestSettings;
346349
347350
:return: A committed transaction or exception if commit is failed
348351
"""
@@ -357,13 +360,13 @@ def commit(self, settings: Optional[base.QueryClientSettings] = None) -> None:
357360

358361
self._commit_call(settings)
359362

360-
def rollback(self, settings: Optional[base.QueryClientSettings] = None) -> None:
363+
def rollback(self, settings: Optional[BaseRequestSettings] = None) -> None:
361364
"""WARNING: This API is experimental and could be changed.
362365
363366
Calls rollback on a transaction if it is open otherwise is no-op. If transaction execution
364367
failed then this method raises PreconditionFailed.
365368
366-
:param settings: A request settings
369+
:param settings: An additional request settings BaseRequestSettings;
367370
368371
:return: A committed transaction or exception if commit is failed
369372
"""
@@ -386,7 +389,7 @@ def execute(
386389
syntax: Optional[base.QuerySyntax] = None,
387390
exec_mode: Optional[base.QueryExecMode] = None,
388391
concurrent_result_sets: Optional[bool] = False,
389-
settings: Optional[base.QueryClientSettings] = None,
392+
settings: Optional[BaseRequestSettings] = None,
390393
) -> base.SyncResponseContextIterator:
391394
"""WARNING: This API is experimental and could be changed.
392395
@@ -403,7 +406,7 @@ def execute(
403406
3) QueryExecMode.VALIDATE;
404407
4) QueryExecMode.PARSE.
405408
:param concurrent_result_sets: A flag to allow YDB mix parts of different result sets. Default is False;
406-
:param settings: An additional request settings QueryClientSettings;
409+
:param settings: An additional request settings BaseRequestSettings;
407410
408411
:return: Iterator with result sets
409412
"""
@@ -416,17 +419,17 @@ def execute(
416419
exec_mode=exec_mode,
417420
parameters=parameters,
418421
concurrent_result_sets=concurrent_result_sets,
422+
settings=settings,
419423
)
420424

421-
settings = settings if settings is not None else self.session._settings
422425
self._prev_stream = base.SyncResponseContextIterator(
423426
stream_it,
424427
lambda resp: base.wrap_execute_query_response(
425428
rpc_state=None,
426429
response_pb=resp,
427430
tx=self,
428431
commit_tx=commit_tx,
429-
settings=settings,
432+
settings=self.session._settings,
430433
),
431434
)
432435
return self._prev_stream

0 commit comments

Comments
 (0)