Skip to content

Commit a575e6c

Browse files
committed
fix type conversions
1 parent 98303dc commit a575e6c

File tree

2 files changed

+10
-4
lines changed
  • lib

2 files changed

+10
-4
lines changed

lib/dl_connector_ydb/dl_connector_ydb/core/base/adapter.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,12 @@ def _convert_bytes(value: bytes) -> str:
103103
return value.decode("utf-8", errors="replace")
104104

105105
@staticmethod
106-
def _convert_interval(value: datetime.timedelta) -> int:
107-
return int(value.total_seconds() * 1_000_000)
106+
def _convert_interval(value: datetime.timedelta | int) -> int:
107+
if value is None:
108+
return None
109+
if isinstance(value, datetime.timedelta):
110+
return int(value.total_seconds() * 1_000_000)
111+
return value
108112

109113
@staticmethod
110114
def _convert_ts(value: int | datetime.datetime) -> datetime.datetime:

lib/dl_sqlalchemy_ydb/dl_sqlalchemy_ydb/dialect.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,12 @@ class YqlInterval(sa.types.Interval):
3333
__visit_name__ = "interval"
3434

3535
def result_processor(self, dialect: sa.engine.Dialect, coltype: typing.Any) -> typing.Any:
36-
def process(value: typing.Optional[datetime.timedelta]) -> typing.Optional[int]:
36+
def process(value: typing.Optional[datetime.timedelta] | int) -> typing.Optional[int]:
3737
if value is None:
3838
return None
39-
return int(value.total_seconds() * 1_000_000)
39+
if isinstance(value, datetime.timedelta):
40+
return int(value.total_seconds() * 1_000_000)
41+
return value
4042

4143
return process
4244

0 commit comments

Comments
 (0)