From 78965633be625fba3fee6fbbf3b24e22d9d349cc Mon Sep 17 00:00:00 2001 From: Christian Heimes Date: Mon, 26 Jul 2021 12:29:12 +0200 Subject: [PATCH] Replace semantic_version with packaging Use the "packaging" package instead of semantic_version package to parse Rust version and spec. Packaging is used by setuptools to parse version strings and specs. This also solves a deprecation warning with semamtic_version. The partial argument to Version() has been deprecated. Signed-off-by: Christian Heimes --- setup.cfg | 2 +- setuptools_rust/check.py | 4 ++-- setuptools_rust/extension.py | 4 ++-- setuptools_rust/test.py | 4 ++-- setuptools_rust/utils.py | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/setup.cfg b/setup.cfg index 5b6ddf0..19b2b84 100644 --- a/setup.cfg +++ b/setup.cfg @@ -26,7 +26,7 @@ classifiers = [options] packages = setuptools_rust zip_safe = True -install_requires = setuptools>=46.1; semantic_version>=2.6.0; toml>=0.9.0 +install_requires = setuptools>=46.1; packaging; toml>=0.9.0 setup_requires = setuptools>=46.1; setuptools_scm[toml]>=3.4.3 python_requires = >=3.6 diff --git a/setuptools_rust/check.py b/setuptools_rust/check.py index 4fe1d83..62e666b 100644 --- a/setuptools_rust/check.py +++ b/setuptools_rust/check.py @@ -7,13 +7,13 @@ from distutils.errors import ( DistutilsExecError, ) -import semantic_version +from packaging.specifiers import SpecifierSet from .command import RustCommand from .extension import RustExtension from .utils import rust_features -MIN_VERSION = semantic_version.Spec(">=1.16") +MIN_VERSION = SpecifierSet(">=1.16") class check_rust(RustCommand): diff --git a/setuptools_rust/extension.py b/setuptools_rust/extension.py index f8e7205..cc445cb 100644 --- a/setuptools_rust/extension.py +++ b/setuptools_rust/extension.py @@ -4,7 +4,7 @@ from distutils.errors import DistutilsSetupError from enum import IntEnum, auto from typing import Dict, List, Optional, Union -import semantic_version +from packaging.specifiers import SpecifierSet class Binding(IntEnum): @@ -149,7 +149,7 @@ class RustExtension: if self.rust_version is None: return None try: - return semantic_version.SimpleSpec.parse(self.rust_version) + return SpecifierSet(self.rust_version) except ValueError: raise DistutilsSetupError( "Can not parse rust compiler version: %s", self.rust_version diff --git a/setuptools_rust/test.py b/setuptools_rust/test.py index 93beba1..1f5ce9a 100644 --- a/setuptools_rust/test.py +++ b/setuptools_rust/test.py @@ -4,12 +4,12 @@ import subprocess from distutils.cmd import Command from distutils.errors import CompileError, DistutilsFileError, DistutilsExecError -import semantic_version +from packaging.specifiers import SpecifierSet from .extension import RustExtension from .utils import rust_features, get_rust_version -MIN_VERSION = semantic_version.Spec(">=1.15") +MIN_VERSION = SpecifierSet(">=1.15") class test_rust(Command): diff --git a/setuptools_rust/utils.py b/setuptools_rust/utils.py index 4b0220d..0564f26 100644 --- a/setuptools_rust/utils.py +++ b/setuptools_rust/utils.py @@ -2,7 +2,7 @@ import sys import subprocess from distutils.errors import DistutilsPlatformError -import semantic_version +from packaging.version import Version from .extension import Binding @@ -35,7 +35,7 @@ def rust_features(ext=True, binding=Binding.PyO3): def get_rust_version(min_version=None): try: output = subprocess.check_output(["rustc", "-V"]).decode("latin-1") - return semantic_version.Version(output.split(" ")[1], partial=True) + return Version(output.split(" ")[1]) except (subprocess.CalledProcessError, OSError): raise DistutilsPlatformError( "can't find Rust compiler\n\n" -- 2.31.1