Mercurial > touhou
comparison scripts/pytouhou @ 603:e9300aae4b24
Display the traceback on module load error.
| author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
|---|---|
| date | Tue, 04 Nov 2014 16:44:59 +0100 |
| parents | 244c99c568c8 |
| children | 2cf518129725 |
comparison
equal
deleted
inserted
replaced
| 602:c84227022765 | 603:e9300aae4b24 |
|---|---|
| 62 | 62 |
| 63 def load_module(type_, name, items=None): | 63 def load_module(type_, name, items=None): |
| 64 try: | 64 try: |
| 65 module = import_module('pytouhou.games.%s.%s' % (name, type_)) | 65 module = import_module('pytouhou.games.%s.%s' % (name, type_)) |
| 66 except ImportError: | 66 except ImportError: |
| 67 logger.critical('Module “%s” doesn’t contain %s data, aborting.', name, type_) | 67 logger.exception('Module “%s” doesn’t contain %s data, aborting:', name, type_) |
| 68 sys.exit(1) | 68 sys.exit(1) |
| 69 if items is None: | 69 if items is None: |
| 70 return module | 70 return module |
| 71 return (getattr(module, item) for item in items) | 71 return (getattr(module, item) for item in items) |
| 72 | 72 |
| 94 else: | 94 else: |
| 95 options = {} | 95 options = {} |
| 96 | 96 |
| 97 try: | 97 try: |
| 98 backend = import_module('pytouhou.ui.%s.backend' % backend_name) | 98 backend = import_module('pytouhou.ui.%s.backend' % backend_name) |
| 99 except ImportError as e: | 99 except ImportError: |
| 100 logger.exception('Failed to import backend %s:', backend_name) | 100 logger.exception('Failed to import backend %s:', backend_name) |
| 101 continue | 101 continue |
| 102 | 102 |
| 103 try: | 103 try: |
| 104 backend.init(options) | 104 backend.init(options) |
| 105 except Exception as e: | 105 except Exception: |
| 106 logger.exception('Backend %s failed to initialize:', backend_name) | 106 logger.exception('Backend %s failed to initialize:', backend_name) |
| 107 continue | 107 continue |
| 108 | 108 |
| 109 GameRenderer = backend.GameRenderer | 109 GameRenderer = backend.GameRenderer |
| 110 break | 110 break |
