class_docstr: Wraps an hyperparameter nested dict or flat dict, and offer a few more functions to process
  all contained HyperparameterDistribution.
  
  This can be set on a Pipeline with the method ``set_hyperparams_space``.
  
  Calling ``.rvs()`` on an ``HyperparameterSpace`` results in ``HyperparameterSamples``.
class_docstr_tok: ["Wraps","an","hyperparameter","nested","dict","or","flat","dict",",","and","offer","a","few","more","functions","to","process","all","contained","HyperparameterDistribution",".","This","can","be","set","on","a","Pipeline","with","the","method","``","set_hyperparams_space","``",".","Calling","``",".rvs","(",")","``","on","an","``","HyperparameterSpace","``","results","in","``","HyperparameterSamples","``","."]
code: def __init__(self, *args, separator=None, **kwds):
      super().__init__(*args, separator=separator, **kwds)
  
imports: import typing
  from collections import Counter, OrderedDict, defaultdict
  from copy import copy
  from typing import Any, Dict, Iterable, List, Set, Union
  from neuraxle.hyperparams.distributions import FixedHyperparameter, HPSampledValue, HyperparameterDistribution
  from neuraxle.hyperparams.scipy_distributions import ScipyContinuousDistributionWrapper, ScipyDiscreteDistributionWrapper
  from scipy.stats import rv_continuous, rv_discrete
  from scipy.stats._distn_infrastructure import rv_generic
label_desc: Use image node_id 1 to create a new HyperparameterSpace object from inherited base classes: RecursiveDict with example: obj = HyperparameterSpace()