-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtoolkit.py
More file actions
66 lines (40 loc) · 1.39 KB
/
toolkit.py
File metadata and controls
66 lines (40 loc) · 1.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# -*- coding: utf-8 -*-
from datetime import datetime, timedelta
from database_util import session_scope
BASE_DATE = datetime(2015, 10, 1)
MAX_DATE = datetime(2016, 7, 5)
def get_max_user_id():
with session_scope() as db:
result = db.execute('select max(beneficiary_user_id) as max_user_id from wifi_user_action_logs')
for row in result:
max_user_id = row['max_user_id']
return max_user_id
def datetime_difference(later, earlier=BASE_DATE):
delta = later - earlier
return delta.days
def date_difference(later, earlier=BASE_DATE):
delta = later.date() - earlier.date()
return delta.days
def next_day(time):
return time + timedelta(days=1)
def add_day(n, time):
return time + timedelta(days=n)
def previous_day(time):
return time - timedelta(days=1)
def new_padded_list(length, fill_value):
return [fill_value] * length
def add_day(n, base_date=BASE_DATE):
return base_date + timedelta(days=n)
def format_date(time):
return time.strftime("%Y-%m-%d")
def ifnull(var, val):
if var is None:
return val
return var
def date_range(start_date, end_date):
if start_date <= end_date:
for n in range((end_date - start_date).days + 1):
yield start_date + timedelta(days=n)
else:
for n in range((start_date - end_date).days + 1):
yield start_date - timedelta(days=n)