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@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