44import logging
55from dataclasses import dataclass
66
7- from kernelbot .api .api_utils import MultiProgressReporterAPI
87from libkernelbot .backend import KernelBackend
98from libkernelbot .consts import SubmissionMode
9+ from libkernelbot .report import MultiProgressReporter , RunProgressReporter , RunResultReport
1010from libkernelbot .submission import ProcessedSubmissionRequest
1111from libkernelbot .utils import setup_logging
1212
@@ -28,6 +28,25 @@ class JobItem:
2828HARD_TIMEOUT_SEC = 60 * 30 # hard timeout 30 mins
2929
3030
31+ # Reporter used in background submission manager, it is a dummy reporter that does nothing
32+ class BackgroundSubmissionManagerReporter (MultiProgressReporter ):
33+ def __init__ (self ):
34+ self .runs = []
35+ async def show (self , title : str ):
36+ return
37+ def add_run (self , title : str ) -> "BackgroundSubmissionManagerReporterRunProgressReporter" :
38+ rep = BackgroundSubmissionManagerReporterRunProgressReporter (title )
39+ self .runs .append (rep )
40+ return rep
41+ def make_message (self ):
42+ return
43+ class BackgroundSubmissionManagerReporterRunProgressReporter (RunProgressReporter ):
44+ async def _update_message (self ):
45+ pass
46+ async def display_report (self , title : str , report : RunResultReport ):
47+ pass
48+
49+
3150class BackgroundSubmissionManager :
3251 """
3352 This class manages submission in the backeground. It is responsible for
@@ -211,7 +230,7 @@ async def heartbeat():
211230
212231 hb_task = asyncio .create_task (heartbeat (), name = f"hb-{ sub_id } " )
213232 try :
214- reporter = MultiProgressReporterAPI ()
233+ reporter = BackgroundSubmissionManagerReporter ()
215234 await asyncio .wait_for (
216235 self .backend .submit_full (
217236 item .req , item .mode , reporter , sub_id
0 commit comments