OllamaInterface/OllamaPullProgressDialog.py

Mon, 07 Apr 2025 18:22:30 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Mon, 07 Apr 2025 18:22:30 +0200
changeset 69
eb9340034f26
parent 67
3c2bcbf7eeaf
permissions
-rw-r--r--

Created global tag <release-10.1.8>.

11
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
67
3c2bcbf7eeaf Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
3 # Copyright (c) 2024 - 2025 Detlev Offenbach <detlev@die-offenbachs.de>
11
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a dialog showing the progress of a model pull action..
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 from PyQt6.QtCore import Qt, pyqtSignal, pyqtSlot
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 from PyQt6.QtWidgets import (
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 QAbstractButton,
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 QDialog,
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 QDialogButtonBox,
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 QProgressBar,
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 QTreeWidgetItem,
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 )
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 from eric7 import Globals
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 from .Ui_OllamaPullProgressDialog import Ui_OllamaPullProgressDialog
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 class OllamaPullProgressBar(QProgressBar):
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 """
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 Class implementing a progress bar allowing values outside the standard range.
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 """
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 def __init__(self, parent=None):
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 """
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 Constructor
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 @param parent reference to the parent widget (defaults to None)
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 @type QWidget (optional)
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 """
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 super().__init__(parent)
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 self.__maximum = 100
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 self.__minimum = 0
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 self.__value = 0
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 def maximum(self):
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 """
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 Public method to get the maximum value.
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 @return maximum value
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 @rtype int
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 """
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 return self.__maximum
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 def setMaximum(self, value):
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 """
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 Public method to set the maximum value.
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 @param value new maximum value
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 @type int
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 """
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 if value != self.__maximum:
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 self.__maximum = value
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 self.setValue(self.__value)
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 def value(self):
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 """
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 Public method to get the current value.
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 @return current value
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 @rtype int
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 """
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 return self.__value
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 def setValue(self, value):
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 """
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 Public method to set the current value.
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 @param value new value
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 @type int
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 """
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 if value != self.__value:
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 self.__value = value
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 super().setValue(self.__value * 100 // self.__maximum)
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 class OllamaPullProgressDialog(QDialog, Ui_OllamaPullProgressDialog):
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 """
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 Class implementing a dialog showing the progress of a model pull action.
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 @signal abortPull() emitted to abort the current model pull operation
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 """
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 abortPull = pyqtSignal()
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 def __init__(self, parent=None):
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 """
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 Constructor
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 @param parent reference to the parent widget (defaults to None)
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 @type QWidget (optional)
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 """
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 super().__init__(parent)
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 self.setupUi(self)
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 self.header.clear()
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 self.__progressBarItems = {}
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 self.setFinished(True)
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 @pyqtSlot(QAbstractButton)
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 def on_buttonBox_clicked(self, button):
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 """
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 Private slot handling a button of the button box being clicked.
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 @param button reference to the clicked button
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 @type QAbstractButton
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 """
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 if button == self.buttonBox.button(QDialogButtonBox.StandardButton.Cancel):
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 self.abortPull.emit()
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 elif button == self.buttonBox.button(QDialogButtonBox.StandardButton.Close):
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 self.close()
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 def closeEvent(self, evt):
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 """
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 Protected method to handle a close event.
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 @param evt reference to the close event object
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125 @type QCloseEvent
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 """
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 if not self.__finished:
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 evt.ignore()
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 def setModel(self, model):
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 """
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 Public method to show the model name in the header.
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 @param model model name
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 @type str
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 """
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 self.header.setText(
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 self.tr("<p>Installing model <b>{0}</b>.</p>").format(model)
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 )
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 def clear(self):
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 """
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 Public method to clear the progress information.
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 """
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 self.__progressBarItems.clear()
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 self.progressList.clear()
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 def setStatus(self, status, idStr, total, completed):
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 """
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 Public method to show the status update.
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152 @param status status message reported by the 'ollama' server
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 @type str
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 @param idStr ID of the file being pulled or empty
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 @type str
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 @param total size of the file being pulled or 0 in case of an empty ID
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 @type int
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158 @param completed downloaded bytes or 0 in case of an empty ID
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 @type int
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 """
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 self.setFinished(False)
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163 if idStr:
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 try:
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 itm = self.__progressBarItems[idStr]
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 except KeyError:
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 itm = QTreeWidgetItem(self.progressList, [status, "", ""])
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 itm.setTextAlignment(2, Qt.AlignmentFlag.AlignCenter)
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169 self.progressList.resizeColumnToContents(0)
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171 bar = OllamaPullProgressBar()
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172 bar.setMaximum(total)
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173 self.progressList.setItemWidget(itm, 1, bar)
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175 self.__progressBarItems[idStr] = itm
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177 if completed == total:
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178 itm.setText(2, Globals.dataString(total))
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 else:
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 itm.setText(
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
181 2,
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182 self.tr("{0} / {1}", "completed / total").format(
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183 Globals.dataString(completed), Globals.dataString(total)
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184 ),
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185 )
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
186 self.progressList.itemWidget(itm, 1).setValue(completed)
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
187 else:
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
188 itm = QTreeWidgetItem(self.progressList, [status])
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189 itm.setFirstColumnSpanned(True)
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
190
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
191 if status == "success":
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
192 self.setFinished(True)
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
193
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
194 def showError(self, errMsg):
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
195 """
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
196 Public method to show an error message reported by the server.
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
197
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
198 @param errMsg error message
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
199 @type str
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
200 """
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
201 itm = QTreeWidgetItem(self.progressList, [self.tr("Error: {0}").format(errMsg)])
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
202 itm.setFirstColumnSpanned(True)
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
203
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
204 def setFinished(self, finished):
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
205 """
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
206 Public method to set the finished state.
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
207
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
208 @param finished flag indicating the finished state
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209 @type bool
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210 """
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
211 self.__finished = finished
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
212
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
213 self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setEnabled(
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
214 finished
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
215 )
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
216 self.buttonBox.button(QDialogButtonBox.StandardButton.Cancel).setEnabled(
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
217 not finished
3641ea6b55d5 Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
218 )

eric ide

mercurial