Esempio n. 1
0
	def create_type(self, name, base = (), dict = {}, metaclass = type):
		try:
			existing = getattr(self, name)
			if not isinstance(existing, type):
				raise ValueError(name)
		except AttributeError:
			pass
		
		base = get_iterable(base)
		self.logger.debug("Creating %s %s(%s) with %s", metaclass.__name__, name, base, dict) 
		dict["__module__"] = self.modulename
		type = metaclass(name, base, dict)
		setattr(self, name, type)
		return type
Esempio n. 2
0
def sanitize_dict(d, keys=("password",), replacement="*", inplace=False):
    keys = get_iterable(keys)
    if not inplace:
        d = dict(d)

    if replacement is None:
        for k in keys:
            d.pop(k, None)
    else:
        for k in keys:
            v = d[k]
            if isinstance(v, basestring):
                d[k] = replacement * len(v)
            else:
                d[k] = replacement
    return d