Skip to content

Commit f1a9d36

Browse files
committed
fix event_time micro / milli seconds bug.
1 parent 026b86d commit f1a9d36

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

examples/event_sample.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,15 @@
1919
"prop5" : ["a", "b", "c"],
2020
"prop6" : 4.56 ,
2121
}
22+
first_event_time = datetime(
23+
2004, 12, 13, 21, 39, 45, 618000, pytz.timezone('US/Mountain'))
2224
first_event_response = client.create_event(
2325
event="my_event",
2426
entity_type="user",
2527
entity_id="uid",
26-
properties=first_event_properties)
28+
properties=first_event_properties,
29+
first_event_time=first_event_time,
30+
)
2731
print("First Event response")
2832
print(first_event_response)
2933
print
@@ -40,7 +44,7 @@
4044
target_entity_type="item",
4145
target_entity_id="iid",
4246
properties=second_event_properties,
43-
event_time=datetime(2014, 12, 13, 21, 38, 45, 618, pytz.utc))
47+
event_time=datetime(2014, 12, 13, 21, 38, 45, 618000, pytz.utc))
4448
print("Second Event response")
4549
print(second_event_response)
4650
print

predictionio/__init__.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -177,8 +177,11 @@ def acreate_event(self, event, entity_type, entity_id,
177177
if properties is not None:
178178
data["properties"] = properties
179179

180-
event_time = event_time_validation(event_time)
181-
data["eventTime"] = event_time.isoformat()
180+
et = event_time_validation(event_time)
181+
# EventServer uses milliseconds, but python datetime class uses micro. Hence
182+
# need to skip the last three digits.
183+
et_str = et.strftime("%Y-%m-%dT%H:%M:%S.%f")[:-3] + et.strftime("%z")
184+
data["eventTime"] = et_str
182185

183186
path = "/events.json"
184187
request = AsyncRequest("POST", path, **data)

0 commit comments

Comments
 (0)