8000 PEP 632 / PEP 440: Use vendored `_pep440.Version`, with little patch … · crate/crate-python@454e85b · GitHub
[go: up one dir, main page]

Skip to content

Commit 454e85b

Browse files
committed
PEP 632 / PEP 440: Use vendored _pep440.Version, with little patch to it
A little patch to re-add the `version()` method was needed for version comparison backwards-compatibility with code using it. Also, don't do code coverage reporting on the vendored code.
1 parent de4c4bf commit 454e85b

File tree

5 files changed

+17
-10
lines changed

5 files changed

+17
-10
lines changed

.coveragerc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ omit =
44
*/.buildout/eggs/*
55
bin/test
66
buildout-cache/eggs/*
7-
parts/*
87
eggs/*
8+
parts/*
9+
src/crate/client/_pep440.py
910
exclude_lines =
1011
# pragma: no cover
1112
raise NotImplemented

src/crate/client/_pep440.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -395,6 +395,12 @@ def is_prerelease(self):
395395
def is_postrelease(self):
396396
return bool(self._version.post)
397397

398+
@property
399+
def version(self) -> tuple:
400+
"""
401+
PATCH: Return version tuple for backward-compatibility.
402+
"""
403+
return self._version.release
398404

399405
def _parse_letter_version(letter, number):
400406
if letter:

src/crate/client/connection.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
from .exceptions import ProgrammingError, ConnectionError
2424
from .http import Client
2525
from .blob import BlobContainer
26-
from distutils.version import StrictVersion
26+
from ._pep440 import Version
2727

2828

2929
class Connection(object):
@@ -192,12 +192,12 @@ def _lowest_server_version(self):
192192
for server in self.client.active_servers:
193193
try:
194194
_, _, version = self.client.server_infos(server)
195-
version = StrictVersion(version)
195+
version = Version(version)
196196
except (ValueError, ConnectionError):
197197
continue
198198
if not lowest or version < lowest:
199199
lowest = version
200-
return lowest or StrictVersion('0.0.0')
200+
return lowest or Version('0.0.0')
201201

202202
def __repr__(self):
203203
return '<Connection {0}>'.format(repr(self.client))

src/crate/client/sqlalchemy/sa_version.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@
2020
# software solely pursuant to the terms of the relevant commercial agreement.
2121

2222
import sqlalchemy as sa
23-
from distutils.version import StrictVersion as V
23+
from crate.client._pep440 import Version
2424

25-
SA_VERSION = V(sa.__version__)
25+
SA_VERSION = Version(sa.__version__)
2626

27-
SA_1_4 = V('1.4.0b1')
28-
SA_2_0 = V('2.0.0')
27+
SA_1_4 = Version('1.4.0b1')
28+
SA_2_0 = Version('2.0.0')

src/crate/testing/test_layer.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import os
2323
import tempfile
2424
import urllib
25-
from distutils.version import LooseVersion
25+
from crate.client._pep440 import Version
2626
from unittest import TestCase, mock
2727
from io import BytesIO
2828

@@ -75,7 +75,7 @@ def test_layer_from_uri(self):
7575
versions = json.loads(response.read().decode())
7676
version = versions["crate_testing"]
7777

78-
self.assertGreaterEqual(LooseVersion(version), LooseVersion("4.5.0"))
78+
self.assertGreaterEqual(Version(version), Version("4.5.0"))
7979

8080
uri = "https://cdn.crate.io/downloads/releases/crate-{}.tar.gz".format(version)
8181
layer = CrateLayer.from_uri(uri, name="crate-by-uri", http_port=42203)

0 commit comments

Comments
 (0)
0