From c062ad8e669bfbd907385f34c1ab26899ef559cd Mon Sep 17 00:00:00 2001 From: vvzvlad Date: Sun, 19 Jan 2025 11:32:51 +0300 Subject: [PATCH] Enhance package management in checker.py by implementing version control for required packages. Added warnings filter to suppress warning messages. The script now checks for specific package versions and installs them accordingly, improving dependency management and ensuring compatibility. This change enhances the robustness of the environment setup for the checker process. --- checker.py | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/checker.py b/checker.py index a800d49..691ce82 100644 --- a/checker.py +++ b/checker.py @@ -3,6 +3,9 @@ # pylance: disable=reportMissingImports, reportMissingModuleSource, reportGeneralTypeIssues # type: ignore +import warnings +warnings.filterwarnings("ignore", category=Warning) + import re from datetime import datetime, timedelta, timezone import subprocess @@ -14,12 +17,23 @@ import pkg_resources import requests import json from collections import deque -required_packages = ['grist-api', 'colorama'] -installed_packages = [pkg.key for pkg in pkg_resources.working_set] -for package in required_packages: - if package not in installed_packages: - subprocess.check_call([sys.executable, '-m', 'pip', 'install', package, '--break-system-packages']) +required_packages = { + 'grist-api': 'latest', + 'colorama': 'latest', + 'requests': '2.31.0', + 'urllib3': '2.0.7', + 'charset-normalizer': '3.3.2' +} + +installed_packages = {pkg.key: pkg.version for pkg in pkg_resources.working_set} + +for package, version in required_packages.items(): + if package not in installed_packages or (version != 'latest' and installed_packages[package] != version): + if version == 'latest': + subprocess.check_call([sys.executable, '-m', 'pip', 'install', package, '--break-system-packages']) + else: + subprocess.check_call([sys.executable, '-m', 'pip', 'install', f"{package}=={version}", '--break-system-packages']) from grist_api import GristDocAPI import colorama