summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMathieu Le Marec - Pasquet <kiorky@cryptelium.net>2016-03-10 21:29:22 +0100
committerMathieu Le Marec - Pasquet <kiorky@cryptelium.net>2016-03-10 21:29:22 +0100
commit7d84d926f592968fd00c996dc711bfdbcc634d65 (patch)
treeb51e74213cbb314cc0a2500cbc2195d2d02be32c
parent5f7109f31e1d1b759b9e20a3e4ca615aa348e044 (diff)
parent3d42f3d351da6d0b3cc59a92c6b0934fe1b16f83 (diff)
downloadcroniter-7d84d926f592968fd00c996dc711bfdbcc634d65.tar.gz
Merge pull request #11 from btubbs/master
support setting ret_type in __init__
-rw-r--r--src/croniter/croniter.py26
1 files changed, 15 insertions, 11 deletions
diff --git a/src/croniter/croniter.py b/src/croniter/croniter.py
index 0f9d468..327326f 100644
--- a/src/croniter/croniter.py
+++ b/src/croniter/croniter.py
@@ -52,7 +52,8 @@ class croniter(object):
bad_length = 'Exactly 5 or 6 columns has to be specified for iterator' \
'expression.'
- def __init__(self, expr_format, start_time=None):
+ def __init__(self, expr_format, start_time=None, ret_type=float):
+ self._ret_type = ret_type
if start_time is None:
start_time = time()
@@ -137,13 +138,14 @@ class croniter(object):
else res)
self.expanded = expanded
- def get_next(self, ret_type=float):
- return self._get_next(ret_type, is_prev=False)
+ def get_next(self, ret_type=None):
+ return self._get_next(ret_type or self._ret_type, is_prev=False)
- def get_prev(self, ret_type=float):
- return self._get_next(ret_type, is_prev=True)
+ def get_prev(self, ret_type=None):
+ return self._get_next(ret_type or self._ret_type, is_prev=True)
- def get_current(self, ret_type=float):
+ def get_current(self, ret_type=None):
+ ret_type = ret_type or self._ret_type
if ret_type == datetime.datetime:
return self._timestamp_to_datetime(self.cur)
return self.cur
@@ -186,24 +188,26 @@ class croniter(object):
return self
__next__ = next = get_next
- def all_next(self, ret_type=float):
+ def all_next(self, ret_type=None):
'''Generator of all consecutive dates. Can be used instead of
implicit call to __iter__, whenever non-default
'ret_type' has to be specified.
'''
while True:
- yield self._get_next(ret_type, is_prev=False)
+ yield self._get_next(ret_type or self._ret_type, is_prev=False)
- def all_prev(self, ret_type=float):
+ def all_prev(self, ret_type=None):
'''Generator of all previous dates.'''
while True:
- yield self._get_next(ret_type, is_prev=True)
+ yield self._get_next(ret_type or self._ret_type, is_prev=True)
iter = all_next # alias, you can call .iter() instead of .all_next()
- def _get_next(self, ret_type=float, is_prev=False):
+ def _get_next(self, ret_type=None, is_prev=False):
expanded = self.expanded[:]
+ ret_type = ret_type or self._ret_type
+
if ret_type not in (float, datetime.datetime):
raise TypeError("Invalid ret_type, only 'float' or 'datetime' "
"is acceptable.")