Skip to content

Commit 608621e

Browse files
authored
Replace deprecation distutils version usage (#1590)
`disutils` was used to compare version numbers but it's deprecated and causes warnings which might result in Ansible skipping this plugin. This replaces `distutils` with `packaging.version.Version` instead.
1 parent 0c95ea1 commit 608621e

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

lib/trellis/plugins/vars/version.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
from ansible import __version__
22
from ansible.errors import AnsibleError
3-
from distutils.version import LooseVersion
4-
from operator import eq, ge, gt
3+
from packaging.version import Version
54
from platform import python_version, python_version_tuple
65

76
try:
@@ -18,10 +17,10 @@
1817
' Python 2 reached end of life in 2020 and is unmaintained.\n'
1918
'Python 3 is required as of Trellis version v1.15.0.').format(python_version()))
2019

21-
if not ge(LooseVersion(__version__), LooseVersion(version_requirement)):
20+
if Version(__version__) < Version(version_requirement):
2221
raise AnsibleError(('Trellis no longer supports Ansible {}.\n'
2322
'Please upgrade to Ansible {} or higher.').format(__version__, version_requirement))
24-
elif gt(LooseVersion(__version__), LooseVersion(version_tested_max)):
23+
elif Version(__version__) > Version(version_tested_max):
2524
display.warning(u'Your Ansible version is {} but this version of Trellis has only been tested for '
2625
u'compatability with Ansible {} -> {}. It is advisable to check for Trellis updates or '
2726
u'downgrade your Ansible version.'.format(__version__, version_requirement, version_tested_max))

0 commit comments

Comments
 (0)