code: def expr_to_config(expr, conditions, hps):
      """
      Populate dictionary `hps` with the hyperparameters in pyll graph `expr`
      and conditions for participation in the evaluation of `expr`.
  
      Arguments:
      expr       - a pyll expression root.
      conditions - a tuple of conditions (`Cond`) that must be True for
                   `expr` to be evaluated.
      hps        - dictionary to populate
  
      Creates `hps` dictionary:
          label -> { 'node': apply node of hyperparameter distribution,
                     'conditions': `conditions` + tuple,
                     'label': label
                     }
      """
      expr = as_apply(expr)
      if conditions is None:
          conditions = ()
      assert isinstance(expr, Apply)
      _expr_to_config(expr, conditions, hps)
      _remove_allpaths(hps, conditions)
  
imports: from functools import partial, wraps
  from .base import DuplicateLabel
  from .pyll.base import Apply, Literal, MissingArgument
  from .pyll import scope
  from .pyll import as_apply
label_desc: Use image node_id 17 for calling a global function with example usage: expr_to_config(expr, conditions, hps) without return types