def type_name(value):
if inspect.isclass(value):<EOL><INDENT>cls = value<EOL><DEDENT>else:<EOL><INDENT>cls = value.__class__<EOL><DEDENT>if cls.__module__ in set(['<STR_LIT>', '<STR_LIT>']):<EOL><INDENT>return cls.__name__<EOL><DEDENT>return '<STR_LIT>' % (cls.__module__, cls.__name__)<EOL>
Returns a user-readable name for the type of an object

:param value:
    A value to get the type name of

:return:
    A unicode string of the object's type name