From b7ba9d6b516031aced2efb310a032d30f4b54bb9 Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Tue, 24 Jun 2025 18:27:07 +0200 Subject: [PATCH] Replaced calls to pkg_resource. --- modoboa/__init__.py | 6 +++--- modoboa/core/utils.py | 6 ++---- modoboa/lib/api_client.py | 8 +++----- modoboa/lib/email_utils.py | 7 ++----- modoboa/webmail/lib/sendmail.py | 9 +++------ pyproject.toml | 1 + 6 files changed, 14 insertions(+), 23 deletions(-) diff --git a/modoboa/__init__.py b/modoboa/__init__.py index 0ec95caec..cc7f057f2 100644 --- a/modoboa/__init__.py +++ b/modoboa/__init__.py @@ -1,10 +1,10 @@ """Modoboa - Mail hosting made simple.""" -from pkg_resources import DistributionNotFound, get_distribution +from importlib.metadata import version, PackageNotFoundError try: - __version__ = get_distribution(__name__).version -except DistributionNotFound: + __version__ = version(__name__) +except PackageNotFoundError: # package is not installed pass diff --git a/modoboa/core/utils.py b/modoboa/core/utils.py index 32615d79a..003f62695 100644 --- a/modoboa/core/utils.py +++ b/modoboa/core/utils.py @@ -2,7 +2,7 @@ import environ import os -from pkg_resources import parse_version +from packaging.version import parse from typing import Optional from cryptography.hazmat.primitives import serialization @@ -51,9 +51,7 @@ def check_for_updates(): if api_extension["name"] != pkgname: continue extension["last_version"] = api_extension["version"] - if parse_version(api_extension["version"]) > parse_version( - extension["version"] - ): + if parse(api_extension["version"]) > parse(extension["version"]): extension["update"] = True extension["changelog_url"] = api_extension["url"] update_avail = True diff --git a/modoboa/lib/api_client.py b/modoboa/lib/api_client.py index 0d1a11033..c7ed4f9b9 100644 --- a/modoboa/lib/api_client.py +++ b/modoboa/lib/api_client.py @@ -1,9 +1,9 @@ """A client for Modoboa's public API.""" +from importlib.metadata import version, PackageNotFoundError import logging import os -import pkg_resources import requests from requests.exceptions import RequestException @@ -43,10 +43,8 @@ class ModoAPIClient: """Return the version installed locally.""" if self._local_core_version is None: try: - self._local_core_version = pkg_resources.get_distribution( - "modoboa" - ).version - except pkg_resources.DistributionNotFound: + self._local_core_version = version("modoboa") + except PackageNotFoundError: self._local_core_version = "unknown" return self._local_core_version diff --git a/modoboa/lib/email_utils.py b/modoboa/lib/email_utils.py index a7d56f2cf..027138f30 100644 --- a/modoboa/lib/email_utils.py +++ b/modoboa/lib/email_utils.py @@ -5,6 +5,7 @@ import time from email.header import Header from email.mime.text import MIMEText from email.utils import formataddr, formatdate, getaddresses, make_msgid +from importlib.metadata import version import chardet import lxml.html @@ -379,15 +380,11 @@ def set_email_headers(msg, subject, sender, rcpt): Subject, From, To, Message-ID, User-Agent, Date """ - import pkg_resources - msg["Subject"] = Header(subject, "utf8") msg["From"] = sender msg["To"] = prepare_addresses(rcpt) msg["Message-ID"] = make_msgid() - msg["User-Agent"] = "Modoboa {}".format( - pkg_resources.get_distribution("modoboa").version - ) + msg["User-Agent"] = "Modoboa {}".format(version("modoboa")) msg["Date"] = formatdate(time.time(), True) diff --git a/modoboa/webmail/lib/sendmail.py b/modoboa/webmail/lib/sendmail.py index bc178b38e..b4af4a517 100644 --- a/modoboa/webmail/lib/sendmail.py +++ b/modoboa/webmail/lib/sendmail.py @@ -1,7 +1,8 @@ from email.header import Header from email.mime.image import MIMEImage +from importlib.metadata import version import os -import pkg_resources + import smtplib from urllib.parse import unquote, urlparse @@ -90,11 +91,7 @@ def format_sender_address(user: core_models.User, address: str) -> str: def create_message(user: core_models.User, attributes: dict, attachments: list): - headers = { - "User-Agent": "Modoboa {}".format( - pkg_resources.get_distribution("modoboa").version - ) - } + headers = {"User-Agent": "Modoboa {}".format(version("modoboa"))} origmsgid = attributes.get("in_reply_to") if origmsgid: headers.update({"References": origmsgid, "In-Reply-To": origmsgid}) diff --git a/pyproject.toml b/pyproject.toml index 938376edb..a56d2f0da 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -58,6 +58,7 @@ dependencies = [ "chardet", "ovh", "oath", + "packaging", "redis>=4.2.0rc1", "rrdtool-bindings>=0.2.0", "qrcode",