'Returns the index if the first instance of the given keyword in the
header, similar to `list.index` if the Header object is treated as a
list of keywords.
Parameters
keyword : str
The keyword to look up in the list of all keywords in the header
start : int, optional
The lower bound for the index
stop : int, optional
The upper bound for the index'

def index(self, keyword, start=None, stop=None):

    if (start is None):
        start = 0
    if (stop is None):
        stop = len(self._cards)
    if (stop < start):
        step = (-1)
    else:
        step = 1
    norm_keyword = Card.normalize_keyword(keyword)
    for idx in range(start, stop, step):
        if (self._cards[idx].keyword.upper() == norm_keyword):
            return idx
    else:
        raise ValueError('The    keyword    {!r}    is    not    in    the        header.'.format(keyword))
