32 lines
934 B
Python
32 lines
934 B
Python
import contextlib
|
|
import requests
|
|
import semver
|
|
from importlib.metadata import version
|
|
from rich.console import Console
|
|
|
|
|
|
GUARDRAILS_PACKAGE_NAME = "guardrails-ai"
|
|
|
|
|
|
def get_guardrails_version():
|
|
return version(GUARDRAILS_PACKAGE_NAME)
|
|
|
|
|
|
def version_warnings_if_applicable(console: Console):
|
|
current_version = get_guardrails_version()
|
|
|
|
with contextlib.suppress(Exception):
|
|
res = requests.get(f"https://pypi.org/pypi/{GUARDRAILS_PACKAGE_NAME}/json")
|
|
version_info = res.json()
|
|
info = version_info.get("info", {})
|
|
latest_version = info.get("version")
|
|
|
|
is_update_available = semver.compare(latest_version, current_version) > 0
|
|
|
|
if is_update_available:
|
|
console.print(
|
|
"[yellow]There is a newer version of Guardrails "
|
|
f"available {latest_version}. Your current version "
|
|
f"is {current_version}[/yellow]!"
|
|
)
|