:py:mod:`processes` =================== .. py:module:: processes Module Contents --------------- Classes ~~~~~~~ .. autoapisummary:: processes.PassSigFeedback processes.ProcessProgressCmd processes.ProcessProgressTask processes.ProcessProgFeedback processes.ProgressTracker processes.ProcessProgress processes.ProcessTask processes.ProcessSigPassTask processes.ProcessTaskResult processes.SingleProcess Functions ~~~~~~~~~ .. autoapisummary:: processes.AutoProxy processes.apply_autoproxy_fix processes.create_manager processes.create_queue processes.get_empty_queue_exception processes.get_max_num_processes processes.locate_uuid processes.prog_sig_pass Attributes ~~~~~~~~~~ .. autoapisummary:: processes.logger processes.orig_AutoProxy .. py:data:: logger :value: "'processes'" .. py:data:: orig_AutoProxy .. py:function:: AutoProxy(*args, incref=True, manager_owned=False, **kwargs) .. py:function:: apply_autoproxy_fix() .. py:function:: create_manager() -> multiprocessing.Manager .. py:function:: create_queue() -> multiprocessing.JoinableQueue .. py:function:: get_empty_queue_exception() -> type .. py:function:: get_max_num_processes() -> int .. py:function:: locate_uuid(object_list: List[object], wanted_uuid: uuid.UUID) .. py:class:: PassSigFeedback(feedback_queue: multiprocessing.JoinableQueue) .. py:attribute:: fbq .. py:method:: add_particlenode(node: tree_model.DatasetTreeNode, num: int) .. py:method:: add_all_particlenodes(all_nodes: list) .. py:method:: add_datasetnode(node: tree_model.DatasetTreeNode) .. py:method:: reset_tree() .. py:method:: bin_size(bin_size: int) .. py:method:: set_start(start: float) .. py:method:: set_tmin(tmin: float) .. py:method:: data_loaded() .. py:method:: add_irf(decay: numpy.ndarray, time_series: numpy.ndarray) .. py:class:: ProcessProgressCmd Bases: :py:obj:`enum.IntEnum` Enum where members are also (and must be) ints .. py:attribute:: Start .. py:attribute:: SetMax .. py:attribute:: AddMax .. py:attribute:: Single .. py:attribute:: Step .. py:attribute:: SetValue .. py:attribute:: Complete .. py:attribute:: SetStatus .. py:class:: ProcessProgressTask(task_cmd: ProcessProgressCmd, args=None) .. py:attribute:: task_cmd .. py:attribute:: args :value: 'None' .. py:class:: ProcessProgFeedback(feedback_queue: multiprocessing.JoinableQueue) .. py:attribute:: fbq .. py:method:: set_max(max_value: int) .. py:method:: add_max(max_to_add: int) .. py:method:: single() .. py:method:: step(value: float = None) .. py:method:: set_value(value: int) .. py:method:: end() .. py:method:: set_status(status) .. py:method:: start(max_value: int = None) .. py:function:: prog_sig_pass(signals: signals.ProcessThreadSignals, cmd: ProcessProgressCmd, args) .. py:class:: ProgressTracker(num_iterations: int = None, num_trackers: int = 1) .. py:property:: num_iterations :type: int .. py:property:: num_trackers :type: int .. py:attribute:: has_num_iterations :value: 'False' .. py:attribute:: _num_iterations :value: 'None' .. py:attribute:: _num_trackers :value: 'None' .. py:attribute:: _step_value :value: 'None' .. py:attribute:: _current_value :value: '0.0' .. py:method:: calc_step_value() .. py:method:: iterate() -> int .. py:method:: strict_iterate() -> float .. py:method:: reset() .. py:class:: ProcessProgress(prog_fb: ProcessProgFeedback, num_iterations: int = None, num_of_processes: int = 1) Bases: :py:obj:`ProgressTracker` .. py:attribute:: _prog_fb .. py:attribute:: _accum_step .. py:method:: start_progress() .. py:method:: iterate() .. py:class:: ProcessTask(obj: object, method_name: str, args=None) .. py:attribute:: uuid .. py:attribute:: obj .. py:attribute:: method_name .. py:attribute:: args :value: 'None' .. py:class:: ProcessSigPassTask(sig_pass_type: signals.WorkerSigPassType, sig_args=None) .. py:attribute:: sig_pass_type .. py:attribute:: sig_args :value: 'None' .. py:class:: ProcessTaskResult(task_uuid: uuid.UUID = None, task_return=None, new_task_obj: ProcessTask = None, task_complete: bool = True, dont_send: bool = False) .. py:attribute:: task_uuid :value: 'None' .. py:attribute:: task_return :value: 'None' .. py:attribute:: new_task_obj :value: 'None' .. py:attribute:: task_complete :value: 'True' .. py:attribute:: dont_send :value: 'False' .. py:class:: SingleProcess(task_queue: multiprocessing.JoinableQueue, result_queue: multiprocessing.JoinableQueue, feedback_queue: multiprocessing.JoinableQueue = None, temp_dir: tempfile.TemporaryDirectory = None) Bases: :py:obj:`multiprocessing.Process` Process objects represent activity that is run in a separate process The class is analogous to `threading.Thread` .. py:attribute:: task_queue .. py:attribute:: result_queue .. py:attribute:: feedback_queue :value: 'None' .. py:attribute:: _temp_dir :value: 'None' .. py:method:: run() Method to be run in sub-process; can be overridden in sub-class