class_docstr: Makes a generator reusable e.g.
  
  for x in gen:
      pass
  for x in gen:
      pass
code: def __init__(self, generator_function, *args, **kwargs):
      self.generator_function = generator_function
      self.args = args
      self.kwargs = kwargs
  
imports: import math
  import itertools
  from dataclasses import replace
  from typing import Mapping, Any, Sequence, Iterable, Iterator, Union, Tuple, Dict, Set
label_desc: Use image node_id 1 to create a new ReusableGenerator object from inherited base classes: Iterable with example: obj = ReusableGenerator(generator_function)