class_docstr: Pool implementation with customizable pickling reducers.
  
  This is useful to control how data is shipped between processes
  and makes it possible to use shared memory without useless
  copies induces by the default pickling methods of the original
  objects passed as arguments to dispatch.
  
  `forward_reducers` and `backward_reducers` are expected to be
  dictionaries with key/values being `(type, callable)` pairs where
  `callable` is a function that, given an instance of `type`, will return a
  tuple `(constructor, tuple_of_objects)` to rebuild an instance out of the
  pickled `tuple_of_objects` as would return a `__reduce__` method.
  See the standard library documentation about pickling for more details.
code: def __init__(
      self,
      processes=None,
      forward_reducers=None,
      backward_reducers=None,
      **kwargs,
  ):
      if forward_reducers is None:
          forward_reducers = dict()
      if backward_reducers is None:
          backward_reducers = dict()
      self._forward_reducers = forward_reducers
      self._backward_reducers = backward_reducers
      poolargs = dict(processes=processes)
      poolargs.update(kwargs)
      super(PicklingPool, self).__init__(**poolargs)
  
imports: import copyreg
  import sys
  import warnings
  from time import sleep
  from pickle import Pickler
  from pickle import HIGHEST_PROTOCOL
  from io import BytesIO
  from ._memmapping_reducer import get_memmapping_reducers
  from ._memmapping_reducer import TemporaryResourcesManager
  from ._multiprocessing_helpers import mp, assert_spawning
  from multiprocessing.pool import Pool
label_desc: Use image node_id 1 to create a new PicklingPool object from inherited base classes: Pool with example: obj = PicklingPool(processes, forward_reducers, backward_reducers)