(self, name, caller, fromlist, level=-1)
| 364 | self.badmodules[name]["-"] = 1 |
| 365 | |
| 366 | def _safe_import_hook(self, name, caller, fromlist, level=-1): |
| 367 | # wrapper for self.import_hook() that won't raise ImportError |
| 368 | if name in self.badmodules: |
| 369 | self._add_badmodule(name, caller) |
| 370 | return |
| 371 | try: |
| 372 | self.import_hook(name, caller, level=level) |
| 373 | except ImportError as msg: |
| 374 | self.msg(2, "ImportError:", str(msg)) |
| 375 | self._add_badmodule(name, caller) |
| 376 | except SyntaxError as msg: |
| 377 | self.msg(2, "SyntaxError:", str(msg)) |
| 378 | self._add_badmodule(name, caller) |
| 379 | else: |
| 380 | if fromlist: |
| 381 | for sub in fromlist: |
| 382 | fullname = name + "." + sub |
| 383 | if fullname in self.badmodules: |
| 384 | self._add_badmodule(fullname, caller) |
| 385 | continue |
| 386 | try: |
| 387 | self.import_hook(name, caller, [sub], level=level) |
| 388 | except ImportError as msg: |
| 389 | self.msg(2, "ImportError:", str(msg)) |
| 390 | self._add_badmodule(fullname, caller) |
| 391 | |
| 392 | def scan_opcodes(self, co): |
| 393 | # Scan the code, and yield 'interesting' opcode combinations |
no test coverage detected