1
+ from typing import List
2
+
1
3
from PySide6 .QtCore import *
2
4
from PySide6 .QtGui import QAction
3
5
from PySide6 .QtWidgets import *
15
17
SHOWING_PROPERTIES_FOR_TASK ,
16
18
DELETE ,
17
19
RESTART ,
20
+ IN_PROGRESS ,
21
+ ERROR ,
18
22
)
19
23
from ModelInfoDialog import ModelInfoDialog
24
+ from QuantizationThread import QuantizationThread
25
+ from Logger import Logger
20
26
21
27
22
28
class TaskListItem (QWidget ):
23
29
def __init__ (
24
- self , task_name , log_file , show_progress_bar = True , parent = None
30
+ self ,
31
+ task_name ,
32
+ log_file ,
33
+ show_progress_bar = True ,
34
+ parent = None ,
35
+ show_properties = False ,
36
+ logger = Logger ,
37
+ quant_threads = List [QuantizationThread ],
25
38
) -> None :
26
39
super ().__init__ (parent )
40
+ self .quant_threads = quant_threads
27
41
self .task_name = task_name
28
42
self .log_file = log_file
43
+ self .logger = logger
44
+ self .show_properties = show_properties
29
45
self .status = "Pending"
30
46
layout = QHBoxLayout (self )
47
+
31
48
self .task_label = QLabel (task_name )
32
49
self .progress_bar = QProgressBar ()
33
50
self .progress_bar .setRange (0 , 100 )
@@ -84,7 +101,8 @@ def show_task_properties(self, item) -> None:
84
101
model_info_dialog .exec ()
85
102
break
86
103
87
- def cancel_task_by_item (self , item ) -> None :
104
+ def cancel_task (self , item ) -> None :
105
+ self .logger .info (CANCELLING_TASK .format (item .text ()))
88
106
task_item = self .task_list .itemWidget (item )
89
107
for thread in self .quant_threads :
90
108
if thread .log_file == task_item .log_file :
@@ -93,15 +111,11 @@ def cancel_task_by_item(self, item) -> None:
93
111
self .quant_threads .remove (thread )
94
112
break
95
113
96
- def cancel_task (self , item ) -> None :
97
- self .logger .info (CANCELLING_TASK .format (item .text ()))
98
- self .cancel_task_by_item (item )
99
-
100
114
def delete_task (self , item ) -> None :
101
115
self .logger .info (DELETING_TASK .format (item .text ()))
102
116
103
117
# Cancel the task first
104
- self .cancel_task_by_item (item )
118
+ self .cancel_task (item )
105
119
106
120
reply = QMessageBox .question (
107
121
self ,
@@ -121,21 +135,21 @@ def delete_task(self, item) -> None:
121
135
def update_status (self , status ) -> None :
122
136
self .status = status
123
137
self .status_label .setText (status )
124
- if status == "In Progress" :
138
+ if status == IN_PROGRESS :
125
139
# Only start timer if showing percentage progress
126
140
if self .progress_bar .isVisible ():
127
141
self .progress_bar .setRange (0 , 100 )
128
142
self .progress_timer .start (100 )
129
- elif status == "Completed" :
143
+ elif status == COMPLETED :
130
144
self .progress_timer .stop ()
131
145
self .progress_bar .setValue (100 )
132
- elif status == "Canceled" :
146
+ elif status == CANCELED :
133
147
self .progress_timer .stop ()
134
148
self .progress_bar .setValue (0 )
135
149
136
150
def set_error (self ) -> None :
137
- self .status = "Error"
138
- self .status_label .setText ("Error" )
151
+ self .status = ERROR
152
+ self .status_label .setText (ERROR )
139
153
self .status_label .setStyleSheet ("color: red;" )
140
154
self .progress_bar .setRange (0 , 100 )
141
155
self .progress_timer .stop ()
0 commit comments