summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMathieu Le Marec - Pasquet <kiorky@cryptelium.net>2016-03-10 21:31:55 +0100
committerMathieu Le Marec - Pasquet <kiorky@cryptelium.net>2016-03-10 21:31:55 +0100
commit194d6f2e1593a2fbbc9b2abf0dcda91242e90ad5 (patch)
treec7ae2b5801befe7321f0e5677aa640a41db46743
parent13bde87e718e02f1729fee5a1a637b8311c25e18 (diff)
parent6022c3adf26a191ca8eded61bc7617eea313e487 (diff)
downloadcroniter-194d6f2e1593a2fbbc9b2abf0dcda91242e90ad5.tar.gz
Merge pull request #56 from kiorky/master
backport
-rw-r--r--docs/CHANGES.rst6
-rw-r--r--setup.py2
-rw-r--r--src/croniter/croniter.py26
3 files changed, 21 insertions, 13 deletions
diff --git a/docs/CHANGES.rst b/docs/CHANGES.rst
index a4e5def..1b2d5b9 100644
--- a/docs/CHANGES.rst
+++ b/docs/CHANGES.rst
@@ -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)
-------------------
diff --git a/setup.py b/setup.py
index 1e0e308..4eddfc5 100644
--- a/setup.py
+++ b/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 '
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.")