Hello community,

here is the log from the commit of package python-dateutil for openSUSE:Factory 
checked in at 2015-08-07 00:22:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-dateutil (Old)
 and      /work/SRC/openSUSE:Factory/.python-dateutil.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-dateutil"

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-dateutil/python-dateutil.changes  
2013-10-25 11:13:02.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-dateutil.new/python-dateutil.changes     
2015-08-07 00:22:23.000000000 +0200
@@ -1,0 +2,9 @@
+Mon Jul 27 19:01:48 UTC 2015 - aloi...@gmx.com
+
+- Update to version 2.2:
+  * Updated zoneinfo to 2013h
+  * fuzzy_with_tokens parse addon from Christopher Corley
+  * Bug with LANG=C fixed by Mike Gilbert 
+- Aligned requirement version with PyPI
+
+-------------------------------------------------------------------

Old:
----
  python-dateutil-2.1.tar.gz

New:
----
  python-dateutil-2.2.tar.gz

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

Other differences:
------------------
++++++ python-dateutil.spec ++++++
--- /var/tmp/diff_new_pack.mFirsP/_old  2015-08-07 00:22:24.000000000 +0200
+++ /var/tmp/diff_new_pack.mFirsP/_new  2015-08-07 00:22:24.000000000 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package python-dateutil
 #
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -21,15 +21,15 @@
 Summary:        A Python Datetime Library
 License:        BSD-3-Clause
 Group:          Development/Libraries/Python
-Version:        2.1
+Version:        2.2
 Release:        0
 Source0:        
http://pypi.python.org/packages/source/p/%{name}/%{name}-%{version}.tar.gz
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 Url:            http://labix.org/python-dateutil
 BuildRequires:  python-devel
-BuildRequires:  python-setuptools
-BuildRequires:  python-six
-Requires:       python-six
+BuildRequires:  python-setuptools >= 18.0.1
+BuildRequires:  python-six >= 1.9.0
+Requires:       python-six >= 1.9.0
 %if 0%{?suse_version} <= 1110
 %{!?python_sitelib: %global python_sitelib %(python -c "from 
distutils.sysconfig import get_python_lib; print(get_python_lib())")}
 %else

++++++ python-dateutil-2.1.tar.gz -> python-dateutil-2.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-dateutil-2.1/NEWS new/python-dateutil-2.2/NEWS
--- old/python-dateutil-2.1/NEWS        2012-03-28 17:57:55.000000000 +0200
+++ new/python-dateutil-2.2/NEWS        2013-10-31 15:00:03.000000000 +0100
@@ -1,3 +1,12 @@
+Version 2.2
+-----------
+
+- Updated zoneinfo to 2013h
+
+- fuzzy_with_tokens parse addon from Christopher Corley
+
+- Bug with LANG=C fixed by Mike Gilbert
+
 Version 2.1
 -----------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-dateutil-2.1/PKG-INFO 
new/python-dateutil-2.2/PKG-INFO
--- old/python-dateutil-2.1/PKG-INFO    2012-03-28 18:03:08.000000000 +0200
+++ new/python-dateutil-2.2/PKG-INFO    2013-11-01 09:33:53.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: python-dateutil
-Version: 2.1
+Version: 2.2
 Summary: Extensions to the standard Python datetime module
 Home-page: http://labix.org/python-dateutil
 Author: Tomi Pievilaeinen
@@ -10,4 +10,15 @@
         datetime module available in the Python standard library.
         
 Platform: UNKNOWN
+Classifier: Development Status :: 5 - Production/Stable
+Classifier: Intended Audience :: Developers
+Classifier: License :: OSI Approved :: BSD License
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 2
+Classifier: Programming Language :: Python :: 2.6
+Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.2
+Classifier: Programming Language :: Python :: 3.3
+Classifier: Topic :: Software Development :: Libraries
 Requires: six
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-dateutil-2.1/README 
new/python-dateutil-2.2/README
--- old/python-dateutil-2.1/README      2012-03-28 16:25:43.000000000 +0200
+++ new/python-dateutil-2.2/README      2013-11-01 09:31:13.000000000 +0100
@@ -80,7 +80,9 @@
   * attachment:python-dateutil-1.0-1.noarch.rpm
 
 == Author ==
-The dateutil module was written by GustavoNiemeyer <gust...@niemeyer.net>.
+The dateutil module was written by Gustavo Niemeyer <gust...@niemeyer.net> and
+is currently maintained by Tomi Pieviläinen <tomi.pievilai...@iki.fi>. The 
latest
+code is available in [https://launchpad.net/dateutil Launchpad].
 
 == Documentation ==
 The following modules are available.
@@ -1204,6 +1206,10 @@
     If {{{fuzzy}}} is set to True, unknown tokens in the string
     will be ignored.
 
+    fuzzy_with_tokens::
+    Similar to {{{fuzzy}}}, but will result a tuple of the normal
+    results and the skipped tokens.
+
     parserinfo::
     This parameter allows one to change how the string is parsed,
     by using a different parserinfo class instance. Using it you
@@ -1967,4 +1973,21 @@
 tzfile('Brazil/East')
 }}}
 
