Hello community,

here is the log from the commit of package python-croniter for openSUSE:Factory 
checked in at 2020-06-10 00:47:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-croniter (Old)
 and      /work/SRC/openSUSE:Factory/.python-croniter.new.3606 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-croniter"

Wed Jun 10 00:47:20 2020 rev:12 rq:812619 version:0.3.32

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-croniter/python-croniter.changes  
2020-03-16 10:19:16.251610026 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-croniter.new.3606/python-croniter.changes    
    2020-06-10 00:47:28.638797561 +0200
@@ -1,0 +2,9 @@
+Mon Jun  8 13:31:08 UTC 2020 - Dirk Mueller <dmuel...@suse.com>
+
+- update to 0.3.32:
+  - document seconds repeats, fixes #122
+  - Implement match method, fixes #54
+  - Adding tests for #127 (test more DSTs and croniter behavior around)
+  - Changed lag_hours comparison to absolute to manage dst boundary when 
getting previous
+
+-------------------------------------------------------------------

Old:
----
  croniter-0.3.31.tar.gz

New:
----
  croniter-0.3.32.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-croniter.spec ++++++
--- /var/tmp/diff_new_pack.CjGJdd/_old  2020-06-10 00:47:29.286799295 +0200
+++ /var/tmp/diff_new_pack.CjGJdd/_new  2020-06-10 00:47:29.290799306 +0200
@@ -18,20 +18,23 @@
 
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 Name:           python-croniter
-Version:        0.3.31
+Version:        0.3.32
 Release:        0
 Summary:        Python iterators for datetime objects with cron-like format
 License:        MIT
 Group:          Development/Languages/Python
 URL:            http://github.com/kiorky/croniter
 Source:         
https://files.pythonhosted.org/packages/source/c/croniter/croniter-%{version}.tar.gz
+BuildRequires:  %{python_module natsort}
 BuildRequires:  %{python_module pytest >= 3.0.3}
 BuildRequires:  %{python_module python-dateutil}
 BuildRequires:  %{python_module pytz}
 BuildRequires:  %{python_module setuptools}
+BuildRequires:  %{python_module tzlocal}
 BuildRequires:  fdupes
 BuildRequires:  python-rpm-macros
 BuildRequires:  unzip
+Requires:       python-natsort
 Requires:       python-python-dateutil
 BuildArch:      noarch
 %python_subpackages

++++++ croniter-0.3.31.tar.gz -> croniter-0.3.32.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/croniter-0.3.31/PKG-INFO new/croniter-0.3.32/PKG-INFO
--- old/croniter-0.3.31/PKG-INFO        2020-01-02 16:22:28.000000000 +0100
+++ new/croniter-0.3.32/PKG-INFO        2020-05-27 18:01:44.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.2
 Name: croniter
-Version: 0.3.31
+Version: 0.3.32
 Summary: croniter provides iteration for datetime object with cron like format
 Home-page: http://github.com/kiorky/croniter
 Author: Matsumoto Taichi, kiorky
@@ -103,6 +103,30 @@
             >>> local_date = tz.localize(datetime(2017, 3, 26))
             >>> val = croniter('0 0 * * *', local_date).get_next(datetime)
         
+        About second repeats
+        =====================
+        Croniter is able to do second repeatition crontabs form::
+        
+            >>> croniter('* * * * * 1', local_date).get_next(datetime)
+            >>> base = datetime(2012, 4, 6, 13, 26, 10)
+            >>> itr = croniter('* * * * * 15,25', base)
+            >>> itr.get_next(datetime) # 4/6 13:26:15
+            >>> itr.get_next(datetime) # 4/6 13:26:25
+            >>> itr.get_next(datetime) # 4/6 13:27:15
+        
+        You can also note that this expression will repeat every second from 
the start datetime.
+        
+            >>> croniter('* * * * * *', local_date).get_next(datetime)
+        
+        Testing if a date matchs a crontab
+        ==================================
+        As simple as::
+         
+            >>> croniter.match("0 0 * * *", datetime(2019, 1, 14, 0, 0, 0, 0))
+            True
+            >>> croniter.match("0 0 * * *", datetime(2019, 1, 14, 0, 2, 0, 0))
+            False
+        
         Develop this package
         ====================
         
@@ -149,19 +173,31 @@
         Changelog
         ==============
         
