class_docstr: Wraps population of step methods to step them in parallel with single or multiprocessing.
class_docstr_tok: ["Wraps","population","of","step","methods","to","step","them","in","parallel","with","single","or","multiprocessing","."]
code: def __exit__(self, exc_type, exc_val, exc_tb):
      if len(self._processes) > 0:
          try:
              for primary_end in self._primary_ends:
                  primary_end.send(None)
              for process in self._processes:
                  process.join(timeout=3)
          except Exception:
              _log.warning("Termination failed.")
      return
  
imports: import logging
  import warnings
  from copy import copy
  from typing import Iterator, List, Sequence, Tuple, Union
  import cloudpickle
  import numpy
  from fastprogress.fastprogress import progress_bar
  from typing_extensions import TypeAlias
  from pymc.backends.base import BaseTrace
  from pymc.initial_point import PointType
  from pymc.model import Model, modelcontext
  from pymc.stats.convergence import log_warning_stats
  from pymc.step_methods import CompoundStep
  from pymc.step_methods.arraystep import BlockedStep, PopulationArrayStepShared, StatsType
  from pymc.step_methods.metropolis import DEMetropolis
  from pymc.util import RandomSeed
label_desc: Use image node_id 3 for calling the PopulationStepper obj's underlying member method code with example usage: obj.__exit__(exc_type, exc_val, exc_tb) without return types