class_docstr: Makes a generator reusable e.g.
  
  for x in gen:
      pass
  for x in gen:
      pass
code: def __iter__(self):
      return self.generator_function(*self.args, **self.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 2 for calling the ReusableGenerator obj's underlying member method code with example usage: obj.__iter__() and returns: self