try: if strict and attr.__module__ != get('__name__'): return False except AttributeError: return False return True # gotta love python classes = filter(check_attr, [get(x) for x in keys]) registered = {} for klass in classes: alias = '%s%s%s' % (package, separator, klass.__name__) registered[klass] = register_class(klass, alias) return registered # init module here register_class(ASObject) register_class_loader(flex_loader) register_class_loader(blaze_loader) register_alias_type(TypedObjectClassAlias, TypedObject) register_alias_type(ErrorAlias, Exception) register_adapters()
raise ValueError, 'Code %s is already registered' % code ERROR_CLASS_MAP[code] = klass def remove_error_class(klass): """ Removes a class from C{ERROR_CLASS_MAP}. @param klass: @type klass: @raise ValueError: Code is not registered. @raise ValueError: Class is not registered. @raise TypeError: Invalid type, expected C{class} or C{string}. """ if isinstance(klass, basestring): if not klass in ERROR_CLASS_MAP.keys(): raise ValueError, 'Code %s is not registered' % klass elif isinstance(klass, (type, types.ClassType)): classes = ERROR_CLASS_MAP.values() if not klass in classes: raise ValueError, 'Class %s is not registered' % klass klass = ERROR_CLASS_MAP.keys()[classes.index(klass)] else: raise TypeError, "Invalid type, expected class or string" del ERROR_CLASS_MAP[klass] register_adapters()