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 __future__ import absolute_import
  from builtins import str
  from builtins import zip
  from builtins import range
  from past.builtins import basestring
  from builtins import object
  from functools import partial, wraps
  from .base import DuplicateLabel
  from .pyll.base import Apply, Literal
  from .pyll import scope
  from .pyll import as_apply
label_desc: Use image node_id 15 for calling a global function with example usage: expr_to_config(expr, conditions, hps) without return types