Skip to content

Commit aef37eb

Browse files
committed
fixup: fix timezone getting passed to Literal op
1 parent ef3dbe6 commit aef37eb

File tree

3 files changed

+7
-6
lines changed

3 files changed

+7
-6
lines changed

ibis/common/temporal.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ def normalize_timedelta(
203203
return int(value)
204204

205205

206-
def normalize_timezone(tz):
206+
def normalize_timezone(tz) -> datetime.tzinfo | None:
207207
if tz is None:
208208
return None
209209
elif isinstance(tz, str):

ibis/expr/api.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -904,7 +904,7 @@ def timestamp(
904904
else:
905905
value = normalize_datetime(value_or_year)
906906
tzinfo = normalize_timezone(timezone or value.tzinfo)
907-
timezone = tzinfo.tzname(value) if tzinfo is not None else None
907+
value = value.astimezone(tzinfo) if tzinfo is not None else value
908908
dtype = dt.Timestamp.from_datetime(value, nullable=nullable)
909909
return literal(value, type=dtype)
910910

ibis/expr/datatypes/core.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -760,11 +760,12 @@ def from_datetime(cls, dt: pydatetime.datetime, *, nullable: bool = True):
760760
scale = 6
761761
else:
762762
scale = 0
763-
if dt.tzinfo is not None:
764-
timezone = str(dt.tzinfo)
763+
764+
if (tzinfo := dt.tzinfo) is not None:
765+
timezone_string = tzinfo.tzname(dt)
765766
else:
766-
timezone = None
767-
return cls(scale=scale, timezone=timezone, nullable=nullable)
767+
timezone_string = None
768+
return cls(scale=scale, timezone=timezone_string, nullable=nullable)
768769

769770
@classmethod
770771
def from_pandas(

0 commit comments

Comments
 (0)