Skip to content

Commit 689bdaa

Browse files
committed
CDK: add formatting for epoch_microseconds
Signed-off-by: Artem Inzhyyants <[email protected]>
1 parent e8ec233 commit 689bdaa

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

airbyte_cdk/sources/declarative/datetime/datetime_parser.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ def parse(self, date: Union[str, int], format: str) -> datetime.datetime:
2929
return datetime.datetime.fromtimestamp(int(date), tz=datetime.timezone.utc)
3030
elif format == "%s_as_float":
3131
return datetime.datetime.fromtimestamp(float(date), tz=datetime.timezone.utc)
32+
elif format == "%epoch_microseconds":
33+
return self._UNIX_EPOCH + datetime.timedelta(microseconds=int(date))
3234
elif format == "%ms":
3335
return self._UNIX_EPOCH + datetime.timedelta(milliseconds=int(date))
3436
elif "%_ms" in format:
@@ -46,6 +48,8 @@ def format(self, dt: datetime.datetime, format: str) -> str:
4648
return str(int(dt.timestamp()))
4749
if format == "%s_as_float":
4850
return str(float(dt.timestamp()))
51+
if format == "%epoch_microseconds":
52+
return str(int(dt.timestamp() * 1_000_000))
4953
if format == "%ms":
5054
# timstamp() returns a float representing the number of seconds since the unix epoch
5155
return str(int(dt.timestamp() * 1000))

airbyte_cdk/sources/declarative/interpolation/macros.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ def format_datetime(
173173
)
174174
if format == "%s":
175175
return str(int(dt_datetime.timestamp()))
176-
elif format == "%ms":
176+
elif format == "%epoch_microseconds":
177177
return str(int(dt_datetime.timestamp() * 1_000_000))
178178
return dt_datetime.strftime(format)
179179

0 commit comments

Comments
 (0)