Spaces:
Configuration error
Configuration error
| import threading | |
| import time | |
| import requests | |
| from inference.core.env import DISABLE_VERSION_CHECK, VERSION_CHECK_MODE | |
| from inference.core.logger import logger | |
| from inference.core.version import __version__ | |
| latest_release = None | |
| last_checked = 0 | |
| cache_duration = 86400 # 24 hours | |
| log_frequency = 300 # 5 minutes | |
| def get_latest_release_version(): | |
| global latest_release, last_checked | |
| now = time.time() | |
| if latest_release is None or now - last_checked > cache_duration: | |
| try: | |
| logger.debug("Checking for latest inference release version...") | |
| response = requests.get( | |
| "https://api.github.com/repos/roboflow/inference/releases/latest" | |
| ) | |
| response.raise_for_status() | |
| latest_release = response.json()["tag_name"].lstrip("v") | |
| last_checked = now | |
| except requests.exceptions.RequestException: | |
| pass | |
| def check_latest_release_against_current(): | |
| get_latest_release_version() | |
| if latest_release is not None and latest_release != __version__: | |
| logger.warning( | |
| f"Your inference package version {__version__} is out of date! Please upgrade to version {latest_release} of inference for the latest features and bug fixes by running `pip install --upgrade inference`." | |
| ) | |
| def check_latest_release_against_current_continuous(): | |
| while True: | |
| check_latest_release_against_current() | |
| time.sleep(log_frequency) | |
| if not DISABLE_VERSION_CHECK: | |
| if VERSION_CHECK_MODE == "continuous": | |
| t = threading.Thread(target=check_latest_release_against_current_continuous) | |
| t.daemon = True | |
| t.start() | |
| else: | |
| check_latest_release_against_current() | |