+        0.3.32 (2020-05-27)
+        -------------------
+        
+        - document seconds repeats, fixes #122
+          [kiorky]
+        - Implement match method, fixes #54
+          [kiorky]
+        - Adding tests for #127 (test more DSTs and croniter behavior around)
+          [kiorky]
+        - Changed lag_hours comparison to absolute to manage dst boundary when 
getting previous
+          [Sokkka]
+        
         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)
         -------------------
         
         - credits
         
         
-        
         0.3.29 (2019-03-26)
         -------------------
         
@@ -341,5 +377,7 @@
 Classifier: Programming Language :: Python :: 3
 Classifier: Programming Language :: Python :: 3.4
 Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
 Classifier: Topic :: Software Development :: Libraries :: Python Modules
 Requires-Python: >=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/croniter-0.3.31/README.rst 
new/croniter-0.3.32/README.rst
--- old/croniter-0.3.31/README.rst      2020-01-02 16:22:28.000000000 +0100
+++ new/croniter-0.3.32/README.rst      2020-05-27 18:01:43.000000000 +0200
@@ -95,6 +95,30 @@
     >>> local_date = tz.localize(datetime(2017, 3, 26))
     >>> val = croniter('0 0 * * *', local_date).get_next(datetime)
 
+About second repeats
+=====================
+Croniter is able to do second repeatition crontabs form::
+
+    >>> croniter('* * * * * 1', local_date).get_next(datetime)
+    >>> base = datetime(2012, 4, 6, 13, 26, 10)
+    >>> itr = croniter('* * * * * 15,25', base)
+    >>> itr.get_next(datetime) # 4/6 13:26:15
+    >>> itr.get_next(datetime) # 4/6 13:26:25
+    >>> itr.get_next(datetime) # 4/6 13:27:15
+
+You can also note that this expression will repeat every second from the start 
datetime.
+
+    >>> croniter('* * * * * *', local_date).get_next(datetime)
+
+Testing if a date matchs a crontab
+==================================
+As simple as::
+ 
+    >>> croniter.match("0 0 * * *", datetime(2019, 1, 14, 0, 0, 0, 0))
+    True
+    >>> croniter.match("0 0 * * *", datetime(2019, 1, 14, 0, 2, 0, 0))
+    False
+
 Develop this package
 ====================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/croniter-0.3.31/docs/CHANGES.rst 
new/croniter-0.3.32/docs/CHANGES.rst
--- old/croniter-0.3.31/docs/CHANGES.rst        2020-01-02 16:22:28.000000000 
+0100
+++ new/croniter-0.3.32/docs/CHANGES.rst        2020-05-27 18:01:43.000000000 
+0200
@@ -1,19 +1,31 @@
 Changelog
 ==============
 
+0.3.32 (2020-05-27)
+-------------------
+
+- document seconds repeats, fixes #122
+  [kiorky]
+- Implement match method, fixes #54
+  [kiorky]
+- Adding tests for #127 (test more DSTs and croniter behavior around)
+  [kiorky]
+- Changed lag_hours comparison to absolute to manage dst boundary when getting 
previous
+  [Sokkka]
+
 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)
 -------------------
 
 - credits
 
 
-
 0.3.29 (2019-03-26)
 -------------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/croniter-0.3.31/requirements/base.txt 
new/croniter-0.3.32/requirements/base.txt
--- old/croniter-0.3.31/requirements/base.txt   2020-01-02 16:22:28.000000000 
+0100
+++ new/croniter-0.3.32/requirements/base.txt   2020-05-27 18:01:43.000000000 
+0200
@@ -1,2 +1,3 @@
 python_dateutil
+natsort
 -e .
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/croniter-0.3.31/requirements/test.txt 
new/croniter-0.3.32/requirements/test.txt
--- old/croniter-0.3.31/requirements/test.txt   2020-01-02 16:22:28.000000000 
+0100
+++ new/croniter-0.3.32/requirements/test.txt   2020-05-27 18:01:43.000000000 
+0200
@@ -5,4 +5,5 @@
 coverage>=4.2
 mock>=2.0.0  # For Python 2
 coveralls
