def __init__(self, **kwargs):
<EOL>if '<STR_LIT>' in kwargs:<EOL><INDENT>l = kwargs['<STR_LIT>']<EOL>a = len(l)<EOL>b = len(self._map)<EOL>if a != b:<EOL><INDENT>raise ValueError('<STR_LIT>'.format(a, b))<EOL><DEDENT>super().__init__(l)<EOL>del kwargs['<STR_LIT>']<EOL><DEDENT>else:<EOL><INDENT>super().__init__(self._defaults)<EOL><DEDENT>for kw, val in kwargs.items():<EOL><INDENT>if kw not in self._map:<EOL><INDENT>raise TypeError("<STR_LIT>".format(kw))<EOL><DEDENT>self.__setattr__(kw, val)<EOL><DEDENT>
This recognizes all valid attributes, as well as the 'lst' kwarg
        to convert from list format (must be correct length).