def from_dict(self, dictionary, **kwargs):
_spec = self.c_param<EOL>for key, val in dictionary.items():<EOL><INDENT>if val == "<STR_LIT>" or val == ["<STR_LIT>"]:<EOL><INDENT>continue<EOL><DEDENT>skey = str(key)<EOL>try:<EOL><INDENT>(vtyp, req, _, _deser, null_allowed) = _spec[key]<EOL><DEDENT>except KeyError:<EOL><INDENT>try:<EOL><INDENT>_key, lang = skey.split("<STR_LIT:#>")<EOL><DEDENT>except ValueError:<EOL><INDENT>try:<EOL><INDENT>(vtyp, _, _, _deser, null_allowed) = _spec['<STR_LIT:*>']<EOL>if val is None:<EOL><INDENT>self._dict[key] = val<EOL>continue<EOL><DEDENT><DEDENT>except KeyError:<EOL><INDENT>self._dict[key] = val<EOL>continue<EOL><DEDENT><DEDENT>else:<EOL><INDENT>try:<EOL><INDENT>(vtyp, req, _, _deser, null_allowed) = _spec[_key]<EOL><DEDENT>except KeyError:<EOL><INDENT>try:<EOL><INDENT>(vtyp, _, _, _deser, null_allowed) = _spec['<STR_LIT:*>']<EOL>if val is None:<EOL><INDENT>self._dict[key] = val<EOL>continue<EOL><DEDENT><DEDENT>except KeyError:<EOL><INDENT>self._dict[key] = val<EOL>continue<EOL><DEDENT><DEDENT><DEDENT><DEDENT>self._add_value(skey, vtyp, key, val, _deser, null_allowed)<EOL><DEDENT>return self<EOL>
Direct translation, so the value for one key might be a list or a
single value.

:param dictionary: The info
:return: A class instance or raise an exception on error