Coverage for src / lilbee / runtime / progress / callbacks.py: 100%

8 statements  

« prev     ^ index     » next       coverage.py v7.13.4, created at 2026-05-15 20:55 +0000

1"""Progress callback protocol, no-op default, and shared progress context.""" 

2 

3from collections.abc import Callable 

4from contextvars import ContextVar 

5from typing import Any 

6 

7from lilbee.runtime.progress.types import ( 

8 BatchProgressEvent, 

9 CrawlDoneEvent, 

10 CrawlPageEvent, 

11 CrawlStartEvent, 

12 EmbedEvent, 

13 EventType, 

14 ExtractEvent, 

15 FileDoneEvent, 

16 FileStartEvent, 

17 SetupDoneEvent, 

18 SetupProgressEvent, 

19 SetupStartEvent, 

20 SyncDoneEvent, 

21) 

22 

23ProgressEvent = ( 

24 FileStartEvent 

25 | FileDoneEvent 

26 | BatchProgressEvent 

27 | ExtractEvent 

28 | EmbedEvent 

29 | SyncDoneEvent 

30 | CrawlStartEvent 

31 | CrawlPageEvent 

32 | CrawlDoneEvent 

33 | SetupStartEvent 

34 | SetupProgressEvent 

35 | SetupDoneEvent 

36) 

37 

38DetailedProgressCallback = Callable[[EventType, ProgressEvent], None] 

39 

40# When set, vision updates the batch task's description instead of creating its own bar. 

41# Value is (Progress, batch_task_id). 

42shared_progress: ContextVar[tuple[Any, Any] | None] = ContextVar("shared_progress", default=None) 

43 

44 

45def noop_callback(event_type: EventType, data: ProgressEvent) -> None: 

46 """Default no-op callback: discards all events."""