public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: dev-python/semver/files/, dev-python/semver/
@ 2020-06-11  2:00 Georgy Yakovlev
  0 siblings, 0 replies; only message in thread
From: Georgy Yakovlev @ 2020-06-11  2:00 UTC (permalink / raw
  To: gentoo-commits

commit:     49ee2e8f661fcfbd8b7cb001b35edf0091c39436
Author:     Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
AuthorDate: Thu Jun 11 01:59:00 2020 +0000
Commit:     Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
CommitDate: Thu Jun 11 02:00:04 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=49ee2e8f

dev-python/semver: bump to 2.10.1

Package-Manager: Portage-2.3.100, Repoman-2.3.22
Signed-off-by: Georgy Yakovlev <gyakovlev <AT> gentoo.org>

 dev-python/semver/Manifest                   |   1 +
 dev-python/semver/files/2.10.1-getitem.patch | 147 +++++++++++++++++++++++++++
 dev-python/semver/semver-2.10.1.ebuild       |  30 ++++++
 3 files changed, 178 insertions(+)

diff --git a/dev-python/semver/Manifest b/dev-python/semver/Manifest
index 233c2e9e567..1a3b3b8f7a3 100644
--- a/dev-python/semver/Manifest
+++ b/dev-python/semver/Manifest
@@ -1,2 +1,3 @@
+DIST semver-2.10.1.tar.gz 39327 BLAKE2B 867edb0690b07ac460a3c43465047479a4dd84ceadf0eaebaad3c9975994efbf97d51d94c5de2ba6b758b5785649a20acbc2b24a31ab8114b611ac9a24f915c2 SHA512 6abd02f109836c956967ef60c882269818402b771d25a5f243628b6b651bcf9246bbf5b09fac746e65d8c54ffc7b42f21be6cb6dd20487b987a5976995bae51c
 DIST semver-2.9.0.tar.gz 24767 BLAKE2B 5fb9eda8c5ccc6b02997292eb6f7be0080480b21bc38bb629fa48af674ec7a356f2b9952459680281a187243acbde17968060c48e4c1af70d10f3bbdf984fbe2 SHA512 5ae9a4a66474fc82cf7e4612796a6c0e0280ad9969ff8c509e99cb266154f39a2c03c68f6167f8e17fda1ac16ce17a838e63d81bc2e78debfd07adbb7cbc098d
 DIST semver-2.9.1.tar.gz 32437 BLAKE2B f87f6ad001b2e3752c59282714d0dfc258aa8a727517b5b7caeeb9ff2ebc2fb5fce308a96e7728e2f79cbd502bcde5cddc3422563b1c0eb588e41acaba1178c6 SHA512 3de661921d51b19fd4922605677790b7e83ab1e34ef76cd9d6d2147753c122686a801b4ddb0fec1b85018e7c60859885cc27f43bc5e337de1b69b9304b398175

diff --git a/dev-python/semver/files/2.10.1-getitem.patch b/dev-python/semver/files/2.10.1-getitem.patch
new file mode 100644
index 00000000000..1a86ad0449d
--- /dev/null
+++ b/dev-python/semver/files/2.10.1-getitem.patch
@@ -0,0 +1,147 @@
+From f332326e54a5582092b50c8fa113d11bbdf1a9e6 Mon Sep 17 00:00:00 2001
+From: Thomas Laferriere <t.laferriere@hotmail.ca>
+Date: Wed, 10 Jun 2020 01:44:11 -0400
+Subject: [PATCH] Fix #260 __getitem__ returning `None` on falsy parts
+
+* Fix #260 and add tests for these special cases
+* Fix IndexError not being thrown every time it should
+* Update CHANGELOG.rst
+
+Co-authored-by: Tom Schraitle <tomschr@users.noreply.github.com>
+---
+ CHANGELOG.rst  | 28 ++++++++++++++++++++++++++++
+ semver.py      |  9 ++++-----
+ test_semver.py | 35 ++++++++++++++++++++++++++++-------
+ 3 files changed, 60 insertions(+), 12 deletions(-)
+
+diff --git a/CHANGELOG.rst b/CHANGELOG.rst
+index c28880e..2671ef2 100644
+--- a/CHANGELOG.rst
++++ b/CHANGELOG.rst
+@@ -7,6 +7,34 @@ All notable changes to this code base will be documented in this file,
+ in every released version.
+ 
+ 
++Version 2.10.2 (WIP)
++====================
++
++:Released: 2020-xx-yy
++:Maintainer:
++
++Features
++--------
++
++n/a
++
++Bug Fixes
++---------
++
++:gh:`260` (:pr:`261`): Fixed ``__getitem__`` returning None on wrong parts
++
++
++Additions
++---------
++
++n/a
++
++Removals
++--------
++
++n/a
++
++
+ Version 2.10.1
+ ==============
+ 
+diff --git a/semver.py b/semver.py
+index 00338e8..0c98af9 100644
+--- a/semver.py
++++ b/semver.py
+@@ -548,17 +548,16 @@ def __getitem__(self, index):
+ 
+         if (
+             isinstance(index, slice)
+-            and (index.start is None or index.start < 0)
+-            and (index.stop is None or index.stop < 0)
++            and (index.start is not None and index.start < 0)
++            or (index.stop is not None and index.stop < 0)
+         ):
+             raise IndexError("Version index cannot be negative")
+ 
+-        # Could raise IndexError:
+-        part = tuple(filter(None, self.to_tuple()[index]))
++        part = tuple(filter(lambda p: p is not None, self.to_tuple()[index]))
+ 
+         if len(part) == 1:
+             part = part[0]
+-        if not part:
++        elif not part:
+             raise IndexError("Version part undefined")
+         return part
+ 
+diff --git a/test_semver.py b/test_semver.py
+index 8ecc81f..1fd87ee 100644
+--- a/test_semver.py
++++ b/test_semver.py
+@@ -774,6 +774,8 @@ def test_should_be_able_to_use_integers_as_prerelease_build():
+         ("1.2.3", 0, 1),
+         ("1.2.3", 1, 2),
+         ("1.2.3", 2, 3),
++        # Special cases
++        ("1.0.2", 1, 0),
+     ],
+ )
+ def test_version_info_should_be_accessed_with_index(version, index, expected):
+@@ -801,6 +803,7 @@ def test_version_info_should_be_accessed_with_index(version, index, expected):
+         ("1.2.3-rc.0+build.0", slice(0, 5, 2), (1, 3, "build.0")),
+         ("1.2.3-rc.0+build.0", slice(None, 5, 2), (1, 3, "build.0")),
+         ("1.2.3-rc.0+build.0", slice(5, 0, -2), ("build.0", 3)),
++        ("1.2.0-rc.0+build.0", slice(3), (1, 2, 0)),
+     ],
+ )
+ def test_version_info_should_be_accessed_with_slice_object(
+@@ -813,19 +816,37 @@ def test_version_info_should_be_accessed_with_slice_object(
+ @pytest.mark.parametrize(
+     "version, index",
+     [
+-        ("1.2.3-rc.0+build.0", -1),
+-        ("1.2.3-rc.0", -1),
+-        ("1.2.3-rc.0", 4),
+-        ("1.2.3", -1),
+         ("1.2.3", 3),
++        ("1.2.3", slice(3, 4)),
+         ("1.2.3", 4),
+-        ("1.2.3", 10),
+-        ("1.2.3", slice(-3)),
++        ("1.2.3", slice(4, 5)),
++        ("1.2.3", 5),
++        ("1.2.3", slice(5, 6)),
++        ("1.2.3-rc.0", 5),
++        ("1.2.3-rc.0", slice(5, 6)),
++        ("1.2.3-rc.0", 6),
++        ("1.2.3-rc.0", slice(6, 7)),
+     ],
+ )
+ def test_version_info_should_throw_index_error(version, index):
+     version_info = VersionInfo.parse(version)
+-    with pytest.raises(IndexError):
++    with pytest.raises(IndexError, match=r"Version part undefined"):
++        version_info[index]
++
++
++@pytest.mark.parametrize(
++    "version, index",
++    [
++        ("1.2.3", -1),
++        ("1.2.3", -2),
++        ("1.2.3", slice(-2, 2)),
++        ("1.2.3", slice(2, -2)),
++        ("1.2.3", slice(-2, -2)),
++    ],
++)
++def test_version_info_should_throw_index_error_when_negative_index(version, index):
++    version_info = VersionInfo.parse(version)
++    with pytest.raises(IndexError, match=r"Version index cannot be negative"):
+         version_info[index]
+ 
+ 

diff --git a/dev-python/semver/semver-2.10.1.ebuild b/dev-python/semver/semver-2.10.1.ebuild
new file mode 100644
index 00000000000..b731e8febb6
--- /dev/null
+++ b/dev-python/semver/semver-2.10.1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 2019-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7} )
+DISTUTILS_USE_SETUPTOOLS=rdepend
+
+inherit distutils-r1
+
+DESCRIPTION="A Python module for semantic versioning"
+HOMEPAGE="https://github.com/python-semver/python-semver"
+SRC_URI="https://github.com/python-${PN}/python-${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64 ~x86"
+IUSE="test"
+
+S="${WORKDIR}/python-${P}"
+
+PATCHES=( "${FILESDIR}/${PV}-getitem.patch" )
+
+distutils_enable_tests pytest
+
+python_prepare_all() {
+	# contains pytest/cov args we don't want
+	rm setup.cfg || die
+	distutils-r1_python_prepare_all
+}


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2020-06-11  2:00 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-06-11  2:00 [gentoo-commits] repo/gentoo:master commit in: dev-python/semver/files/, dev-python/semver/ Georgy Yakovlev

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox