Coverage for apps/streamlecture/streamlecture.py: 94%

18 statements  

« prev     ^ index     » next       coverage.py v7.15.4, created at 2026-08-09 04:47 +0000

1""" 

2StreamLecture: Generate a lecture video from slides and audio. 

3Starts an HTTP server to accept job submissions and monitor job status. 

4""" 

5 

6import sys 

7 

8from typing import override 

9from typing import Dict 

10from typing import Any 

11 

12from streamlecture_job import StreamLectureJob 

13 

14# Local relative imports 

15sys.path.append("..") # noqa: E402 

16sys.path.append("../..") # noqa: E402 

17 

18from streamwise_job import StreamWiseJob 

19from streamwise_app import StreamWiseApp 

20from streamwise_app import run_app 

21 

22 

23class StreamLectureApp(StreamWiseApp): 

24 """Quart app for StreamLecture video lecture generation.""" 

25 

26 def __init__(self) -> None: 

27 super().__init__("streamlecture") 

28 

29 @override 

30 def create_job( 

31 self, 

32 job_id: str, 

33 job_config: Dict[str, Any] 

34 ) -> StreamWiseJob: 

35 return StreamLectureJob( 

36 job_id=job_id, 

37 config=job_config, 

38 service_manager=self.service_manager 

39 ) 

40 

41 

42if __name__ == "__main__": 

43 run_app( 

44 StreamLectureApp, 

45 tmp_dir="/tmp/streamlecture", 

46 log_files=[ 

47 "streamwise.log", 

48 "streamlecture.log" 

49 ], 

50 app_name="StreamLecture", 

51 )