diff --git a/safeeyes/model.py b/safeeyes/model.py index 453761d..c43dc57 100644 --- a/safeeyes/model.py +++ b/safeeyes/model.py @@ -22,9 +22,10 @@ This module contains the entity classes used by Safe Eyes and its plugins. import logging import random -from distutils.version import LooseVersion from enum import Enum +from packaging.version import parse + from safeeyes import utility @@ -323,7 +324,7 @@ class Config: else: user_config_version = str( meta_obj.get('config_version', '0.0.0')) - if LooseVersion(user_config_version) != LooseVersion(system_config_version): + if parse(user_config_version) != parse(system_config_version): # Update the user config self.__merge_dictionary( self.__user_config, self.__system_config) diff --git a/safeeyes/utility.py b/safeeyes/utility.py index 3976140..7d4b8d6 100644 --- a/safeeyes/utility.py +++ b/safeeyes/utility.py @@ -32,7 +32,6 @@ import sys import shutil import subprocess import threading -from distutils.version import LooseVersion from logging.handlers import RotatingFileHandler from pathlib import Path @@ -43,6 +42,7 @@ gi.require_version('Gtk', '3.0') from gi.repository import Gtk from gi.repository import GLib from gi.repository import GdkPixbuf +from packaging.version import parse gi.require_version('Gdk', '3.0') @@ -559,7 +559,7 @@ def __update_plugin_config(plugin, plugin_config, config): if plugin_config is None: config['plugins'].remove(plugin) else: - if LooseVersion(plugin.get('version', '0.0.0')) != LooseVersion(plugin_config['meta']['version']): + if parse(plugin.get('version', '0.0.0')) != parse(plugin_config['meta']['version']): # Update the configuration plugin['version'] = plugin_config['meta']['version'] setting_ids = [] diff --git a/setup.py b/setup.py index c7bc490..7d3de5d 100644 --- a/setup.py +++ b/setup.py @@ -8,6 +8,7 @@ requires = [ 'psutil', 'croniter', 'PyGObject', + 'packaging', 'python-xlib' ]