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
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