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
