def _to_ilwd(value, tablename, colname): from ligo.lw.ilwd import (ilwdchar, get_ilwdchar_class) from ligo.lw._ilwd import ilwdchar as IlwdChar if isinstance(value, IlwdChar) and value.column_name != colname: raise ValueError("ilwdchar '{0!s}' doesn't match column " "{1!r}".format(value, colname)) if isinstance(value, IlwdChar): return value if isinstance(value, Integral): return get_ilwdchar_class(tablename, colname)(value) return ilwdchar(value)