MCPcopy Create free account
hub / github.com/LabPy/lantz / initialize_and_report

Function initialize_and_report

lantz/ui/widgets.py:1194–1303  ·  view source on GitHub ↗

Initialize drivers while reporting the status in a QtWidget. :param widget: Qt Widget where the status information is going to be shown. :param drivers: iterable of drivers to initialize. :param register_finalizer: register driver.finalize method to be called at python exit. :param

(widget, drivers, register_finalizer=True,
                          initializing_msg='Initializing ...', initialized_msg='Initialized',
                          concurrent=True, dependencies=None)

Source from the content-addressed store, hash-verified

1192
1193
1194def initialize_and_report(widget, drivers, register_finalizer=True,
1195 initializing_msg='Initializing ...', initialized_msg='Initialized',
1196 concurrent=True, dependencies=None):
1197 """Initialize drivers while reporting the status in a QtWidget.
1198
1199 :param widget: Qt Widget where the status information is going to be shown.
1200 :param drivers: iterable of drivers to initialize.
1201 :param register_finalizer: register driver.finalize method to be called at python exit.
1202 :param initializing_msg: message to be displayed while initializing.
1203 :param initialized_msg: message to be displayed after successful initialization.
1204 :param concurrent: indicates that drivers with satisfied dependencies
1205 should be initialized concurrently.
1206 :param dependencies: indicates which drivers depend on others to be initialized.
1207 each key is a driver name, and the corresponding
1208 value is an iterable with its dependencies.
1209 :return: the QThread doing the initialization.
1210 """
1211 timing = {}
1212
1213 thread = QtCore.QThread()
1214 helper = InitializerHelper(drivers, register_finalizer, concurrent, dependencies)
1215 helper.moveToThread(thread)
1216 thread.helper = helper
1217
1218 if isinstance(widget, QtGui.QTableWidget):
1219 def _initializing(driver):
1220 timing[driver] = time.time()
1221 row = drivers.index(driver)
1222 widget.setItem(row, 2, QtGui.QTableWidgetItem(initializing_msg))
1223
1224 def _initialized(driver):
1225 delta = time.time() - timing[driver]
1226 row = drivers.index(driver)
1227 widget.setItem(row, 2, QtGui.QTableWidgetItem(initialized_msg + ' ({:.1f} sec)'.format(delta)))
1228
1229 def _exception(driver, e):
1230 delta = time.time() - timing[driver]
1231 row = drivers.index(driver)
1232 widget.setItem(row, 2, QtGui.QTableWidgetItem('{} ({:.1f} sec)'.format(e, delta)))
1233
1234 def _done(duration):
1235 widget.setItem(len(drivers), 2, QtGui.QTableWidgetItem('{:.1f} sec'.format(duration)))
1236 thread.quit()
1237
1238 widget.clearContents()
1239 widget.setRowCount(len(drivers) + 1)
1240 for row, driver in enumerate(drivers):
1241 widget.setItem(row, 0, QtGui.QTableWidgetItem(driver.name))
1242 widget.setItem(row, 1, QtGui.QTableWidgetItem(driver.__class__.__name__))
1243 widget.setItem(row, 2, QtGui.QTableWidgetItem(''))
1244
1245 widget.resizeColumnToContents(0)
1246 widget.horizontalHeader().setStretchLastSection(True)
1247
1248 elif isinstance(widget, QtGui.QLineEdit):
1249 def _initializing(driver):
1250 timing[driver] = time.time()
1251 widget.setText('{} ({}) > {}'.format(driver.name, driver.__class__.__name__,

Callers 1

initializeMethod · 0.90

Calls 4

InitializerHelperClass · 0.85
setReadOnlyMethod · 0.45
connectMethod · 0.45
startMethod · 0.45

Tested by

no test coverage detected