From d4b9bf9833f203159f1f8db777e0482e881f58d7 Mon Sep 17 00:00:00 2001 From: Ben Finney Date: Nov 30 2022 00:37:52 +0000 Subject: Migrate to Setuptools implementation of ‘Version’ class. --- diff --git a/test_version.py b/test_version.py index 376a513..13eb887 100644 --- a/test_version.py +++ b/test_version.py @@ -25,6 +25,7 @@ import docutils.writers import setuptools import setuptools.command import setuptools.dist +from setuptools.extern.packaging.version import InvalidVersion import testscenarios import testtools @@ -461,19 +462,19 @@ class ChangeLogEntry_version_TestCase(ChangeLogEntry_BaseTestCase): }), ('non-number', { 'test_args': {'version': "b0gUs"}, - 'expected_error': ValueError, + 'expected_error': InvalidVersion, }), ('negative', { 'test_args': {'version': "-1.0"}, - 'expected_error': ValueError, + 'expected_error': InvalidVersion, }), ('non-number parts', { 'test_args': {'version': "1.b0gUs.0"}, - 'expected_error': ValueError, + 'expected_error': InvalidVersion, }), ('too many parts', { 'test_args': {'version': "1.2.3.4.5"}, - 'expected_error': ValueError, + 'expected_error': InvalidVersion, }), ] diff --git a/version.py b/version.py index 2634178..9fa0e1b 100644 --- a/version.py +++ b/version.py @@ -24,7 +24,6 @@ import collections import datetime import distutils -import distutils.version import functools import io import json @@ -38,6 +37,7 @@ import setuptools.command.build import setuptools.command.build_py import setuptools.command.egg_info import setuptools.dist +import setuptools.extern.packaging.version def ensure_class_bases_begin_with(namespace, class_name, base_class): @@ -187,11 +187,7 @@ class ChangeLogEntry: # A valid non-version value. return None - match = distutils.version.StrictVersion.version_re.match(value) - if match is None: - raise ValueError( - "not a valid version string {value!r}".format( - value=value)) + valid_version = setuptools.extern.packaging.version.Version(value) @classmethod def validate_maintainer(cls, value):