Hello community, here is the log from the commit of package python-croniter for openSUSE:Leap:15.2 checked in at 2020-03-16 12:21:33 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Leap:15.2/python-croniter (Old) and /work/SRC/openSUSE:Leap:15.2/.python-croniter.new.3160 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-croniter" Mon Mar 16 12:21:33 2020 rev:12 rq:785527 version:0.3.31 Changes: -------- --- /work/SRC/openSUSE:Leap:15.2/python-croniter/python-croniter.changes 2020-03-09 18:04:12.968783280 +0100 +++ /work/SRC/openSUSE:Leap:15.2/.python-croniter.new.3160/python-croniter.changes 2020-03-16 12:21:34.523713584 +0100 @@ -1,0 +2,6 @@ +Sat Mar 14 15:47:06 UTC 2020 - Dirk Mueller <dmuel...@suse.com> + +- update to 0.3.31: + - Fix get_next() when start_time less then 1s before next instant + +------------------------------------------------------------------- Old: ---- croniter-0.3.30.tar.gz New: ---- croniter-0.3.31.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-croniter.spec ++++++ --- /var/tmp/diff_new_pack.aRvW9c/_old 2020-03-16 12:21:35.319713713 +0100 +++ /var/tmp/diff_new_pack.aRvW9c/_new 2020-03-16 12:21:35.319713713 +0100 @@ -1,7 +1,7 @@ # # spec file for package python-croniter # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-croniter -Version: 0.3.30 +Version: 0.3.31 Release: 0 Summary: Python iterators for datetime objects with cron-like format License: MIT ++++++ croniter-0.3.30.tar.gz -> croniter-0.3.31.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/croniter-0.3.30/PKG-INFO new/croniter-0.3.31/PKG-INFO --- old/croniter-0.3.30/PKG-INFO 2019-04-20 17:44:33.000000000 +0200 +++ new/croniter-0.3.31/PKG-INFO 2020-01-02 16:22:28.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.2 Name: croniter -Version: 0.3.30 +Version: 0.3.31 Summary: croniter provides iteration for datetime object with cron like format Home-page: http://github.com/kiorky/croniter Author: Matsumoto Taichi, kiorky @@ -149,6 +149,12 @@ Changelog ============== + 0.3.31 (2020-01-02) + ------------------- + + - Fix get_next() when start_time less then 1s before next instant + [AlexHill] + 0.3.30 (2019-04-20) ------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/croniter-0.3.30/docs/CHANGES.rst new/croniter-0.3.31/docs/CHANGES.rst --- old/croniter-0.3.30/docs/CHANGES.rst 2019-04-20 17:44:33.000000000 +0200 +++ new/croniter-0.3.31/docs/CHANGES.rst 2020-01-02 16:22:28.000000000 +0100 @@ -1,6 +1,12 @@ Changelog ============== +0.3.31 (2020-01-02) +------------------- + +- Fix get_next() when start_time less then 1s before next instant + [AlexHill] + 0.3.30 (2019-04-20) ------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/croniter-0.3.30/setup.py new/croniter-0.3.31/setup.py --- old/croniter-0.3.30/setup.py 2019-04-20 17:44:33.000000000 +0200 +++ new/croniter-0.3.31/setup.py 2020-01-02 16:22:28.000000000 +0100 @@ -23,7 +23,7 @@ setup( name='croniter', - version='0.3.30', + version='0.3.31', py_modules=['croniter', ], description=( 'croniter provides iteration for datetime ' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/croniter-0.3.30/src/croniter/croniter.py new/croniter-0.3.31/src/croniter/croniter.py --- old/croniter-0.3.30/src/croniter/croniter.py 2019-04-20 17:44:33.000000000 +0200 +++ new/croniter-0.3.31/src/croniter/croniter.py 2020-01-02 16:22:28.000000000 +0100 @@ -1,7 +1,9 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -from __future__ import absolute_import, print_function +from __future__ import absolute_import, print_function, division + +import math import re from time import time import datetime @@ -80,9 +82,6 @@ self.tzinfo = None if isinstance(start_time, datetime.datetime): self.tzinfo = start_time.tzinfo - # milliseconds/microseconds rounds - if start_time.microsecond: - start_time = start_time + relativedelta(seconds=1) start_time = self._datetime_to_timestamp(start_time) self.start_time = start_time @@ -224,10 +223,12 @@ def _calc(self, now, expanded, nth_weekday_of_month, is_prev): if is_prev: + now = math.ceil(now) nearest_diff_method = self._get_prev_nearest_diff sign = -1 offset = (len(expanded) == 6 or now % 60 > 0) and 1 or 60 else: + now = math.floor(now) nearest_diff_method = self._get_next_nearest_diff sign = 1 offset = (len(expanded) == 6) and 1 or 60 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/croniter-0.3.30/src/croniter/tests/test_croniter.py new/croniter-0.3.31/src/croniter/tests/test_croniter.py --- old/croniter-0.3.30/src/croniter/tests/test_croniter.py 2019-04-20 17:44:33.000000000 +0200 +++ new/croniter-0.3.31/src/croniter/tests/test_croniter.py 2020-01-02 16:22:28.000000000 +0100 @@ -3,6 +3,7 @@ import unittest from datetime import datetime, timedelta +from functools import partial from time import sleep import pytz from croniter import croniter, CroniterBadDateError, CroniterBadCronError, CroniterNotAlphaError @@ -816,21 +817,38 @@ """ https://github.com/taichino/croniter/issues/107 """ - # + + _croniter = partial(croniter, "0 10 * * *", ret_type=datetime) + dt = datetime(2018, 1, 2, 10, 0, 0, 500) - c = croniter("0 10 * * * ", start_time=dt) - ts = "{0}".format(datetime.utcfromtimestamp(c.get_prev())) - self.assertEqual(ts, '2018-01-02 10:00:00') - # + self.assertEqual( + _croniter(start_time=dt).get_prev(), + datetime(2018, 1, 2, 10, 0), + ) + self.assertEqual( + _croniter(start_time=dt).get_next(), + datetime(2018, 1, 3, 10, 0), + ) + dt = datetime(2018, 1, 2, 10, 0, 1, 0) - c = croniter("0 10 * * * ", start_time=dt) - ts = "{0}".format(datetime.utcfromtimestamp(c.get_prev())) - self.assertEqual(ts, '2018-01-02 10:00:00') - # + self.assertEqual( + _croniter(start_time=dt).get_prev(), + datetime(2018, 1, 2, 10, 0), + ) + self.assertEqual( + _croniter(start_time=dt).get_next(), + datetime(2018, 1, 3, 10, 0), + ) + dt = datetime(2018, 1, 2, 9, 59, 59, 999999) - c = croniter("0 10 * * * ", start_time=dt) - ts = "{0}".format(datetime.utcfromtimestamp(c.get_prev())) - self.assertEqual(ts, '2018-01-01 10:00:00') + self.assertEqual( + _croniter(start_time=dt).get_prev(), + datetime(2018, 1, 1, 10, 0), + ) + self.assertEqual( + _croniter(start_time=dt).get_next(), + datetime(2018, 1, 2, 10, 0), + ) def test_invalid_zerorepeat(self): self.assertFalse(croniter.is_valid('*/0 * * * *')) @@ -845,7 +863,7 @@ ret.append(dt) dt += timedelta(days=1) sret = ["{0}".format(r) for r in ret] - self.assertEquals( + self.assertEqual( sret, ['2019-01-15 00:00:00', '2019-01-16 00:00:01', @@ -865,7 +883,7 @@ ret.append(dt) dt += timedelta(days=1) sret = ["{0}".format(r) for r in ret] - self.assertEquals( + self.assertEqual( sret, ['2019-01-14 00:00:01', '2019-01-15 00:00:02', @@ -888,7 +906,7 @@ ret.append(dt) dt += timedelta(days=1) sret = ["{0}".format(r) for r in ret] - self.assertEquals( + self.assertEqual( sret, ['2019-01-16 00:00:00', '2019-01-17 00:00:01', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/croniter-0.3.30/src/croniter.egg-info/PKG-INFO new/croniter-0.3.31/src/croniter.egg-info/PKG-INFO --- old/croniter-0.3.30/src/croniter.egg-info/PKG-INFO 2019-04-20 17:44:33.000000000 +0200 +++ new/croniter-0.3.31/src/croniter.egg-info/PKG-INFO 2020-01-02 16:22:28.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.2 Name: croniter -Version: 0.3.30 +Version: 0.3.31 Summary: croniter provides iteration for datetime object with cron like format Home-page: http://github.com/kiorky/croniter Author: Matsumoto Taichi, kiorky @@ -149,6 +149,12 @@ Changelog ============== + 0.3.31 (2020-01-02) + ------------------- + + - Fix get_next() when start_time less then 1s before next instant + [AlexHill] + 0.3.30 (2019-04-20) -------------------