def METHOD_NAME(requestContext, targets):
  if not isinstance(targets, list):
    targets = [targets]
  pathExpressions = extractPathExpressions(requestContext, targets)
  prefetchData(requestContext, pathExpressions)
  seriesList = []
  for target in targets:
    if not target:
      continue
    if isinstance(target, six.string_types):
      if not target.strip():
        continue
      target = grammar.parseString(target)
    try:
      result = evaluateTokens(requestContext, target)
    except InputParameterError as e:
      e.setTargets(requestContext.get('targets', []))
      e.setSourceIdHeaders(requestContext.get('sourceIdHeaders', {}))
      raise
    # we have to return a list of TimeSeries objects
    if isinstance(result, TimeSeries):
      seriesList.append(result)
    elif result:
      seriesList.extend(result)
  return seriesList