Skip to content

Commit 72e5b32

Browse files
committed
Add helper for iterating over months and move date proxy here
the proxy is now needed by two commands
1 parent 497b1c9 commit 72e5b32

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

project/asylum/utils.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
# -*- coding: utf-8 -*-
2+
import calendar
3+
import datetime
24
import importlib
35
import random
46

@@ -26,3 +28,19 @@ def get_random_objects(klass, num=1):
2628
random_index = random.randint(0, count - 1)
2729
ret.append(klass.objects.all()[random_index])
2830
return ret
31+
32+
33+
# Adapted from http://www.ianlewis.org/en/python-date-range-iterator
34+
def months(from_date=None, to_date=None):
35+
from_date = from_date or datetime.datetime.now().date()
36+
while to_date is None or from_date <= to_date:
37+
yield from_date
38+
from_date = from_date + datetime.timedelta(days=calendar.monthrange(from_date.year, from_date.month)[1])
39+
return
40+
41+
42+
def datetime_proxy(delta=datetime.timedelta(days=1)):
43+
"""Used by management commands needing datetime X days ago"""
44+
now_yesterday = datetime.datetime.now() - delta
45+
start_yesterday = datetime.datetime.combine(now_yesterday.date(), datetime.datetime.min.time())
46+
return start_yesterday.isoformat()

0 commit comments

Comments
 (0)