def initialize_internal_attributes (C): "Prepare a class for life as a child of InternalAttributesClass." if C.__dict__.has_key('_internal'): return if not issubclass(C, InternalAttributesClass): raise ValueError, 'Must be subclass of InternalAttributesClass' PropertiedClasses.initialize_property_class (C) C._internal = [] for CP in C.__bases__: if issubclass(CP, InternalAttributesClass): initialize_internal_attributes(CP) for name in CP._internal: C._internal.append(name)