def verticalLine(requestContext, ts, label=None, color=None):
    """
    Takes a timestamp string ts.

    Draws a vertical line at the designated timestamp with optional
    'label' and 'color'. Supported timestamp formats include both
    relative (e.g. -3h) and absolute (e.g. 16:00_20110501) strings,
    such as those used with ``from`` and ``until`` parameters. When
    set, the 'label' will appear in the graph legend.

    Note: Any timestamps defined outside the requested range will
    raise a 'ValueError' exception.

    Example::

        &target=verticalLine("12:3420131108","event","blue")
        &target=verticalLine("16:00_20110501","event")
        &target=verticalLine("-5mins")

    """
    ts = int(epoch(parseATTime(ts, requestContext['tzinfo'])))
    start = int(epoch(requestContext['startTime']))
    end = int(epoch(requestContext['endTime']))
    if ts < start:
        raise ValueError("verticalLine(): timestamp %s exists "
                         "before start of range" % ts)
    elif ts > end:
        raise ValueError("verticalLine(): timestamp %s exists "
                         "after end of range" % ts)
    start = end = ts
    step = 1.0
    series = TimeSeries(label, start, end, step, [1.0, 1.0])
    series.options['drawAsInfinite'] = True
    if color:
        series.color = color
    return [series]

    Takes a timestamp string ts.

    Draws a vertical line at the designated timestamp with optional
    'label' and 'color'. Supported timestamp formats include both
    relative (e.g. -3h) and absolute (e.g. 16:00_20110501) strings,
    such as those used with ``from`` and ``until`` parameters. When
    set, the 'label' will appear in the graph legend.

    Note: Any timestamps defined outside the requested range will
    raise a 'ValueError' exception.

    Example::

        &target=verticalLine("12:3420131108","event","blue")
        &target=verticalLine("16:00_20110501","event")
        &target=verticalLine("-5mins")

    
graphite_api/functions.py