Hello community,

here is the log from the commit of package python-validators for 
openSUSE:Factory checked in at 2019-03-29 20:43:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-validators (Old)
 and      /work/SRC/openSUSE:Factory/.python-validators.new.25356 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-validators"

Fri Mar 29 20:43:27 2019 rev:3 rq:689786 version:0.12.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-validators/python-validators.changes      
2018-12-24 11:45:46.721218839 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-validators.new.25356/python-validators.changes
   2019-03-29 20:43:27.802678448 +0100
@@ -1,0 +2,12 @@
+Fri Mar 29 10:01:10 UTC 2019 - [email protected]
+
+- version update to 0.12.4
+  * Use inspect.getfullargspec() in py3
+  * Added `allow_temporal_ssn` parameter to fi_ssn validator
+  * Remove py33 support
+  * Fixed IPv4 formatted IP address returning True on ipv6
+  * Fixed IPv6 address parsing
+  * Fixed domain validator for international domains and certain 
+    edge cases
+
+-------------------------------------------------------------------

Old:
----
  validators-0.12.1.tar.gz

New:
----
  validators-0.12.4.tar.gz

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

Other differences:
------------------
++++++ python-validators.spec ++++++
--- /var/tmp/diff_new_pack.ZUUooD/_old  2019-03-29 20:43:28.366678562 +0100
+++ /var/tmp/diff_new_pack.ZUUooD/_new  2019-03-29 20:43:28.366678562 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-validators
 #
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 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
@@ -18,7 +18,7 @@
 
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 Name:           python-validators
-Version:        0.12.1
+Version:        0.12.4
 Release:        0
 Summary:        Python Data Validation
 License:        MIT

++++++ validators-0.12.1.tar.gz -> validators-0.12.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/validators-0.12.1/CHANGES.rst 
new/validators-0.12.4/CHANGES.rst
--- old/validators-0.12.1/CHANGES.rst   2018-01-30 10:41:55.000000000 +0100
+++ new/validators-0.12.4/CHANGES.rst   2019-01-02 16:38:52.000000000 +0100
@@ -2,6 +2,27 @@
 ---------
 
 
