Coverage for src/qdrant_loader/cli/update_check.py: 56%
18 statements
« prev ^ index » next coverage.py v7.10.6, created at 2025-09-08 06:05 +0000
« prev ^ index » next coverage.py v7.10.6, created at 2025-09-08 06:05 +0000
1from __future__ import annotations
4def check_for_updates(version_str: str) -> None:
5 """Non-raising check for updates; safe for CLI startup."""
6 try:
7 import asyncio
8 import inspect
10 from qdrant_loader.utils.version_check import check_version_async
12 result = check_version_async(version_str, silent=False)
13 if inspect.isawaitable(result):
14 try:
15 loop = asyncio.get_running_loop()
16 except RuntimeError:
17 # No running loop: run to completion synchronously
18 asyncio.run(result)
19 else:
20 # Running loop detected: schedule in background to avoid blocking
21 try:
22 loop.create_task(result)
23 except Exception:
24 # Best effort; never raise from update checks
25 pass
26 except Exception:
27 # Never raise from update checks
28 pass