commit
194d6f2e15
|
@ -1,12 +1,16 @@
|
|||
Changelog
|
||||
==============
|
||||
|
||||
0.3.12 (unreleased)
|
||||
0.3.13 (unreleased)
|
||||
-------------------
|
||||
|
||||
- Nothing changed yet.
|
||||
|
||||
|
||||
0.3.12 (2016-03-10)
|
||||
-------------------
|
||||
- support setting ret_type in __init__ [Brent Tubbs <brent.tubbs@gmail.com>]
|
||||
|
||||
0.3.11 (2016-01-13)
|
||||
-------------------
|
||||
|
||||
|
|
2
setup.py
2
setup.py
|
@ -17,7 +17,7 @@ long_description = "\n\n".join(
|
|||
|
||||
setup(
|
||||
name='croniter',
|
||||
version='0.3.12.dev0',
|
||||
version='0.3.13.dev0',
|
||||
py_modules=['croniter', ],
|
||||
description=(
|
||||
'croniter provides iteration for datetime '
|
||||
|
|
|
@ -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.")
|
||||
|
|
Loading…
Reference in New Issue