@@ -15,40 +15,54 @@ def create_event_timestamp_filter(begin_date=None, end_date=None):
15
15
begin_date: The begin date for the range.
16
16
end_date: The end date for the range.
17
17
"""
18
- end_date = _get_end_date_with_eod_time_if_needed ( end_date )
18
+
19
19
if begin_date and end_date :
20
- return _create_in_range_filter (begin_date , end_date )
20
+ min_timestamp = _parse_min_timestamp (begin_date )
21
+ max_timestamp = _parse_max_timestamp (end_date )
22
+ return _create_in_range_filter (min_timestamp , max_timestamp )
21
23
elif begin_date and not end_date :
22
- return _create_on_or_after_filter (begin_date )
24
+ min_timestamp = _parse_min_timestamp (begin_date )
25
+ return _create_on_or_after_filter (min_timestamp )
23
26
elif end_date and not begin_date :
24
- return _create_on_or_before_filter (end_date )
27
+ max_timestamp = _parse_max_timestamp (end_date )
28
+ return _create_on_or_before_filter (max_timestamp )
29
+
30
+
31
+ def _parse_max_timestamp (end_date ):
32
+ if len (end_date ) == 1 :
33
+ end_date = _get_end_date_with_eod_time_if_needed (end_date )
34
+ max_time = _parse_timestamp (end_date )
35
+ max_time = _add_milliseconds (max_time )
36
+ else :
37
+ max_time = _parse_timestamp (end_date )
38
+
39
+ return convert_datetime_to_timestamp (max_time )
40
+
41
+
42
+ def _add_milliseconds (max_time ):
43
+ return max_time + timedelta (milliseconds = 999 )
25
44
26
45
27
- def _create_in_range_filter (begin_date , end_date ):
28
- min_timestamp = _parse_min_timestamp (begin_date )
29
- max_timestamp = _parse_timestamp (end_date )
46
+ def _create_in_range_filter (min_timestamp , max_timestamp ):
30
47
_verify_timestamp_order (min_timestamp , max_timestamp )
31
48
return EventTimestamp .in_range (min_timestamp , max_timestamp )
32
49
33
50
34
- def _create_on_or_after_filter (begin_date ):
35
- min_timestamp = _parse_min_timestamp (begin_date )
51
+ def _create_on_or_after_filter (min_timestamp ):
36
52
return EventTimestamp .on_or_after (min_timestamp )
37
53
38
54
39
- def _create_on_or_before_filter (end_date ):
40
- max_timestamp = _parse_timestamp (end_date )
55
+ def _create_on_or_before_filter (max_timestamp ):
41
56
return EventTimestamp .on_or_before (max_timestamp )
42
57
43
58
44
59
def _get_end_date_with_eod_time_if_needed (end_date ):
45
- if end_date and len (end_date ) == 1 :
46
- return end_date [0 ], "23:59:59"
47
- return end_date
60
+ return end_date [0 ], "23:59:59"
48
61
49
62
50
63
def _parse_min_timestamp (begin_date_str ):
51
- min_timestamp = _parse_timestamp (begin_date_str )
64
+ min_time = _parse_timestamp (begin_date_str )
65
+ min_timestamp = convert_datetime_to_timestamp (min_time )
52
66
boundary_date = datetime .utcnow () - timedelta (days = _MAX_LOOK_BACK_DAYS )
53
67
boundary = convert_datetime_to_timestamp (boundary_date )
54
68
if min_timestamp and min_timestamp < boundary :
@@ -68,9 +82,9 @@ def _parse_timestamp(date_and_time):
68
82
date_str = _join_date_and_time (date_and_time )
69
83
date_format = u"%Y-%m-%d" if len (date_and_time ) == 1 else u"%Y-%m-%d %H:%M:%S"
70
84
time = datetime .strptime (date_str , date_format )
85
+ return time
71
86
except ValueError :
72
87
raise ValueError (_FORMAT_VALUE_ERROR_MESSAGE )
73
- return convert_datetime_to_timestamp (time )
74
88
75
89
76
90
def _join_date_and_time (date_and_time ):
0 commit comments