class_docstr: Iterator over a grid of parameter values, skipping any restricted combinations of values.
class_docstr_tok: ["Iterator","over","a","grid","of","parameter","values",",","skipping","any","restricted","combinations","of","values","."]
docstr: :param param_values: a dict mapping a set of parameter names to lists of values they can take on.
  :param restrictions: a list of dicts indicating inadmissible combinations of parameter values.
      For example, an ETS model has parameters error (add/mul), trend (add/mul/none), seasonal (add/mul),
      and damped_trend (True/False). If we are only considering additive models, we would impose the restrictions
      ``[{"error": "mul"}, {"trend": "mul"}, {"seasonal": "mul"}]``. Since a damped trend is only possible if
      the model has a trend, we would add the restriction ``{"trend": None, "damped_trend": True}``.
docstr_tok: [":","param","param_values",":","a","dict","mapping","a","set","of","parameter","names","to","lists","of","values","they","can","take","on",".",":","param","restrictions",":","a","list","of","dicts","indicating","inadmissible","combinations","of","parameter","values",".","For","example",",","an","ETS","model","has","parameters","error","(","add\/mul",")",",","trend","(","add\/mul\/none",")",",","seasonal","(","add\/mul",")",",","and","damped_trend","(","True\/False",")",".","If","we","are","only","considering","additive","models",",","we","would","impose","the","restrictions","``","[","{","``","error","''",":","``","mul","''","}",",","{","``","trend","''",":","``","mul","''","}",",","{","``","seasonal","''",":","``","mul","''","}","]","``",".","Since","a","damped","trend","is","only","possible","if","the","model","has","a","trend",",","we","would","add","the","restriction","``","{","``","trend","''",":","None",",","``","damped_trend","''",":","True","}","``","."]
code: def __init__(
      self,
      param_values: Dict[str, List],
      restrictions: List[Dict[str, Any]] = None,
  ):
      """
      :param param_values: a dict mapping a set of parameter names to lists of values they can take on.
      :param restrictions: a list of dicts indicating inadmissible combinations of parameter values.
          For example, an ETS model has parameters error (add/mul), trend (add/mul/none), seasonal (add/mul),
          and damped_trend (True/False). If we are only considering additive models, we would impose the restrictions
          ``[{"error": "mul"}, {"trend": "mul"}, {"seasonal": "mul"}]``. Since a damped trend is only possible if
          the model has a trend, we would add the restriction ``{"trend": None, "damped_trend": True}``.
      """
      self.param_values = param_values
      self.restrictions = [] if restrictions is None else restrictions
  
imports: from collections import OrderedDict
  import itertools
  from typing import Any, Dict, List
label_desc: Use image node_id 1 to create a new GridSearch object  with example: obj = GridSearch(param_values, restrictions)