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","``","."]
docstr: Return the original space before narrowing of the distribution. If the distribution was never narrowed,
  the values in the dict will be copies.
  
  :return: the original HyperparameterSpace before narrowing.
docstr_tok: ["Return","the","original","space","before","narrowing","of","the","distribution",".","If","the","distribution","was","never","narrowed",",","the","values","in","the","dict","will","be","copies",".",":","return",":","the","original","HyperparameterSpace","before","narrowing","."]
code: def unnarrow(self) -> "HyperparameterSpace":
      """
      Return the original space before narrowing of the distribution. If the distribution was never narrowed,
      the values in the dict will be copies.
  
      :return: the original HyperparameterSpace before narrowing.
      """
      new_items = []
      for k, v in self.iter_flat():
          if isinstance(v, HyperparameterDistribution) or isinstance(
              v, HyperparameterSpace
          ):
              v = v.unnarrow()
          new_items.append((k, v))
      return HyperparameterSpace(new_items)
  
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 6 for calling the HyperparameterSpace obj's underlying member method code with example usage: obj.unnarrow() and returns: HyperparameterSpace