': Convert value using unit to a float.  If value is a sequence, return
the converted sequence.
= INPUT VARIABLES
- axis    The axis using this converter.
- value   The value or list of values that need to be converted.
- unit    The units to use for a axis with Epoch data.
= RETURN VALUE
- Returns the value parameter converted to floats.'

@staticmethod
def convert(value, unit, axis):

    if units.ConversionInterface.is_numlike(value):
        return value
    if (value == []):
        return []
    ax = axis.axes
    if (axis is ax.get_xaxis()):
        isXAxis = True
    else:
        isXAxis = False
    axis.get_major_ticks()
    ticks = axis.get_ticklocs()
    labels = axis.get_ticklabels()
    labels = [l.get_text() for l in labels if l.get_text()]
    if (not labels):
        ticks = []
        labels = []
    if (not iterable(value)):
        value = [value]
    newValues = []
    for v in value:
        if ((v not in labels) and (v not in newValues)):
            newValues.append(v)
    for v in newValues:
        if labels:
            labels.append(v)
        else:
            labels = [v]
    labels = (([u''] + labels) + [u''])
    ticks = list(xrange(len(labels)))
    ticks[0] = 0.5
    ticks[(-1)] = (ticks[(-1)] - 0.5)
    axis.set_ticks(ticks)
    axis.set_ticklabels(labels)
    loc = axis.get_major_locator()
    loc.set_bounds(ticks[0], ticks[(-1)])
    if isXAxis:
        ax.set_xlim(ticks[0], ticks[(-1)])
    else:
        ax.set_ylim(ticks[0], ticks[(-1)])
    result = []
    for v in value:
        errmsg = u'This    is    due    to    a    logic    error    in    the    StrConverter    class.        '
        errmsg += u'Please    report    this    error    and    its    message    in    bugzilla.'
        assert (v in labels), errmsg
        result.append(ticks[labels.index(v)])
    ax.viewLim.ignore((-1))
    return result
