Merge pull request #10860 from keymanapp/fix/linux/10850_deprecation

fix(linux): Replace deprecated `pkg_resources` module with `packaging.version`
This commit is contained in:
Eberhard Beilharz 2024-03-20 15:47:34 +01:00 committed by GitHub
commit d7d5c8045b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 27 additions and 16 deletions

View file

@ -30,6 +30,7 @@ Build-Depends:
python3-lxml,
python3-magic,
python3-numpy,
python3-packaging,
python3-pil,
python3-pip,
python3-qrcode,
@ -83,13 +84,14 @@ Package: python3-keyman-config
Section: python
Architecture: all
Depends:
dbus-x11,
dconf-cli,
gir1.2-webkit2-4.1 | gir1.2-webkit2-4.0,
keyman-engine,
python3-bs4,
python3-gi,
python3-packaging,
python3-sentry-sdk (>= 1.1),
dbus-x11,
${misc:Depends},
${python3:Depends},
Description: Keyman for Linux configuration

View file

@ -3,8 +3,8 @@
import json
import logging
import os
import packaging.version
import zipfile
from pkg_resources import parse_version
from enum import Enum
from shutil import rmtree
@ -149,7 +149,7 @@ class InstallKmp():
fileVersion = secure_lookup(system, 'fileVersion')
if not fileVersion:
fileVersion = '7.0'
if parse_version(fileVersion) > parse_version(__version__):
if packaging.version.parse(fileVersion) > packaging.version.parse(__version__):
logging.error("install_kmp.py: error: %s requires a newer version of Keyman (%s)",
inputfile, fileVersion)
rmtree(self.packageDir)

View file

@ -10,6 +10,7 @@ import subprocess
import sys
import tempfile
import webbrowser
import packaging.version
import gi
@ -20,8 +21,6 @@ except ValueError:
# TODO: Remove once we drop support for Ubuntu 20.04 Focal
gi.require_version('WebKit2', '4.0')
from pkg_resources import parse_version
from gi.repository import Gtk, WebKit2
from keyman_config import _, secure_lookup
@ -134,11 +133,12 @@ class InstallKmpWindow(Gtk.Dialog):
self.checkcontinue = False
def _uninstall_prev_version_if_necessary(self, keyboardid, viewkmp, installed_kmp_ver, info):
if not installed_kmp_ver or not secure_lookup(info, 'version', 'description'):
new_kmp_version = secure_lookup(info, 'version', 'description')
if not installed_kmp_ver or not new_kmp_version:
return True
logging.info("package version %s", secure_lookup(info, 'version', 'description'))
logging.info("package version %s", new_kmp_version)
logging.info("installed kmp version %s", installed_kmp_ver)
if parse_version(secure_lookup(info, 'version', 'description')) >= parse_version(installed_kmp_ver):
if packaging.version.parse(new_kmp_version) >= packaging.version.parse(installed_kmp_ver):
return True
response = self._show_version_message_dlg(
viewkmp,

View file

@ -3,7 +3,7 @@
import json
import logging
import os
from pkg_resources import parse_version
import packaging.version
from keyman_config import secure_lookup
from keyman_config.deprecated_decorator import deprecated
@ -133,7 +133,7 @@ def _get_kmp_version_internal(packageId, location, previousVersion):
kmp = get_installed_kmp(location)
if packageId in kmp:
version = kmp[packageId]['kmpversion']
if not previousVersion or parse_version(previousVersion) < parse_version(version):
if not previousVersion or packaging.version.parse(previousVersion) < packaging.version.parse(version):
previousVersion = version
return previousVersion

View file

@ -4,12 +4,12 @@ import argparse
import datetime
import logging
import os
import requests
import requests_cache
import sys
import time
from pkg_resources import parse_version
from zipfile import is_zipfile
import packaging.version
import requests
import requests_cache
from keyman_config import KeymanApiUrl, add_standard_arguments, initialize_logging, initialize_sentry, secure_lookup
from keyman_config.fcitx_util import is_fcitx_running
@ -181,7 +181,7 @@ def main():
sys.exit(3)
pkg_version = secure_lookup(pkgdata, 'version')
if installed_kmp_ver and pkg_version:
if parse_version(installed_kmp_ver) > parse_version(pkg_version):
if packaging.version.parse(installed_kmp_ver) > packaging.version.parse(pkg_version):
if args.force:
logging.warning(f'km-package-install: warning: The {args.package} keyboard ' +
f'is already installed with a newer version {installed_kmp_ver}. ' +

View file

@ -17,8 +17,17 @@ setup(
zip_safe=False, # don't install a zip
install_requires=[
'lxml', 'numpy', 'Pillow', 'requests', 'requests-cache',
'python-magic', 'qrcode', 'sentry-sdk'
'dbus-python',
'lxml',
'numpy',
'packaging',
'pillow',
'PyGObject',
'python-magic',
'qrcode',
'requests-cache',
'requests',
'sentry-sdk',
],
# metadata to display on PyPI