class_docstr: Base class to enqueue inputs.
  
  The task of an Enqueuer is to use parallelism to speed up preprocessing.
  This is done with processes or threads.
  
  Example:
  
  ```python
      enqueuer = PyDatasetEnqueuer(...)
      enqueuer.start()
      datas = enqueuer.get()
      for data in datas:
          # Use the inputs; training, evaluating, predicting.
          # ... stop sometime.
      enqueuer.stop()
  ```
  
  The `enqueuer.get()` should be an infinite stream of data.
docstr: Sends current Iterable to all workers.
docstr_tok: ["Sends","current","Iterable","to","all","workers","."]
code: def _send_py_dataset(self):
      """Sends current Iterable to all workers."""
      # For new processes that may spawn
      _SHARED_SEQUENCES[self.uid] = self.py_dataset
  
imports: import multiprocessing.dummy
  import queue
  import random
  import threading
  import time
  import warnings
  import weakref
  from contextlib import closing
  import numpy
  import tree
  from keras.api_export import keras_export
  from keras.trainers.data_adapters import data_adapter_utils
  from keras.trainers.data_adapters.data_adapter import DataAdapter
label_desc: Use image node_id 4 for calling the PyDatasetEnqueuer obj's underlying member method code with example usage: obj._send_py_dataset() without return types