-flake8
\ No newline at end of file
+flake8
+tzlocal
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/croniter-0.3.31/setup.cfg 
new/croniter-0.3.32/setup.cfg
--- old/croniter-0.3.31/setup.cfg       2020-01-02 16:22:28.000000000 +0100
+++ new/croniter-0.3.32/setup.cfg       2020-05-27 18:01:44.000000000 +0200
@@ -1,6 +1,10 @@
 [bdist_wheel]
 universal = 1
 
+[flake8]
+max-line-length = 120
+ignore = W504,W503
+
 [coverage:run]
 source = .
 branch = True
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/croniter-0.3.31/setup.py new/croniter-0.3.32/setup.py
--- old/croniter-0.3.31/setup.py        2020-01-02 16:22:28.000000000 +0100
+++ new/croniter-0.3.32/setup.py        2020-05-27 18:01:43.000000000 +0200
@@ -23,7 +23,7 @@
 
 setup(
     name='croniter',
-    version='0.3.31',
+    version='0.3.32',
     py_modules=['croniter', ],
     description=(
         'croniter provides iteration for datetime '
@@ -49,6 +49,8 @@
         "Programming Language :: Python :: 3",
         "Programming Language :: Python :: 3.4",
         "Programming Language :: Python :: 3.5",
+        "Programming Language :: Python :: 3.6",
+        "Programming Language :: Python :: 3.7",
         "Topic :: Software Development :: Libraries :: Python Modules"],
     packages=find_packages('src'),
     package_dir={'': 'src'},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/croniter-0.3.31/src/croniter/croniter.py 
new/croniter-0.3.32/src/croniter/croniter.py
--- old/croniter-0.3.31/src/croniter/croniter.py        2020-01-02 
16:22:28.000000000 +0100
+++ new/croniter-0.3.32/src/croniter/croniter.py        2020-05-27 
18:01:43.000000000 +0200
@@ -10,6 +10,7 @@
 from dateutil.relativedelta import relativedelta
 from dateutil.tz import tzutc
 import calendar
+import natsort
 
 step_search_re = re.compile(r'^([^-]+)-([^-/]+)(/(.*))?$')
 search_re = re.compile(r'^([^-]+)-([^-/]+)(/(.*))?$')
@@ -80,13 +81,11 @@
             start_time = time()
 
         self.tzinfo = None
-        if isinstance(start_time, datetime.datetime):
-            self.tzinfo = start_time.tzinfo
-            start_time = self._datetime_to_timestamp(start_time)
 
-        self.start_time = start_time
-        self.dst_start_time = start_time
-        self.cur = start_time
+        self.start_time = None
+        self.dst_start_time = None
+        self.cur = None
+        self.set_current(start_time)
 
         self.expanded, self.nth_weekday_of_month = self.expand(expr_format)
 
@@ -98,7 +97,9 @@
             raise CroniterNotAlphaError(
                 "[{0}] is not acceptable".format(" ".join(expressions)))
 
-    def get_next(self, ret_type=None):
+    def get_next(self, ret_type=None, start_time=None):
+        if start_time is not None:
+            self.set_current(start_time)
         return self._get_next(ret_type or self._ret_type, is_prev=False)
 
     def get_prev(self, ret_type=None):
@@ -106,10 +107,20 @@
 
     def get_current(self, ret_type=None):
         ret_type = ret_type or self._ret_type
-        if issubclass(ret_type,  datetime.datetime):
+        if issubclass(ret_type, datetime.datetime):
             return self._timestamp_to_datetime(self.cur)
         return self.cur
 
+    def set_current(self, start_time):
+        if isinstance(start_time, datetime.datetime):
+            self.tzinfo = start_time.tzinfo
+            start_time = self._datetime_to_timestamp(start_time)
+
+        self.start_time = start_time
+        self.dst_start_time = start_time
+        self.cur = start_time
+        return self.cur
+
     @classmethod
     def _datetime_to_timestamp(cls, d):
         """
@@ -202,16 +213,17 @@
         if dtresult and self.tzinfo:
             dtresult_utcoffset = dtresult.utcoffset()
             lag_hours = (
-                self._timedelta_to_seconds(dtresult - dtstarttime) / (60*60)
+                self._timedelta_to_seconds(dtresult - dtstarttime) / (60 * 60)
             )
             lag = self._timedelta_to_seconds(
                 dtresult_utcoffset - dtstarttime_utcoffset
             )
         hours_before_midnight = 24 - dtstarttime.hour
         if dtresult_utcoffset != dtstarttime_utcoffset:
-            if ((lag > 0 and lag_hours >= hours_before_midnight)
+            if (
+                (lag > 0 and abs(lag_hours) >= hours_before_midnight)
                 or (lag < 0 and
-                    ((3600*lag_hours+abs(lag)) >= hours_before_midnight*3600))
+                    ((3600 * abs(lag_hours) + abs(lag)) >= 
hours_before_midnight * 3600))
             ):
                 dtresult = dtresult - datetime.timedelta(seconds=lag)
                 result = self._datetime_to_timestamp(dtresult)
@@ -315,7 +327,8 @@
             for wday, nth in nth_weekday_of_month.items():
                 w = (wday + 6) % 7
                 c = calendar.Calendar(w).monthdayscalendar(d.year, d.month)
-                if c[0][0] == 0: c.pop(0)
+                if c[0][0] == 0:
+                    c.pop(0)
                 for n in nth:
                     if len(c) < n:
                         continue
@@ -522,19 +535,19 @@
                         raise CroniterBadCronError(
                             'invalid range: {0}'.format(exc))
                     e_list += (["{0}#{1}".format(item, nth) for item in rng]
-                        if i == 4 and nth else rng)
+                               if i == 4 and nth else rng)
                 else:
                     if t.startswith('-'):
-                        raise CroniterBadCronError(
-                            "[{0}] is not acceptable,\
-                            negative numbers not allowed".format(
-                                        expr_format))
+                        raise CroniterBadCronError((
+                            "[{0}] is not acceptable,"
+                            "negative numbers not allowed"
+                        ).format(expr_format))
                     if not star_or_int_re.search(t):
                         t = cls._alphaconv(i, t, expressions)
 
                     try:
                         t = int(t)
-                    except:
+                    except ValueError:
                         pass
 
                     if t in cls.LOWMAP[i]:
@@ -556,7 +569,7 @@
                             nth_weekday_of_month[t] = set()
                         nth_weekday_of_month[t].add(int(nth))
 
-            res.sort()
+            res = natsort.natsorted(res)
             expanded.append(['*'] if (len(res) == 1
                                       and res[0] == '*')
                             else res)
@@ -571,3 +584,11 @@
             return False
         else:
             return True
+
+    @classmethod
+    def match(cls, cron_expression, testdate):
+        cron = cls(cron_expression, testdate, ret_type=datetime.datetime)
+        td, ms1 = cron.get_current(datetime.datetime), 
relativedelta(microseconds=1)
+        cron.set_current(td + ms1)
+        tdp, tdt = cron.get_current(), cron.get_prev()
+        return (max(tdp, tdt) - min(tdp, tdt)).total_seconds() < 60
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/croniter-0.3.31/src/croniter/tests/test_croniter.py 
new/croniter-0.3.32/src/croniter/tests/test_croniter.py
--- old/croniter-0.3.31/src/croniter/tests/test_croniter.py     2020-01-02 
16:22:28.000000000 +0100
+++ new/croniter-0.3.32/src/croniter/tests/test_croniter.py     2020-05-27 
18:01:43.000000000 +0200
@@ -8,10 +8,22 @@
 import pytz
 from croniter import croniter, CroniterBadDateError, CroniterBadCronError, 
CroniterNotAlphaError
 from croniter.tests import base
+from tzlocal import get_localzone
 
 
 class CroniterTest(base.TestCase):
 
+    def testSecondSec(self):
+        base = datetime(2012, 4, 6, 13, 26, 10)
+        itr = croniter('* * * * * 15,25', base)
+        n = itr.get_next(datetime)
+        self.assertEqual(15, n.second)
+        n = itr.get_next(datetime)
+        self.assertEqual(25, n.second)
+        n = itr.get_next(datetime)
+        self.assertEqual(15, n.second)
+        self.assertEqual(27, n.minute)
+
     def testSecond(self):
         base = datetime(2012, 4, 6, 13, 26, 10)
         itr = croniter('*/1 * * * * *', base)
@@ -776,6 +788,27 @@
         lret1 = ['{0}'.format(d[1]) for d in local_dates]
         self.assertEqual(sret1, lret1)
 
+    def test_std_dst3(self):
+        """
+        DST tests
+
+        This fixes https://github.com/taichino/croniter/issues/90
+
+        Adelaide, Australia: 15/04/2020 00:00 -> 15/03/2020
+
+        """
+
+        tz = pytz.timezone('Australia/Adelaide')
+
+        schedule = croniter('0 0 24 * *', tz.localize(datetime(2020, 4,15)))
+        val1 = schedule.get_prev(datetime)
+        dt1 = tz.localize(datetime(2020, 3, 24))
+        self.assertEqual(val1, dt1)
+
+        val2 = schedule.get_next(datetime)
+        dt2 = tz.localize(datetime(2020, 4, 24))
+        self.assertEqual(val2, dt2)
+
     def test_error_alpha_cron(self):
         self.assertRaises(CroniterNotAlphaError, croniter.expand,
                           '* * * janu-jun *')
@@ -919,6 +952,78 @@
              '2019-01-26 00:00:03',
              '2019-01-27 00:00:04'])
 
+    def test_mixdow(self):
+        base = datetime(2018, 10, 1, 0, 0)
+        itr = croniter('1 1 7,14,21,L * *', base)
+        self.assertTrue(isinstance(itr.get_next(), float))
+
+    def test_match(self):
+        self.assertTrue(croniter.match(
+            "0 0 * * *",
+            datetime(2019, 1, 14, 0, 0, 0, 0)
+        ))
+        self.assertFalse(croniter.match(
+            "0 0 * * *",
+            datetime(2019, 1, 14, 0, 1, 0, 0)
+        ))
+        self.assertTrue(croniter.match(
+            "31 * * * *",
+            datetime(2019, 1, 14, 1, 31, 0, 0)
+        ))
+
+
+    def test_dst_issue90_st31ny(self):
+        tz = pytz.timezone("Europe/Paris")
+        now = datetime(2020, 3, 29, 1, 59, 55, tzinfo=tz)
+        it = croniter('1 2 * * *', now)
+        #
+        # Taking around DST @ 29/03/20 01:59
+        #
+        ret = [
+            it.get_next(datetime).isoformat(),
+            it.get_prev(datetime).isoformat(),
+            it.get_prev(datetime).isoformat(),
+            it.get_next(datetime).isoformat(),
+            it.get_next(datetime).isoformat(),
+        ]
+        self.assertEqual(ret, [
+            '2020-03-30T02:01:00+02:00',
+            '2020-03-29T01:01:00+01:00',
+            '2020-03-28T03:01:00+01:00',
+            '2020-03-29T02:01:00+02:00',
+            '2020-03-29T03:01:00+02:00'])
+        #
+        nowp = datetime(2020, 3, 28, 1, 58, 55, tzinfo=tz)
+        itp = croniter('1 2 * * *', nowp)
+        retp = [
+            itp.get_next(datetime).isoformat(),
+            itp.get_prev(datetime).isoformat(),
+            itp.get_prev(datetime).isoformat(),
+            itp.get_next(datetime).isoformat(),
+            itp.get_next(datetime).isoformat(),
+        ]
+        self.assertEqual(retp, [
+            '2020-03-29T02:01:00+02:00',
+            '2020-03-28T02:01:00+01:00',
+            '2020-03-27T02:01:00+01:00',
+            '2020-03-28T02:01:00+01:00',
+            '2020-03-29T03:01:00+02:00'])
+        #
+        nowt = datetime(2020, 3, 29, 2, 0, 0, tzinfo=tz)
+        itt = croniter('1 2 * * *', nowt)
+        rett = [
+            itt.get_next(datetime).isoformat(),
+            itt.get_prev(datetime).isoformat(),
+            itt.get_prev(datetime).isoformat(),
+            itt.get_next(datetime).isoformat(),
+            itt.get_next(datetime).isoformat(),
+        ]
+        self.assertEqual(ret, [
+            '2020-03-30T02:01:00+02:00',
+            '2020-03-29T01:01:00+01:00',
+            '2020-03-28T03:01:00+01:00',
+            '2020-03-29T02:01:00+02:00',
+            '2020-03-29T03:01:00+02:00'])
 
 if __name__ == '__main__':
     unittest.main()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/croniter-0.3.31/src/croniter.egg-info/PKG-INFO 
new/croniter-0.3.32/src/croniter.egg-info/PKG-INFO
--- old/croniter-0.3.31/src/croniter.egg-info/PKG-INFO  2020-01-02 
16:22:28.000000000 +0100
+++ new/croniter-0.3.32/src/croniter.egg-info/PKG-INFO  2020-05-27 
18:01:44.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.2
 Name: croniter
-Version: 0.3.31
+Version: 0.3.32
 Summary: croniter provides iteration for datetime object with cron like format
 Home-page: http://github.com/kiorky/croniter
 Author: Matsumoto Taichi, kiorky
@@ -103,6 +103,30 @@
             >>> local_date = tz.localize(datetime(2017, 3, 26))
             >>> val = croniter('0 0 * * *', local_date).get_next(datetime)
         
+        About second repeats
+        =====================
+        Croniter is able to do second repeatition crontabs form::
+        
+            >>> croniter('* * * * * 1', local_date).get_next(datetime)
+            >>> base = datetime(2012, 4, 6, 13, 26, 10)
+            >>> itr = croniter('* * * * * 15,25', base)
+            >>> itr.get_next(datetime) # 4/6 13:26:15
+            >>> itr.get_next(datetime) # 4/6 13:26:25
+            >>> itr.get_next(datetime) # 4/6 13:27:15
+        
+        You can also note that this expression will repeat every second from 
the start datetime.
+        
+            >>> croniter('* * * * * *', local_date).get_next(datetime)
+        
+        Testing if a date matchs a crontab
+        ==================================
+        As simple as::
+         
+            >>> croniter.match("0 0 * * *", datetime(2019, 1, 14, 0, 0, 0, 0))
+            True
+            >>> croniter.match("0 0 * * *", datetime(2019, 1, 14, 0, 2, 0, 0))
+            False
+        
         Develop this package
         ====================
         
@@ -149,19 +173,31 @@
         Changelog
         ==============
         
+        0.3.32 (2020-05-27)
+        -------------------
+        
+        - document seconds repeats, fixes #122
+          [kiorky]
+        - Implement match method, fixes #54
+          [kiorky]
+        - Adding tests for #127 (test more DSTs and croniter behavior around)
+          [kiorky]
+        - Changed lag_hours comparison to absolute to manage dst boundary when 
getting previous
+          [Sokkka]
+        
         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)
         -------------------
         
         - credits
         
         
-        
         0.3.29 (2019-03-26)
         -------------------
         
@@ -341,5 +377,7 @@
 Classifier: Programming Language :: Python :: 3
 Classifier: Programming Language :: Python :: 3.4
 Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
 Classifier: Topic :: Software Development :: Libraries :: Python Modules
 Requires-Python: >=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/croniter-0.3.31/src/croniter.egg-info/requires.txt 
new/croniter-0.3.32/src/croniter.egg-info/requires.txt
--- old/croniter-0.3.31/src/croniter.egg-info/requires.txt      2020-01-02 
16:22:28.000000000 +0100
+++ new/croniter-0.3.32/src/croniter.egg-info/requires.txt      2020-05-27 
18:01:44.000000000 +0200
@@ -1 +1,2 @@
 python_dateutil
+natsort
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/croniter-0.3.31/tox.ini new/croniter-0.3.32/tox.ini
--- old/croniter-0.3.31/tox.ini 2020-01-02 16:22:28.000000000 +0100
+++ new/croniter-0.3.32/tox.ini 2020-05-27 18:01:43.000000000 +0200
@@ -1,7 +1,7 @@
 [tox]
 minversion = 2.3
 envlist =
-    {py26,py27,py34,py35}-std
+    {py26,py27,py34,py35,py36,py37}-std
     py27-coverage
 skipsdist = true
 
@@ -14,9 +14,8 @@
     COVERAGE_FILE={envdir}/coverage_report
 changedir = src
 commands =
-    {py26,py27,py34,py35,py36}-std: py.test -v .
-    {py27,py34,py35,py36}-std: flake8 src/croniter/croniter.py
+    {py26,py27,py34,py35,py36,py37}-std: py.test -v .
+    {py27,py34,py35,py36,py37}-std: flake8 croniter/croniter.py
     py27-coverage: coverage erase
     py27-coverage: sh -c 'cd .. && coverage run $(which py.test) -v src'
     py27-coverage: coverage report
-


Reply via email to