+== Building ==
+When you get the source, it does not contain the internal zoneinfo
+database. To get (and update) the database, run the updatezinfo.py script. 
Make sure
+that the zic command is in your path, and that you have network connectivity
+to get the latest timezone information from IANA. If you have downloaded
+the timezone data earlier, you can give the tarball as a parameter to
+updatezinfo.py.
+
+
+== Testing ==
+dateutil has a comprehensive test suite, which can be run simply by running the
+test.py script in the project root. Note that if you don't have the internal
+zoneinfo database, some tests will fail. Apart from that, all tests should 
pass.
+
+To easily test dateutil against all supported Python versions, you can use
+[[[http://tox.readthedocs.org/en/latest/ tox]]].
+
 ## vim:ft=moin
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-dateutil-2.1/dateutil/__init__.py 
new/python-dateutil-2.2/dateutil/__init__.py
--- old/python-dateutil-2.1/dateutil/__init__.py        2012-03-28 
16:25:44.000000000 +0200
+++ new/python-dateutil-2.2/dateutil/__init__.py        2013-10-31 
14:59:43.000000000 +0100
@@ -7,4 +7,4 @@
 """
 __author__ = "Tomi Pieviläinen <tomi.pievilai...@iki.fi>"
 __license__ = "Simplified BSD"
-__version__ = "2.1"
+__version__ = "2.2"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-dateutil-2.1/dateutil/parser.py 
new/python-dateutil-2.2/dateutil/parser.py
--- old/python-dateutil-2.1/dateutil/parser.py  2012-03-28 16:25:44.000000000 
+0200
+++ new/python-dateutil-2.2/dateutil/parser.py  2013-10-31 14:53:37.000000000 
+0100
@@ -174,7 +174,7 @@
     # m from a.m/p.m, t from ISO T separator
     JUMP = [" ", ".", ",", ";", "-", "/", "'",
             "at", "on", "and", "ad", "m", "t", "of",
-            "st", "nd", "rd", "th"] 
+            "st", "nd", "rd", "th"]
 
     WEEKDAYS = [("Mon", "Monday"),
                 ("Tue", "Tuesday"),
@@ -305,7 +305,10 @@
         if not default:
             default = datetime.datetime.now().replace(hour=0, minute=0,
                                                       second=0, microsecond=0)
-        res = self._parse(timestr, **kwargs)
+
+
+        res, skipped_tokens = self._parse(timestr, **kwargs)
+
         if res is None:
             raise ValueError("unknown string format")
         repl = {}
@@ -339,6 +342,10 @@
                 ret = ret.replace(tzinfo=tz.tzutc())
             elif res.tzoffset:
                 ret = ret.replace(tzinfo=tz.tzoffset(res.tzname, res.tzoffset))
+
+        if skipped_tokens:
+            return ret, skipped_tokens
+
         return ret
 
     class _result(_resultbase):
@@ -346,7 +353,10 @@
                      "hour", "minute", "second", "microsecond",
                      "tzname", "tzoffset"]
 
-    def _parse(self, timestr, dayfirst=None, yearfirst=None, fuzzy=False):
+    def _parse(self, timestr, dayfirst=None, yearfirst=None, fuzzy=False, 
fuzzy_with_tokens=False):
+        if fuzzy_with_tokens:
+            fuzzy = True
+
         info = self.info
         if dayfirst is None:
             dayfirst = info.dayfirst
@@ -354,6 +364,13 @@
             yearfirst = info.yearfirst
         res = self._result()
         l = _timelex.split(timestr)
+
+
+        # keep up with the last token skipped so we can recombine
+        # consecutively skipped tokens (-2 for when i begins at 0).
+        last_skipped_token_i = -2
+        skipped_tokens = list()
+
         try:
 
             # year/month/day list
@@ -387,7 +404,7 @@
                             res.minute = int(s[2:])
                     elif len_li == 6 or (len_li > 6 and l[i-1].find('.') == 6):
                         # YYMMDD or HHMMSS[.ss]
-                        s = l[i-1] 
+                        s = l[i-1]
                         if not ymd and l[i-1].find('.') == -1:
                             ymd.append(info.convertyear(int(s[:2])))
                             ymd.append(int(s[2:4]))
@@ -636,6 +653,13 @@
                 if not (info.jump(l[i]) or fuzzy):
                     return None
 
+                if last_skipped_token_i == i - 1:
+                    # recombine the tokens
+                    skipped_tokens[-1] += l[i]
+                else:
+                    # just append
+                    skipped_tokens.append(l[i])
+                last_skipped_token_i = i
                 i += 1
 
             # Process year/month/day
@@ -705,7 +729,11 @@
 
         if not info.validate(res):
             return None
-        return res
+
+        if fuzzy_with_tokens:
+            return res, tuple(skipped_tokens)
+
+        return res, None
 
 DEFAULTPARSER = parser()
 def parse(timestr, parserinfo=None, **kwargs):
@@ -888,7 +916,7 @@
 
         except (IndexError, ValueError, AssertionError):
             return None
-        
+
         return res
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-dateutil-2.1/dateutil/zoneinfo/__init__.py 
new/python-dateutil-2.2/dateutil/zoneinfo/__init__.py
--- old/python-dateutil-2.1/dateutil/zoneinfo/__init__.py       2012-03-28 
17:57:55.000000000 +0200
+++ new/python-dateutil-2.2/dateutil/zoneinfo/__init__.py       2013-10-31 
14:53:17.000000000 +0100
@@ -5,9 +5,12 @@
 This module offers extensions to the standard Python
 datetime module.
 """
-from dateutil.tz import tzfile
-from tarfile import TarFile
+import logging
 import os
+from subprocess import call
+from tarfile import TarFile
+
+from dateutil.tz import tzfile
 
 __author__ = "Tomi Pieviläinen <tomi.pievilai...@iki.fi>"
 __license__ = "Simplified BSD"
@@ -58,6 +61,11 @@
     return tzinfo
 
 def rebuild(filename, tag=None, format="gz"):
+    """Rebuild the internal timezone info in dateutil/zoneinfo/zoneinfo*tar*
+
+    filename is the timezone tarball from ftp.iana.org/tz.
+
+    """
     import tempfile, shutil
     tmpdir = tempfile.mkdtemp()
     zonedir = os.path.join(tmpdir, "zoneinfo")
@@ -75,7 +83,18 @@
                     name == "leapseconds"):
                 tf.extract(name, tmpdir)
                 filepath = os.path.join(tmpdir, name)
-                os.system("zic -d %s %s" % (zonedir, filepath))
+                try:
+                    # zic will return errors for nontz files in the package
+                    # such as the Makefile or README, so check_call cannot
+                    # be used (or at least extra checks would be needed)
+                    call(["zic", "-d", zonedir, filepath])
+                except OSError as e:
+                    if e.errno == 2:
+                        logging.error(
+                            "Could not find zic. Perhaps you need to install "
+                            "libc-bin or some other package that provides it, "
+                            "or it's not in your PATH?")
+                    raise
         tf.close()
         target = os.path.join(moduledir, targetname)
         for entry in os.listdir(moduledir):
Files old/python-dateutil-2.1/dateutil/zoneinfo/zoneinfo--latest.tar.gz and 
new/python-dateutil-2.2/dateutil/zoneinfo/zoneinfo--latest.tar.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-dateutil-2.1/python_dateutil.egg-info/PKG-INFO 
new/python-dateutil-2.2/python_dateutil.egg-info/PKG-INFO
--- old/python-dateutil-2.1/python_dateutil.egg-info/PKG-INFO   2012-03-28 
18:03:08.000000000 +0200
+++ new/python-dateutil-2.2/python_dateutil.egg-info/PKG-INFO   2013-11-01 
09:33:53.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: python-dateutil
-Version: 2.1
+Version: 2.2
 Summary: Extensions to the standard Python datetime module
 Home-page: http://labix.org/python-dateutil
 Author: Tomi Pievilaeinen
@@ -10,4 +10,15 @@
         datetime module available in the Python standard library.
         
 Platform: UNKNOWN
+Classifier: Development Status :: 5 - Production/Stable
+Classifier: Intended Audience :: Developers
+Classifier: License :: OSI Approved :: BSD License
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 2
+Classifier: Programming Language :: Python :: 2.6
+Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.2
+Classifier: Programming Language :: Python :: 3.3
+Classifier: Topic :: Software Development :: Libraries
 Requires: six
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-dateutil-2.1/setup.py 
new/python-dateutil-2.2/setup.py
--- old/python-dateutil-2.1/setup.py    2012-03-28 17:57:55.000000000 +0200
+++ new/python-dateutil-2.2/setup.py    2013-11-01 09:32:03.000000000 +0100
@@ -1,5 +1,6 @@
 #!/usr/bin/python
 from os.path import isfile, join
+import codecs
 import glob
 import os
 import re
@@ -13,7 +14,7 @@
 
 TOPDIR = os.path.dirname(__file__) or "."
 VERSION = re.search('__version__ = "([^"]+)"',
-                    open(TOPDIR + "/dateutil/__init__.py").read()).group(1)
+                    codecs.open(TOPDIR + "/dateutil/__init__.py", 
encoding='utf-8').read()).group(1)
 
 
 setup(name="python-dateutil",
@@ -34,4 +35,17 @@
       zip_safe = False,
       requires = ["six"],
       install_requires = ["six"], # XXX fix when packaging is sane again
+      classifiers = [
+          'Development Status :: 5 - Production/Stable',
+          'Intended Audience :: Developers',
+          'License :: OSI Approved :: BSD License',
+          'Programming Language :: Python',
+          'Programming Language :: Python :: 2',
+          'Programming Language :: Python :: 2.6',
+          'Programming Language :: Python :: 2.7',
+          'Programming Language :: Python :: 3',
+          'Programming Language :: Python :: 3.2',
+          'Programming Language :: Python :: 3.3',
+          'Topic :: Software Development :: Libraries',
+      ]
       )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-dateutil-2.1/test.py 
new/python-dateutil-2.2/test.py
--- old/python-dateutil-2.1/test.py     2012-03-28 16:25:46.000000000 +0200
+++ new/python-dateutil-2.2/test.py     2013-11-01 09:29:40.000000000 +0100
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python
 # -*- encoding: utf-8 -*-
 from __future__ import unicode_literals
 
@@ -10,14 +10,14 @@
 
 # Add build directory to search path
 if os.path.exists("build"):
-       from distutils.util import get_platform
-       import sys
-       if sys.version_info >= (3, 2):
-               s = "build/lib"
-       else:
-               s = "build/lib.%s-%.3s" % (get_platform(), sys.version)
-       s = os.path.join(os.getcwd(), s)
-       sys.path.insert(0, s)
+    from distutils.util import get_platform
+    import sys
+    if sys.version_info >= (3, 2):
+        s = "build/lib"
+    else:
+        s = "build/lib.%s-%.3s" % (get_platform(), sys.version)
+    s = os.path.join(os.getcwd(), s)
+    sys.path.insert(0, s)
 
 from dateutil.relativedelta import *
 from dateutil.parser import *
@@ -3447,7 +3447,7 @@
     def testLongMonth(self):
         self.assertEqual(parse("October", default=self.default),
                          datetime(2003, 10, 25))
-        
+
     def testZeroYear(self):
         self.assertEqual(parse("31-Dec-00", default=self.default),
                          datetime(2000, 12, 31))
@@ -3458,6 +3458,16 @@
         self.assertEqual(parse(s, fuzzy=True),
                          datetime(2003, 9, 25, 10, 49, 41,
                                   tzinfo=self.brsttz))
+    def testFuzzyWithTokens(self):
+        s = "Today is 25 of September of 2003, exactly " \
+            "at 10:49:41 with timezone -03:00."
+        self.assertEqual(parse(s, fuzzy_with_tokens=True),
+                (datetime(2003, 9, 25, 10, 49, 41,
+                    tzinfo=self.brsttz),
+                    ('Today is ', 'of ', ', exactly at ',
+                        ' with timezone ', '.')
+                    )
+                )
 
     def testExtraSpace(self):
         self.assertEqual(parse("  July   4 ,  1976   12:01:02   am  "),
@@ -3907,7 +3917,7 @@
     def testStrCmp1(self):
         self.assertEqual(tzstr("EST5EDT"),
                          tzstr("EST5EDT4,M4.1.0/02:00:00,M10-5-0/02:00"))
-        
+
     def testStrCmp2(self):
         self.assertEqual(tzstr("EST5EDT"),
                          tzstr("EST5EDT,4,1,0,7200,10,-1,0,7200,3600"))
@@ -3930,7 +3940,7 @@
         tz = tzfile(BytesIO(base64.decodestring(self.TZFILE_EST5EDT)))
         self.assertEqual(datetime(2003, 4, 6, 1, 59, tzinfo=tz).tzname(), 
"EST")
         self.assertEqual(datetime(2003, 4, 6, 2, 00, tzinfo=tz).tzname(), 
"EDT")
-        
+
     def testFileEnd1(self):
         tz = tzfile(BytesIO(base64.decodestring(self.TZFILE_EST5EDT)))
         self.assertEqual(datetime(2003, 10, 26, 0, 59, tzinfo=tz).tzname(), 
"EDT")
@@ -4007,6 +4017,6 @@
 
 
 if __name__ == "__main__":
-       unittest.main()
+    unittest.main()
 
 # vim:ts=4:sw=4


Reply via email to