Skip to content

Commit ff5ae16

Browse files
committed
GH-467 (review): move version checking to compatibility module
1 parent 631ac89 commit ff5ae16

File tree

5 files changed

+19
-11
lines changed

5 files changed

+19
-11
lines changed

artifactory.py

+3-5
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
import pathlib
3535
import platform
3636
import re
37-
import sys
3837
import urllib.parse
3938
from itertools import islice, chain
4039

@@ -51,6 +50,7 @@
5150
from dohq_artifactory.admin import User
5251
from dohq_artifactory.auth import XJFrogArtApiAuth
5352
from dohq_artifactory.auth import XJFrogArtBearerAuth
53+
from dohq_artifactory.compat import * # noqa: this helper only contains version flags
5454
from dohq_artifactory.exception import ArtifactoryException
5555
from dohq_artifactory.exception import raise_for_status
5656
from dohq_artifactory.logger import logger
@@ -1498,9 +1498,7 @@ class ArtifactoryPath(pathlib.Path, PureArtifactoryPath):
14981498
on regular constructors, but rather on templates.
14991499
"""
15001500

1501-
if sys.version_info.major == 3 and sys.version_info.minor >= 10:
1502-
# see changes in pathlib.Path, slots are no more applied
1503-
# https://github.com/python/cpython/blob/ce121fd8755d4db9511ce4aab39d0577165e118e/Lib/pathlib.py#L952
1501+
if IS_PYTHON_3_10_OR_NEWER:
15041502
_accessor = _artifactory_accessor
15051503
else:
15061504
# in 3.9 and below Pathlib limits what members can be present in 'Path' class
@@ -1806,7 +1804,7 @@ def __rtruediv__(self, key):
18061804
obj.timeout = self.timeout
18071805
return obj
18081806

1809-
if sys.version_info < (3,):
1807+
if IS_PYTHON_2:
18101808
__div__ = __truediv__
18111809
__rdiv__ = __rtruediv__
18121810

dohq_artifactory/admin.py

+5-4
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import jwt
1010
from dateutil.parser import isoparse
1111

12+
from dohq_artifactory.compat import * # noqa: this helper only contains version flags
1213
from dohq_artifactory.exception import ArtifactoryException
1314
from dohq_artifactory.exception import raise_for_status
1415
from dohq_artifactory.logger import logger
@@ -51,10 +52,10 @@ def _new_function_with_secret_module(pw_len=16):
5152
return "".join(secrets.choice(string.ascii_letters) for i in range(pw_len))
5253

5354

54-
if sys.version_info < (3, 6):
55-
generate_password = _old_function_for_secret
56-
else:
55+
if IS_PYTHON_3_6_OR_NEWER:
5756
generate_password = _new_function_with_secret_module
57+
else:
58+
generate_password = _old_function_for_secret
5859

5960

6061
def deprecation(message):
@@ -656,7 +657,7 @@ def __truediv__(self, key):
656657
def __rtruediv__(self, key):
657658
return self.path.__truediv__(key)
658659

659-
if sys.version_info < (3,):
660+
if IS_PYTHON_2:
660661
__div__ = __truediv__
661662
__rdiv__ = __rtruediv__
662663

dohq_artifactory/compat.py

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import sys
2+
3+
IS_PYTHON_2 = sys.version_info < (3,)
4+
IS_PYTHON_3_6_OR_NEWER = sys.version_info >= (3, 6)
5+
# see changes in pathlib.Path, slots are no more applied
6+
# https://github.com/python/cpython/blob/ce121fd8755d4db9511ce4aab39d0577165e118e/Lib/pathlib.py#L952
7+
IS_PYTHON_3_10_OR_NEWER = sys.version_info >= (3, 10)

tests/conftest.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,13 @@
55
import pytest
66

77
from artifactory import ArtifactoryPath
8+
from dohq_artifactory.compat import * # noqa: this helper only contains version flags
89
from dohq_artifactory import Group
910
from dohq_artifactory import PermissionTarget
1011
from dohq_artifactory import RepositoryLocal
1112
from dohq_artifactory import User
1213

13-
if sys.version_info[0] < 3:
14+
if IS_PYTHON_2:
1415
import ConfigParser as configparser
1516
else:
1617
import configparser

tests/integration/test_integration_artifactory_path.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@
88
import artifactory
99
from artifactory import sha1sum
1010
from artifactory import sha256sum
11+
from dohq_artifactory.compat import * # noqa: this helper only contains version flags
1112

12-
if sys.version_info[0] < 3:
13+
if IS_PYTHON_2:
1314
import StringIO as io
1415
else:
1516
import io

0 commit comments

Comments
 (0)