def register_inheritors(self, property, root_path, base_type, lifestyle_type = "UNKNOWN", include_base = False): if (lifestyle_type == "UNKNOWN"): lifestyle_type = self.default_lifestyle_type self.assert_valid_lifestyle_type(lifestyle_type) all_classes = [] for module_path in common.locate("*.py", root=root_path, recursive=False): try: module = reflection.get_module_from_path(module_path) except UnicodeDecodeError, err: print err raise classes = reflection.get_classes_for_module(module) for cls in classes: should_include = include_base and cls.__name__ == base_type.__name__ should_include = should_include or (isinstance(cls.__bases__, (list, tuple)) and base_type.__name__ in [klass.__name__.replace("__init__.","") for klass in cls.__bases__]) if should_include:
def register_inheritors(self, property, root_path, base_type, lifestyle_type = "UNKNOWN", include_base = False): if (lifestyle_type == "UNKNOWN"): lifestyle_type = self.default_lifestyle_type self.assert_valid_lifestyle_type(lifestyle_type) all_classes = [] for module_path in common.locate("*.py", root=root_path, recursive=False): module = reflection.get_module_from_path(module_path) classes = reflection.get_classes_for_module(module) for cls in classes: should_include = include_base and cls.__name__ == base_type.__name__ should_include = should_include or (cls.__bases__ is (list, tuple) and base_type.__name__ in [klass.__name__ for klass in cls.__bases__]) if should_include: all_classes.append(cls) component_definition = "indirect", lifestyle_type, all_classes, None, None