(self, module: str, alias: str | None = None, require: bool = False)
| 495 | self.direct_imports.pop(alias or name, None) |
| 496 | |
| 497 | def add_import(self, module: str, alias: str | None = None, require: bool = False) -> None: |
| 498 | if alias: |
| 499 | # 'import {module} as {alias}' |
| 500 | assert "." not in alias # invalid syntax |
| 501 | self.module_for[alias] = None |
| 502 | self.reverse_alias[alias] = module |
| 503 | if require: |
| 504 | self.required_names.add(alias) |
| 505 | else: |
| 506 | # 'import {module}' |
| 507 | name = module |
| 508 | if require: |
| 509 | self.required_names.add(name) |
| 510 | # add module and its parent packages |
| 511 | while name: |
| 512 | self.module_for[name] = None |
| 513 | self.direct_imports[name] = module |
| 514 | self.reverse_alias.pop(name, None) |
| 515 | name = name.rpartition(".")[0] |
| 516 | |
| 517 | def require_name(self, name: str) -> None: |
| 518 | while name not in self.direct_imports and "." in name: |
no test coverage detected