commit
194d6f2e15
|
@ -1,12 +1,16 @@
|
||||||
Changelog
|
Changelog
|
||||||
==============
|
==============
|
||||||
|
|
||||||
0.3.12 (unreleased)
|
0.3.13 (unreleased)
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
- Nothing changed yet.
|
- 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)
|
0.3.11 (2016-01-13)
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
|
|
2
setup.py
2
setup.py
|
@ -17,7 +17,7 @@ long_description = "\n\n".join(
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
name='croniter',
|
name='croniter',
|
||||||
version='0.3.12.dev0',
|
version='0.3.13.dev0',
|
||||||
py_modules=['croniter', ],
|
py_modules=['croniter', ],
|
||||||
description=(
|
description=(
|
||||||
'croniter provides iteration for datetime '
|
'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' \
|
bad_length = 'Exactly 5 or 6 columns has to be specified for iterator' \
|
||||||
'expression.'
|
'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:
|
if start_time is None:
|
||||||
start_time = time()
|
start_time = time()
|
||||||
|
|
||||||
|
@ -137,13 +138,14 @@ class croniter(object):
|
||||||
else res)
|
else res)
|
||||||
self.expanded = expanded
|
self.expanded = expanded
|
||||||
|
|
||||||
def get_next(self, ret_type=float):
|
def get_next(self, ret_type=None):
|
||||||
return self._get_next(ret_type, is_prev=False)
|
return self._get_next(ret_type or self._ret_type, is_prev=False)
|
||||||
|
|
||||||
def get_prev(self, ret_type=float):
|
def get_prev(self, ret_type=None):
|
||||||
return self._get_next(ret_type, is_prev=True)
|
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:
|
if ret_type == datetime.datetime:
|
||||||
return self._timestamp_to_datetime(self.cur)
|
return self._timestamp_to_datetime(self.cur)
|
||||||
return self.cur
|
return self.cur
|
||||||
|
@ -186,24 +188,26 @@ class croniter(object):
|
||||||
return self
|
return self
|
||||||
__next__ = next = get_next
|
__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
|
'''Generator of all consecutive dates. Can be used instead of
|
||||||
implicit call to __iter__, whenever non-default
|
implicit call to __iter__, whenever non-default
|
||||||
'ret_type' has to be specified.
|
'ret_type' has to be specified.
|
||||||
'''
|
'''
|
||||||
while True:
|
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.'''
|
'''Generator of all previous dates.'''
|
||||||
while True:
|
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()
|
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[:]
|
expanded = self.expanded[:]
|
||||||
|
|
||||||
|
ret_type = ret_type or self._ret_type
|
||||||
|
|
||||||
if ret_type not in (float, datetime.datetime):
|
if ret_type not in (float, datetime.datetime):
|
||||||
raise TypeError("Invalid ret_type, only 'float' or 'datetime' "
|
raise TypeError("Invalid ret_type, only 'float' or 'datetime' "
|
||||||
"is acceptable.")
|
"is acceptable.")
|
||||||
|
|
Loading…
Reference in New Issue