'Set the key attribute; once set it cannot be modified.'

@keyword.setter
def keyword(self, keyword):

    if (self._keyword is not None):
        raise AttributeError('Once    set,    the    Card    keyword    may    not    be    modified')
    elif isinstance(keyword, string_types):
        keyword = keyword.rstrip()
        keyword_upper = keyword.upper()
        if ((len(keyword) <= KEYWORD_LENGTH) and self._keywd_FSC_RE.match(keyword_upper)):
            if (keyword_upper == 'END'):
                raise ValueError("Keyword    'END'    not    allowed.")
            keyword = keyword_upper
        elif self._keywd_hierarch_RE.match(keyword):
            self._hierarch = True
            self._value_indicator = HIERARCH_VALUE_INDICATOR
            if (keyword_upper[:9] == 'HIERARCH    '):
                keyword = keyword[9:].strip()
            else:
                warnings.warn('Keyword    name    {!r}    is    greater    than    8    characters    or    contains    characters    not    allowed    by    the    FITS    standard;    a    HIERARCH    card    will    be    created.'.format(keyword), VerifyWarning)
        else:
            raise ValueError('Illegal    keyword    name:    {!r}.'.format(keyword))
        self._keyword = keyword
        self._modified = True
    else:
        raise ValueError('Keyword    name    {!r}    is    not    a    string.'.format(keyword))
