def _convert_children(node):
 if (not isinstance(node, (list, dict))):
  return
 if isinstance(node, list):
  for child in node:
   _convert_children(child)
  return
 for key in node.keys():
  val = node[key]
  if ((not isinstance(val, dict)) or (val.get('__tag__') != 'code')):
   _convert_children(val)
   continue
  val = eval(val['python'])
  node[key] = val
  continue

def _convert_children ( node ) : if ( not isinstance ( node , ( list , dict ) ) ) : return if isinstance ( node , list ) : for child in node : _convert_children ( child ) return for key in node . keys ( ) : val = node [ key ] if ( ( not isinstance ( val , dict ) ) or ( val . get ( '__tag__' ) != 'code' ) ) : _convert_children ( val ) continue val = eval ( val [ 'python' ] ) node [ key ] = val continue
recursively convert to functions all "code strings" below the node .