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

1from __future__ import annotations 

2 

3 

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 

9 

10 from qdrant_loader.utils.version_check import check_version_async 

11 

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