Fixing commands so they don't hide import errors
This commit is contained in:
		| @@ -32,36 +32,31 @@ class Command(paste_command.Command): | ||||
|             ex.args[0] = self.parser.error(ex.args[0]) | ||||
|             raise | ||||
|      | ||||
|     def can_import(self, name): | ||||
|         try: | ||||
|             __import__(name) | ||||
|             return True | ||||
|         except ImportError: | ||||
|             return False | ||||
|      | ||||
|     def get_package_names(self, config): | ||||
|         if not hasattr(config.app, 'modules'): | ||||
|             return [] | ||||
|         return [module.__name__ for module in config.app.modules if hasattr(module, '__name__')] | ||||
|      | ||||
|     def import_module(self, package, name): | ||||
|         parent = __import__(package, fromlist=[name]) | ||||
|         return getattr(parent, name, None) | ||||
|      | ||||
|     def load_configuration(self, name): | ||||
|         set_config(name) | ||||
|         return _runtime_conf | ||||
|      | ||||
|     def load_app(self, config): | ||||
|         for package_name in self.get_package_names(config): | ||||
|             module_name = '%s.app' % package_name | ||||
|             if self.can_import(module_name): | ||||
|                 module = sys.modules[module_name] | ||||
|             module = self.import_module(package_name, 'app') | ||||
|             if hasattr(module, 'setup_app'): | ||||
|                 return module.setup_app(config) | ||||
|         raise paste_command.BadCommand('No app.setup_app found in any of the configured app.modules') | ||||
|         raise paste_command.BadCommand('No app.setup_app found in any app modules') | ||||
|      | ||||
|     def load_model(self, config): | ||||
|         for package_name in self.get_package_names(config): | ||||
|             module_name = '%s.model' % package_name | ||||
|             if self.can_import(module_name): | ||||
|                 return sys.modules[module_name] | ||||
|             module = self.import_module(package_name, 'model') | ||||
|             if module: | ||||
|                 return module | ||||
|         return None | ||||
|      | ||||
|     def logging_file_config(self, config_file): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Yoann Roman
					Yoann Roman