Mercurial > touhou
comparison scripts/pytouhou @ 561:bafe6361c0af
Use logging for errors in the pytouhou script.
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
---|---|
date | Thu, 05 Jun 2014 18:47:31 +0200 |
parents | 653a9f087673 |
children | 5f7f859a72f9 |
comparison
equal
deleted
inserted
replaced
560:c759b97f4f81 | 561:bafe6361c0af |
---|---|
69 args = parser.parse_args() | 69 args = parser.parse_args() |
70 | 70 |
71 | 71 |
72 import sys | 72 import sys |
73 import logging | 73 import logging |
74 from pytouhou.utils.helpers import get_logger | |
75 | |
76 if args.verbosity is not None: | |
77 logging.basicConfig(level=getattr(logging, args.verbosity)) | |
78 logger = get_logger('pytouhou') | |
74 | 79 |
75 | 80 |
76 if args.game == 'EoSD': | 81 if args.game == 'EoSD': |
77 from pytouhou.games.eosd import EoSDCommon as Common, EoSDGame as Game | 82 from pytouhou.games.eosd import EoSDCommon as Common, EoSDGame as Game |
78 | 83 |
93 from pytouhou.formats.hint import Hint | 98 from pytouhou.formats.hint import Hint |
94 from pytouhou.network import Network | 99 from pytouhou.network import Network |
95 | 100 |
96 | 101 |
97 from importlib import import_module | 102 from importlib import import_module |
98 for backend in args.backend: | 103 for backend_name in args.backend: |
99 if backend == 'opengl': | 104 if backend_name == 'opengl': |
100 options = { | 105 options = { |
101 'flavor': args.gl_flavor, | 106 'flavor': args.gl_flavor, |
102 'version': args.gl_version, | 107 'version': args.gl_version, |
103 'double-buffer': args.double_buffer, | 108 'double-buffer': args.double_buffer, |
104 } | 109 } |
105 else: | 110 else: |
106 options = {} | 111 options = {} |
107 | 112 |
108 try: | 113 try: |
109 backend = import_module('pytouhou.ui.%s.backend' % backend) | 114 backend = import_module('pytouhou.ui.%s.backend' % backend_name) |
110 except ImportError as e: | 115 except ImportError as e: |
116 logger.error('Failed to import backend %s: %s', backend_name, e) | |
111 continue | 117 continue |
112 | 118 |
113 try: | 119 try: |
114 backend.init(options) | 120 backend.init(options) |
115 except Exception as e: | 121 except Exception as e: |
116 print('Backend', backend, 'failed to initialize:', e) | 122 logger.error('Backend %s failed to initialize: %s', backend_name, e) |
117 pass | 123 continue |
118 else: | 124 |
119 GameRenderer = backend.GameRenderer | 125 GameRenderer = backend.GameRenderer |
120 break | 126 break |
121 else: | 127 else: |
122 show_simple_message_box(u'No graphical backend could be used, continuing with a windowless game.') | 128 show_simple_message_box(u'No graphical backend could be used, continuing with a windowless game.') |
123 backend = None | 129 backend = None |
124 GameRenderer = None | 130 GameRenderer = None |
125 | 131 |
152 Game.cleanup(self) | 158 Game.cleanup(self) |
153 | 159 |
154 | 160 |
155 def main(window, path, data, stage_num, rank, character, replay, save_filename, | 161 def main(window, path, data, stage_num, rank, character, replay, save_filename, |
156 skip_replay, boss_rush, debug, enable_background, enable_particles, | 162 skip_replay, boss_rush, debug, enable_background, enable_particles, |
157 hints, verbosity, port, remote, friendly_fire): | 163 hints, port, remote, friendly_fire): |
158 | 164 |
159 resource_loader = Loader(path) | 165 resource_loader = Loader(path) |
160 | 166 |
161 try: | 167 try: |
162 resource_loader.scan_archives(data) | 168 resource_loader.scan_archives(data) |
171 else: | 177 else: |
172 story = False | 178 story = False |
173 continues = 0 | 179 continues = 0 |
174 | 180 |
175 if debug: | 181 if debug: |
176 if not verbosity: | |
177 verbosity = 'DEBUG' | |
178 continues = -1 # Infinite lives | 182 continues = -1 # Infinite lives |
179 | |
180 if verbosity: | |
181 logging.basicConfig(level=logging.__getattribute__(verbosity)) | |
182 | 183 |
183 if replay: | 184 if replay: |
184 with open(replay, 'rb') as file: | 185 with open(replay, 'rb') as file: |
185 replay = T6RP.read(file) | 186 replay = T6RP.read(file) |
186 rank = replay.rank | 187 rank = replay.rank |
303 window = Window(backend, fps_limit=args.fps_limit) | 304 window = Window(backend, fps_limit=args.fps_limit) |
304 | 305 |
305 main(window, args.path, tuple(args.data), args.stage, args.rank, | 306 main(window, args.path, tuple(args.data), args.stage, args.rank, |
306 args.character, args.replay, args.save_replay, args.skip_replay, | 307 args.character, args.replay, args.save_replay, args.skip_replay, |
307 args.boss_rush, args.debug, args.no_background, args.no_particles, | 308 args.boss_rush, args.debug, args.no_background, args.no_particles, |
308 args.hints, args.verbosity, args.port, args.remote, | 309 args.hints, args.port, args.remote, args.friendly_fire) |
309 args.friendly_fire) | |
310 | 310 |
311 import gc | 311 import gc |
312 gc.collect() | 312 gc.collect() |