+0.12.4 (2019-01-02)
+^^^^^^^^^^^^^^^^^^^
+
+- Use inspect.getfullargspec() in py3 (#110, pull request courtesy riconnon)
+
+
+0.12.3 (2018-11-13)
+^^^^^^^^^^^^^^^^^^^
+
+- Added `allow_temporal_ssn` parameter to fi_ssn validator (#97, pull request 
courtesy quantus)
+- Remove py33 support
+
+
+0.12.2 (2018-06-03)
+^^^^^^^^^^^^^^^^^^^
+
+- Fixed IPv4 formatted IP address returning True on ipv6 (#85, pull request 
courtesy johndlong)
+- Fixed IPv6 address parsing (#83, pull request courtesy JulianKahnert)
+- Fixed domain validator for international domains and certain edge cases 
(#76, pull request courtesy Ni-Knight)
+
+
 0.12.1 (2018-01-30)
 ^^^^^^^^^^^^^^^^^^^
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/validators-0.12.1/PKG-INFO 
new/validators-0.12.4/PKG-INFO
--- old/validators-0.12.1/PKG-INFO      2018-01-30 10:46:27.000000000 +0100
+++ new/validators-0.12.4/PKG-INFO      2019-01-02 16:44:04.000000000 +0100
@@ -1,12 +1,11 @@
-Metadata-Version: 1.1
+Metadata-Version: 2.1
 Name: validators
-Version: 0.12.1
+Version: 0.12.4
 Summary: Python Data Validation for Humans™.
 Home-page: https://github.com/kvesteri/validators
 Author: Konsta Vesterinen
 Author-email: [email protected]
 License: BSD
-Description-Content-Type: UNKNOWN
 Description: 
         validators
         ----------
@@ -22,11 +21,12 @@
 Classifier: Programming Language :: Python :: 2
 Classifier: Programming Language :: Python :: 2.7
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.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: Programming Language :: Python :: Implementation :: CPython
 Classifier: Programming Language :: Python :: Implementation :: PyPy
 Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
 Classifier: Topic :: Software Development :: Libraries :: Python Modules
+Provides-Extra: test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/validators-0.12.1/README.rst 
new/validators-0.12.4/README.rst
--- old/validators-0.12.1/README.rst    2016-06-11 07:39:46.000000000 +0200
+++ new/validators-0.12.4/README.rst    2019-01-02 16:37:15.000000000 +0100
@@ -26,7 +26,7 @@
 - `Code <http://github.com/kvesteri/validators/>`_
 
 
-.. |Build Status| image:: 
https://travis-ci.org/kvesteri/validators.png?branch=master
+.. |Build Status| image:: 
https://travis-ci.org/kvesteri/validators.svg?branch=master
    :target: https://travis-ci.org/kvesteri/validators
 .. |Version Status| image:: https://img.shields.io/pypi/v/validators.svg
    :target: https://pypi.python.org/pypi/validators/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/validators-0.12.1/setup.py 
new/validators-0.12.4/setup.py
--- old/validators-0.12.1/setup.py      2017-03-27 14:45:54.000000000 +0200
+++ new/validators-0.12.4/setup.py      2018-11-13 13:33:50.000000000 +0100
@@ -62,10 +62,10 @@
         'Programming Language :: Python :: 2',
         'Programming Language :: Python :: 2.7',
         'Programming Language :: Python :: 3',
-        'Programming Language :: Python :: 3.3',
         'Programming Language :: Python :: 3.4',
         'Programming Language :: Python :: 3.5',
         'Programming Language :: Python :: 3.6',
+        'Programming Language :: Python :: 3.7',
         'Programming Language :: Python :: Implementation :: CPython',
         'Programming Language :: Python :: Implementation :: PyPy',
         'Topic :: Internet :: WWW/HTTP :: Dynamic Content',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/validators-0.12.1/tests/i18n/test_fi.py 
new/validators-0.12.4/tests/i18n/test_fi.py
--- old/validators-0.12.1/tests/i18n/test_fi.py 2015-10-10 08:47:39.000000000 
+0200
+++ new/validators-0.12.4/tests/i18n/test_fi.py 2018-11-13 13:11:17.000000000 
+0100
@@ -25,9 +25,11 @@
 
 
 @pytest.mark.parametrize(('value',), [
+    ('010190-002R',),
     ('010101-0101',),
     ('010101+0101',),
     ('010101A0101',),
+    ('010190-900P',),
 ])
 def test_returns_true_on_valid_ssn(value):
     assert fi_ssn(value)
@@ -36,6 +38,11 @@
 @pytest.mark.parametrize(('value',), [
     (None,),
     ('',),
+    ('010190-001P',),  # Too low serial
+    ('010190-000N',),  # Too low serial
+    ('000190-0023',),  # Invalid day
+    ('010090-002X',),  # Invalid month
+    ('010190-002r',),  # Invalid checksum
     ('101010-0102',),
     ('10a010-0101',),
     ('101010-0\xe401',),
@@ -43,3 +50,10 @@
 ])
 def test_returns_failed_validation_on_invalid_ssn(value):
     assert isinstance(fi_ssn(value), ValidationFailure)
+
+
+def test_returns_failed_validation_on_temporal_ssn_when_not_allowed():
+    assert isinstance(
+        fi_ssn('010190-900P', allow_temporal_ssn=False),
+        ValidationFailure
+    )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/validators-0.12.1/tests/test_domain.py 
new/validators-0.12.4/tests/test_domain.py
--- old/validators-0.12.1/tests/test_domain.py  2018-01-30 10:36:27.000000000 
+0100
+++ new/validators-0.12.4/tests/test_domain.py  2018-06-03 12:00:00.000000000 
+0200
@@ -23,6 +23,7 @@
     'example.',
     '-example.com',
     'example',
+    'a......b.com'
 ])
 def test_returns_failed_validation_on_invalid_domain(value):
     assert isinstance(domain(value), ValidationFailure)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/validators-0.12.1/tests/test_ipv4.py 
new/validators-0.12.4/tests/test_ipv4.py
--- old/validators-0.12.1/tests/test_ipv4.py    2015-10-10 08:47:39.000000000 
+0200
+++ new/validators-0.12.4/tests/test_ipv4.py    2018-06-03 11:52:26.000000000 
+0200
@@ -1,7 +1,7 @@
 # -*- coding: utf-8 -*-
 import pytest
 
-from validators import ipv4, ValidationFailure
+from validators import ipv4, ipv6, ValidationFailure
 
 
 @pytest.mark.parametrize(('address',), [
@@ -11,6 +11,7 @@
 ])
 def test_returns_true_on_valid_ipv4_address(address):
     assert ipv4(address)
+    assert not ipv6(address)
 
 
 @pytest.mark.parametrize(('address',), [
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/validators-0.12.1/tests/test_ipv6.py 
new/validators-0.12.4/tests/test_ipv6.py
--- old/validators-0.12.1/tests/test_ipv6.py    2017-06-03 16:07:19.000000000 
+0200
+++ new/validators-0.12.4/tests/test_ipv6.py    2018-06-03 11:52:26.000000000 
+0200
@@ -1,7 +1,7 @@
 # -*- coding: utf-8 -*-
 import pytest
 
-from validators import ipv6, ValidationFailure
+from validators import ipv4, ipv6, ValidationFailure
 
 
 @pytest.mark.parametrize(('address',), [
@@ -13,6 +13,7 @@
 ])
 def test_returns_true_on_valid_ipv6_address(address):
     assert ipv6(address)
+    assert not ipv4(address)
 
 
 @pytest.mark.parametrize(('address',), [
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/validators-0.12.1/tests/test_url.py 
new/validators-0.12.4/tests/test_url.py
--- old/validators-0.12.1/tests/test_url.py     2018-01-30 10:40:56.000000000 
+0100
+++ new/validators-0.12.4/tests/test_url.py     2018-06-03 11:57:14.000000000 
+0200
@@ -52,6 +52,13 @@
     u'http://127.0.10.150',
     u'http://localhost',
     u'http://localhost:8000',
+    u'http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80/index.html',
+    u'http://[1080:0:0:0:8:800:200C:417A]/index.html',
+    u'http://[3ffe:2a00:100:7031::1]',
+    u'http://[1080::8:800:200C:417A]/foo',
+    u'http://[::192.9.5.5]/ipng',
+    u'http://[::FFFF:129.144.52.38]:80/index.html',
+    u'http://[2010:836B:4179::836B:4179]',
 ])
 def test_returns_true_on_valid_url(address):
     assert url(address)
@@ -118,6 +125,9 @@
     'http://.www.foo.bar./',
     'http://127.12.0.260',
     'http://example.com/";>[email protected]',
+    'http://[2010:836B:4179::836B:4179',
+    'http://2010:836B:4179::836B:4179',
+    'http://2010:836B:4179::836B:4179:80/index.html',
 ])
 def test_returns_failed_validation_on_invalid_url(address):
     assert isinstance(url(address), ValidationFailure)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/validators-0.12.1/validators/__init__.py 
new/validators-0.12.4/validators/__init__.py
--- old/validators-0.12.1/validators/__init__.py        2018-01-30 
10:37:48.000000000 +0100
+++ new/validators-0.12.4/validators/__init__.py        2019-01-02 
16:38:55.000000000 +0100
@@ -14,4 +14,4 @@
 from .utils import ValidationFailure, validator  # noqa
 from .uuid import uuid  # noqa
 
-__version__ = '0.12.1'
+__version__ = '0.12.4'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/validators-0.12.1/validators/domain.py 
new/validators-0.12.4/validators/domain.py
--- old/validators-0.12.1/validators/domain.py  2018-01-30 10:36:27.000000000 
+0100
+++ new/validators-0.12.4/validators/domain.py  2018-06-03 12:00:00.000000000 
+0200
@@ -3,9 +3,9 @@
 from .utils import validator
 
 pattern = re.compile(
-    r'^(([a-zA-Z]{1})|([a-zA-Z]{1}[a-zA-Z]{1})|'  # domain pt.1
+    r'^(:?(([a-zA-Z]{1})|([a-zA-Z]{1}[a-zA-Z]{1})|'  # domain pt.1
     r'([a-zA-Z]{1}[0-9]{1})|([0-9]{1}[a-zA-Z]{1})|'  # domain pt.2
-    r'([a-zA-Z0-9][-_.a-zA-Z0-9]{0,61}[a-zA-Z0-9]))\.'  # domain pt.3
+    r'([a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]))\.)+'  # domain pt.3
     r'([a-zA-Z]{2,13}|(xn--[a-zA-Z0-9]{2,30}))$'  # TLD
 )
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/validators-0.12.1/validators/i18n/fi.py 
new/validators-0.12.4/validators/i18n/fi.py
--- old/validators-0.12.1/validators/i18n/fi.py 2015-10-10 08:47:54.000000000 
+0200
+++ new/validators-0.12.4/validators/i18n/fi.py 2018-11-13 13:11:17.000000000 
+0100
@@ -6,13 +6,13 @@
 ssn_checkmarks = '0123456789ABCDEFHJKLMNPRSTUVWXY'
 ssn_pattern = re.compile(
     r"""^
-    (?P<date>([0-2]\d|3[01])
-    (0\d|1[012])
+    (?P<date>(0[1-9]|[1-2]\d|3[01])
+    (0[1-9]|1[012])
     (\d{{2}}))
     [A+-]
     (?P<serial>(\d{{3}}))
     (?P<checksum>[{checkmarks}])$""".format(checkmarks=ssn_checkmarks),
-    re.VERBOSE | re.IGNORECASE
+    re.VERBOSE
 )
 
 
@@ -52,7 +52,7 @@
 
 
 @validator
-def fi_ssn(ssn):
+def fi_ssn(ssn, allow_temporal_ssn=True):
     """
     Validate a Finnish Social Security Number.
 
@@ -67,11 +67,16 @@
         True
 
         >>> fi_ssn('101010-0102')
-        ValidationFailure(func=fi_ssn, args={'ssn': '101010-0102'})
+        ValidationFailure(func=fi_ssn, args=...)
 
     .. versionadded:: 0.5
 
     :param ssn: Social Security Number to validate
+    :param allow_temporal_ssn:
+        Whether to accept temporal SSN numbers. Temporal SSN numbers are the
+        ones where the serial is in the range [900-999]. By default temporal
+        SSN numbers are valid.
+
     """
     if not ssn:
         return False
@@ -82,6 +87,8 @@
     gd = result.groupdict()
     checksum = int(gd['date'] + gd['serial'])
     return (
+        int(gd['serial']) >= 2 and
+        (allow_temporal_ssn or int(gd['serial']) <= 899) and
         ssn_checkmarks[checksum % len(ssn_checkmarks)] ==
-        gd['checksum'].upper()
+        gd['checksum']
     )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/validators-0.12.1/validators/ip_address.py 
new/validators-0.12.4/validators/ip_address.py
--- old/validators-0.12.1/validators/ip_address.py      2017-06-03 
16:07:19.000000000 +0200
+++ new/validators-0.12.4/validators/ip_address.py      2018-06-03 
11:52:26.000000000 +0200
@@ -59,6 +59,8 @@
     :param value: IP address string to validate
     """
     ipv6_groups = value.split(':')
+    if len(ipv6_groups) == 1:
+        return False
     ipv4_groups = ipv6_groups[-1].split('.')
 
     if len(ipv4_groups) > 1:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/validators-0.12.1/validators/url.py 
new/validators-0.12.4/validators/url.py
--- old/validators-0.12.1/validators/url.py     2018-01-30 10:40:56.000000000 
+0100
+++ new/validators-0.12.4/validators/url.py     2018-11-13 13:11:17.000000000 
+0100
@@ -2,54 +2,88 @@
 
 from .utils import validator
 
-ip_middle_octet = u"(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5]))"
-ip_last_octet = u"(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))"
+ip_middle_octet = r"(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5]))"
+ip_last_octet = r"(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))"
 
-regex = re.compile(
-    u"^"
+regex = re.compile(  # noqa: W605
+    r"^"
     # protocol identifier
-    u"(?:(?:https?|ftp)://)"
+    r"(?:(?:https?|ftp)://)"
     # user:pass authentication
-    u"(?:[-a-z\u00a1-\uffff0-9._~%!$&'()*+,;=:]+"
-    u"(?::[-a-z0-9._~%!$&'()*+,;=:]*)?@)?"
-    u"(?:"
-    u"(?P<private_ip>"
+    r"(?:[-a-z\u00a1-\uffff0-9._~%!$&'()*+,;=:]+"
+    r"(?::[-a-z0-9._~%!$&'()*+,;=:]*)?@)?"
+    r"(?:"
+    r"(?P<private_ip>"
     # IP address exclusion
     # private & local networks
-    u"(?:(?:10|127)" + ip_middle_octet + u"{2}" + ip_last_octet + u")|"
-    u"(?:(?:169\.254|192\.168)" + ip_middle_octet + ip_last_octet + u")|"
-    u"(?:172\.(?:1[6-9]|2\d|3[0-1])" + ip_middle_octet + ip_last_octet + u"))"
-    u"|"
+    r"(?:(?:10|127)" + ip_middle_octet + r"{2}" + ip_last_octet + r")|"
+    r"(?:(?:169\.254|192\.168)" + ip_middle_octet + ip_last_octet + r")|"
+    r"(?:172\.(?:1[6-9]|2\d|3[0-1])" + ip_middle_octet + ip_last_octet + r"))"
+    r"|"
     # private & local hosts
-    u"(?P<private_host>"
-    u"(?:localhost))"
-    u"|"
+    r"(?P<private_host>"
+    r"(?:localhost))"
+    r"|"
     # IP address dotted notation octets
     # excludes loopback network 0.0.0.0
     # excludes reserved space >= 224.0.0.0
     # excludes network & broadcast addresses
     # (first & last IP address of each class)
-    u"(?P<public_ip>"
-    u"(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])"
-    u"" + ip_middle_octet + u"{2}"
-    u"" + ip_last_octet + u")"
-    u"|"
+    r"(?P<public_ip>"
+    r"(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])"
+    r"" + ip_middle_octet + r"{2}"
+    r"" + ip_last_octet + r")"
+    r"|"
+    # IPv6 RegEx from https://stackoverflow.com/a/17871737
+    r"\[("
+    # 1:2:3:4:5:6:7:8
+    r"([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|"
+    # 1::                              1:2:3:4:5:6:7::
+    r"([0-9a-fA-F]{1,4}:){1,7}:|"
+    # 1::8             1:2:3:4:5:6::8  1:2:3:4:5:6::8
+    r"([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|"
+    # 1::7:8           1:2:3:4:5::7:8  1:2:3:4:5::8
+    r"([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|"
+    # 1::6:7:8         1:2:3:4::6:7:8  1:2:3:4::8
+    r"([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|"
+    # 1::5:6:7:8       1:2:3::5:6:7:8  1:2:3::8
+    r"([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|"
+    # 1::4:5:6:7:8     1:2::4:5:6:7:8  1:2::8
+    r"([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|"
+    # 1::3:4:5:6:7:8   1::3:4:5:6:7:8  1::8
+    r"[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|"
+    # ::2:3:4:5:6:7:8  ::2:3:4:5:6:7:8 ::8       ::
+    r":((:[0-9a-fA-F]{1,4}){1,7}|:)|"
+    # fe80::7:8%eth0   fe80::7:8%1
+    # (link-local IPv6 addresses with zone index)
+    r"fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|"
+    r"::(ffff(:0{1,4}){0,1}:){0,1}"
+    r"((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}"
+    # ::255.255.255.255   ::ffff:255.255.255.255  ::ffff:0:255.255.255.255
+    # (IPv4-mapped IPv6 addresses and IPv4-translated addresses)
+    r"(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|"
+    r"([0-9a-fA-F]{1,4}:){1,4}:"
+    r"((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}"
+    # 2001:db8:3:4::192.0.2.33  64:ff9b::192.0.2.33
+    # (IPv4-Embedded IPv6 Address)
+    r"(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])"
+    r")\]|"
     # host name
     u"(?:(?:[a-z\u00a1-\uffff0-9]-?)*[a-z\u00a1-\uffff0-9]+)"
     # domain name
     u"(?:\.(?:[a-z\u00a1-\uffff0-9]-?)*[a-z\u00a1-\uffff0-9]+)*"
     # TLD identifier
     u"(?:\.(?:[a-z\u00a1-\uffff]{2,}))"
-    u")"
+    r")"
     # port number
-    u"(?::\d{2,5})?"
+    r"(?::\d{2,5})?"
     # resource path
     u"(?:/[-a-z\u00a1-\uffff0-9._~%!$&'()*+,;=:@/]*)?"
     # query string
-    u"(?:\?\S*)?"
+    r"(?:\?\S*)?"
     # fragment
-    u"(?:#\S*)?"
-    u"$",
+    r"(?:#\S*)?"
+    r"$",
     re.UNICODE | re.IGNORECASE
 )
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/validators-0.12.1/validators/utils.py 
new/validators-0.12.4/validators/utils.py
--- old/validators-0.12.1/validators/utils.py   2016-08-30 16:58:33.000000000 
+0200
+++ new/validators-0.12.4/validators/utils.py   2019-01-02 16:37:15.000000000 
+0100
@@ -37,10 +37,15 @@
     Return given function's positional and key value arguments as an ordered
     dictionary.
     """
+    if six.PY2:
+        _getargspec = inspect.getargspec
+    else:
+        _getargspec = inspect.getfullargspec
+
     arg_names = list(
         OrderedDict.fromkeys(
             itertools.chain(
-                inspect.getargspec(func)[0],
+                _getargspec(func)[0],
                 kwargs.keys()
             )
         )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/validators-0.12.1/validators.egg-info/PKG-INFO 
new/validators-0.12.4/validators.egg-info/PKG-INFO
--- old/validators-0.12.1/validators.egg-info/PKG-INFO  2018-01-30 
10:46:27.000000000 +0100
+++ new/validators-0.12.4/validators.egg-info/PKG-INFO  2019-01-02 
16:44:04.000000000 +0100
@@ -1,12 +1,11 @@
-Metadata-Version: 1.1
+Metadata-Version: 2.1
 Name: validators
-Version: 0.12.1
+Version: 0.12.4
 Summary: Python Data Validation for Humans™.
 Home-page: https://github.com/kvesteri/validators
 Author: Konsta Vesterinen
 Author-email: [email protected]
 License: BSD
-Description-Content-Type: UNKNOWN
 Description: 
         validators
         ----------
@@ -22,11 +21,12 @@
 Classifier: Programming Language :: Python :: 2
 Classifier: Programming Language :: Python :: 2.7
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.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: Programming Language :: Python :: Implementation :: CPython
 Classifier: Programming Language :: Python :: Implementation :: PyPy
 Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
 Classifier: Topic :: Software Development :: Libraries :: Python Modules
+Provides-Extra: test


Reply via email to