naturtag.app.threadpool module

Adapted from examples in Python & Qt6 by Martin Fitzpatrick

class naturtag.app.threadpool.ProgressBar(**kwargs)

Bases: QProgressBar

Shared progress bar, updated by ThreadPool

add(amount=1)
advance(amount=1)
fadein()
fadeout()
reset(self) None
schedule_reset()

After a delay, if no new tasks have been added, reset and hide the progress bar

staticMetaObject = PySide6.QtCore.QMetaObject("ProgressBar" inherits "QProgressBar": Methods:   #40 type=Slot, signature=advance(int), parameters=int )
class naturtag.app.threadpool.ThreadPool(n_worker_threads=0, **kwargs)

Bases: QThreadPool

Thread pool that enqueues jobs to ber run from separate thread(s), and updates a progress bar.

cancel()

Cancel all queued tasks and reset progress bar. Currently running tasks will be allowed to complete.

schedule(callback, priority=Priority.NormalPriority, total_results=None, increment_length=False, **kwargs)

Schedule a task to be run by the next available worker thread

Return type:

WorkerSignals

staticMetaObject = PySide6.QtCore.QMetaObject("ThreadPool" inherits "QThreadPool": )
class naturtag.app.threadpool.Worker(callback, increment_length=False, **kwargs)

Bases: QRunnable

A worker thread that takes a callback (and optional args/kwargs), and updates progress when done.

run(self) None
class naturtag.app.threadpool.WorkerSignals

Bases: QObject

Signals used by a worker thread (can’t be set directly on a QRunnable)

on_error

Return exception info on error

on_progress

Increment progress bar

on_result

Return result on completion

staticMetaObject = PySide6.QtCore.QMetaObject("WorkerSignals" inherits "QObject": Methods:   #4 type=Signal, signature=on_error(PyObject), parameters=PyObject   #5 type=Signal, signature=on_result(PyObject), parameters=PyObject   #6 type=Signal, signature=on_progress(int), parameters=int )