class_docstr: Iterates over generated variants from the search space.
  
  This object also toggles between lazy evaluation and
  eager evaluation of samples. If lazy evaluation is enabled,
  this object cannot be serialized.
code: def __next__(self):
      if self.lazy_eval:
          current_value = self.next_value
          self._load_value()
          return current_value
      current_value = self.iterable.pop(0)
      self._has_next = bool(self.iterable)
      return current_value
  
imports: import copy
  import glob
  import itertools
  import os
  import uuid
  from typing import Dict, List, Optional, Union, TYPE_CHECKING
  import warnings
  import numpy
  from ray.air._internal.usage import tag_searcher
  from ray.tune.error import TuneError
  from ray.tune.experiment.config_parser import _make_parser, _create_trial_from_spec
  from ray.tune.search.sample import np_random_generator, _BackwardsCompatibleNumpyRng
  from ray.tune.search.variant_generator import _count_variants, _count_spec_samples, generate_variants, format_vars, _flatten_resolved_vars, _get_preset_variants
  from ray.tune.search.search_algorithm import SearchAlgorithm
  from ray.tune.utils.util import _atomic_save, _load_newest_checkpoint
  from ray.util import PublicAPI
label_desc: Use image node_id 4 for calling the _VariantIterator obj's underlying member method code with example usage: obj.__next__() and returns: current_value, current_value