from dateutil.relativedelta import relativedelta
# Usual DASH stuff
dcc.RangeSlider(
id = 'datetime_RangeSlider',
updatemode = 'mouseup', #don't let it update till mouse released
min = unix_time_millis(d.datetime.min()),
max = unix_time_millis(d.datetime.max()),
value = [unix_time_millis(d.datetime.min()),
unix_time_millis(d.datetime.max())],
#TODO add markers for key dates
marks=get_marks_from_start_end(d.datetime.min(),
d.datetime.max()),
),
def get_marks_from_start_end(start, end):
''' Returns dict with one item per month
{1440080188.1900003: '2015-08',
'''
result = []
current = start
while current <= end:
result.append(current)
current += relativedelta(months=1)
return {unix_time_millis(m):(str(m.strftime('%Y-%m'))) for m in result}
worked for me.