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