From 9d8bf79565050973735dde12be0c0fda4543ce06 Mon Sep 17 00:00:00 2001 From: sudoskys Date: Sat, 5 Oct 2024 11:30:45 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20refactor(cli):=20update=20import?= =?UTF-8?q?=20handling=20for=20metadata=20module?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Use try-except to support importlib.metadata for Python <3.8 - Move CURRENT_VERSION assignment into check_for_updates function --- src/tsticker/cli.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/tsticker/cli.py b/src/tsticker/cli.py index 89925ad..b452898 100644 --- a/src/tsticker/cli.py +++ b/src/tsticker/cli.py @@ -1,6 +1,5 @@ import asyncio import atexit -import importlib.metadata as metadata import os import pathlib from asyncio import Semaphore @@ -25,9 +24,12 @@ from tsticker.core.const import SERVICE_NAME, USERNAME from tsticker.core.create import StickerPack, Emote -CURRENT_VERSION = metadata.version("tsticker") -PYPI_URL = "https://pypi.org/pypi/tsticker/json" +try: + from importlib import metadata +except ImportError: # for Python<3.8 + import importlib_metadata as metadata +PYPI_URL = "https://pypi.org/pypi/tsticker/json" magika = Magika() console = Console() # 全局请求限制器 @@ -36,12 +38,12 @@ async def check_for_updates(): + CURRENT_VERSION = metadata.version("tsticker") try: response = requests.get(PYPI_URL) if response.status_code == 200: package_info = response.json() latest_version = package_info['info']['version'] - if latest_version != CURRENT_VERSION: release_notes = package_info['releases'].get(latest_version, []) release_info = release_notes[0] if release_notes else {}