From 1c52e364aa987dd03b4e9f52e0b725b6f335863b Mon Sep 17 00:00:00 2001
From: 游雁 <zhifu.gzf@alibaba-inc.com>
Date: 星期五, 21 六月 2024 11:19:19 +0800
Subject: [PATCH] version checker

---
 funasr/auto/auto_model.py       |    7 +++++++
 funasr/utils/version_checker.py |   24 ++++++++++++++++++++++++
 2 files changed, 31 insertions(+), 0 deletions(-)

diff --git a/funasr/auto/auto_model.py b/funasr/auto/auto_model.py
index 57a15db..01e6aaf 100644
--- a/funasr/auto/auto_model.py
+++ b/funasr/auto/auto_model.py
@@ -111,6 +111,13 @@
 
     def __init__(self, **kwargs):
 
+        try:
+            from funasr.utils.version_checker import check_for_update
+
+            check_for_update()
+        except:
+            pass
+
         log_level = getattr(logging, kwargs.get("log_level", "INFO").upper())
         logging.basicConfig(level=log_level)
 
diff --git a/funasr/utils/version_checker.py b/funasr/utils/version_checker.py
new file mode 100644
index 0000000..1a6970e
--- /dev/null
+++ b/funasr/utils/version_checker.py
@@ -0,0 +1,24 @@
+import requests
+from packaging import version
+from funasr import __version__  # Ensure that __version__ is defined in your package's __init__.py
+
+
+def get_pypi_version(package_name):
+    url = f"https://pypi.org/pypi/{package_name}/json"
+    response = requests.get(url)
+    if response.status_code == 200:
+        data = response.json()
+        return version.parse(data["info"]["version"])
+    else:
+        raise Exception("Failed to retrieve version information from PyPI.")
+
+
+def check_for_update():
+    current_version = version.parse(__version__)
+    pypi_version = get_pypi_version("funasr")
+
+    if current_version < pypi_version:
+        print(f"New version available: {pypi_version}. Your current version is {current_version}.")
+        print('Please use the command "pip install -U funasr" to upgrade.')
+    else:
+        print("You are using the latest version of funasr.")

--
Gitblit v1.9.1