[X2Go-Commits] [python-x2go] 01/03: Python 3.12 compatibility: Switch from distutils.version to looseversion (with fallback to packaging.version).
git-admin at x2go.org
git-admin at x2go.org
Sat Jan 6 21:08:46 CET 2024
This is an automated email from the git hooks/post-receive script.
x2go pushed a commit to branch master
in repository python-x2go.
commit e1d6a99dc005aac0bab6327edb3b3008cac5b2f9
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date: Wed Jan 3 11:23:57 2024 +0100
Python 3.12 compatibility: Switch from distutils.version to looseversion (with fallback to packaging.version).
---
docs/source/conf.py | 16 ++++++++++++----
x2go/utils.py | 23 +++++++++++++++++------
2 files changed, 29 insertions(+), 10 deletions(-)
diff --git a/docs/source/conf.py b/docs/source/conf.py
index a4bc82b..d4c9770 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -20,12 +20,20 @@ import os
import sys
sys.path.insert(0, os.path.abspath('../../'))
import x2go
-import distutils.version
+try:
+ from looseversion import LooseVersion
+except ImportError:
+ try:
+ from distutils.version import LooseVersion
+ except ImportError:
+ # PEP-440 is not a replacement for formerly available distutils.version.LooseVersion,
+ # but we need to live with it until LooseVersion is available everywhere.
+ from packaging.version import Version as LooseVersion
import sphinx
from datetime import date
-sphinxver = distutils.version.LooseVersion(sphinx.__version__)
+sphinxver = LooseVersion(sphinx.__version__)
# -- General configuration ------------------------------------------------
@@ -40,7 +48,7 @@ extensions = [
'sphinx.ext.autodoc',
'sphinx.ext.todo',
]
-sphinx_want_ver = distutils.version.LooseVersion('1.0')
+sphinx_want_ver = LooseVersion('1.0')
if sphinxver >= sphinx_want_ver:
extensions.append('sphinx.ext.viewcode')
@@ -132,7 +140,7 @@ todo_include_todos = True
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
-sphinx_want_ver = distutils.version.LooseVersion('1.0')
+sphinx_want_ver = LooseVersion('1.0')
if sphinxver >= sphinx_want_ver:
html_theme = 'haiku'
else:
diff --git a/x2go/utils.py b/x2go/utils.py
index 088901b..562c090 100644
--- a/x2go/utils.py
+++ b/x2go/utils.py
@@ -36,7 +36,15 @@ import socket
import gevent
import string
import subprocess
-import distutils.version
+try:
+ from looseversion import LooseVersion
+except ImportError:
+ try:
+ from distutils.version import LooseVersion
+ except ImportError:
+ # PEP-440 is not a replacement for formerly available distutils.version.LooseVersion,
+ # but we need to live with it until LooseVersion is available everywhere.
+ from packaging.version import Version as LooseVersion
import paramiko
# Python X2Go modules
@@ -780,9 +788,12 @@ def merge_ordered_lists(l1, l2):
def compare_versions(version_a, op, version_b):
"""\
- Compare <version_a> with <version_b> using operator <op>.
- In the background ``distutils.version.LooseVersion`` is
- used for the comparison operation.
+ Compare <version_a> with <version_b> using operator <op>. In the
+ background ``LooseVersion`` from ``looseversion`` or ``distutils.version`` is
+ used for the comparison operation. (If none of those modules is
+ available the code uses ``Version`` from
+ ``packaging.version.Version`` (PEP-440) which is an insufficient
+ replacement and thus only a workaround.
:param version_a: a version string
:type version_a: ``str``
@@ -795,8 +806,8 @@ def compare_versions(version_a, op, version_b):
### FIXME: this comparison is not reliable with beta et al. version strings
- ver_a = distutils.version.LooseVersion(version_a)
- ver_b = distutils.version.LooseVersion(version_b)
+ ver_a = LooseVersion(version_a)
+ ver_b = LooseVersion(version_b)
return eval("ver_a %s ver_b" % op)
--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/python-x2go.git
More information about the x2go-commits
mailing list