def unicode_all(item): if not item: return '' if isinstance(item, (int, long, float)): return unicode(item) elif isinstance(item, basestring): return to_unicode(item) elif isinstance(item, (list, set, tuple)): result = [] for aim in item: result.append(unicode_all(aim)) return ''.join(result) elif isinstance(item, dict): result = [] for key, value in item.items(): result.append(unicode_all(key)) result.append(unicode_all(value)) return ''.join(result) elif isinstance(item, datetime): return datetime_to_str(item) elif isinstance(item, file): return to_unicode(item.name) try: items = item.__dict__ except: items = dir(item) return unicode_all(items)
def unique_name(): return to_unicode(uuid.uuid4()).replace('-', '')