8.6.4.8. pymodaq_gui.managers.runner_thread_manager module

class pymodaq_gui.managers.runner_thread_manager.DataForProcessor(node_path)[source]

Bases: object

To be subclassed if necessary!

node_path: str
class pymodaq_gui.managers.runner_thread_manager.ThreadWorker(parent=None)[source]

Bases: QObject

Methods

data_processed_signal

data_to_process_signal

data_to_save_signal

n_jobs_done_signal

data_processed_signal
data_to_process_signal
data_to_save_signal
n_jobs_done_signal
name = 'ThreadWorker'
params = [{'children': [{'name': 'worker_running', 'readonly': True, 'title': 'Worker Running:', 'type': 'led', 'value': False}, {'name': 'worker_tasks', 'readonly': True, 'title': 'Pending save tasks:', 'tooltip': 'Scan points queued to be written but not yet saved to disk. Usually near 0 since saving is normally faster than acquisition; a sustained non-zero value means the saver is falling behind the scan.', 'type': 'int', 'value': 0}], 'name': 'worker', 'title': 'Worker', 'type': 'group'}]
staticMetaObject = PySide6.QtCore.QMetaObject("ThreadWorker" inherits "QObject": Methods:   #4 type=Signal, signature=n_jobs_done_signal(QString,int), parameters=QString, int   #5 type=Signal, signature=data_to_save_signal(PyObject), parameters=PyObject   #6 type=Signal, signature=data_to_process_signal(PyObject), parameters=PyObject   #7 type=Signal, signature=data_processed_signal(PyObject), parameters=PyObject )
worker_setting_name: str = 'worker'
class pymodaq_gui.managers.runner_thread_manager.WorkerThreadManager(parent=None)[source]

Bases: QObject

Attributes:
runner_thread

for back compatibility

worker
worker_thread

Methods

create_thread_for_worker(name, worker[, ...])

Create a new thread (or return an existing one) for a worker, and move the worker to it I t is up to you to connect the worker methods with your main app using Signal/Slot connections

exit_runner_thread([duration])

for back compatibility

exit_worker_thread

exit_worker_threads

get_last_name

get_thread

get_worker

start_thread

create_thread_for_worker(name, worker, delete_if_exists=True, start_thread=False, thread=None)[source]

Create a new thread (or return an existing one) for a worker, and move the worker to it I t is up to you to connect the worker methods with your main app using Signal/Slot connections

Do not use direct method call, otherwise the method will be executed in the calling thread

Return type:

QThread

exit_runner_thread(duration=5000)[source]

for back compatibility

exit_worker_thread(runner_name=None, duration=5000, delete_worker=False)[source]
exit_worker_threads(delete_worker=False)[source]
get_last_name()[source]
Return type:

str | None

get_thread(name)[source]
Return type:

QThread

get_worker(name)[source]
Return type:

ThreadWorker

start_thread(name=None)[source]
current_name: str
n_jobs: dict[str, int]
property runner_thread: QThread

for back compatibility

staticMetaObject = PySide6.QtCore.QMetaObject("WorkerThreadManager" inherits "QObject": )
property worker: ThreadWorker
property worker_thread: QThread
worker_threads: dict[str, QThread]
workers: dict[str, ThreadWorker]
pymodaq_gui.managers.runner_thread_manager.get_thread_params(worker_setting_name)[source]
Return type:

list[dict]