(builder: IRBuilder, node: ImportFrom)
| 448 | |
| 449 | |
| 450 | def transform_import_from(builder: IRBuilder, node: ImportFrom) -> None: |
| 451 | if node.is_mypy_only: |
| 452 | return |
| 453 | |
| 454 | module_state = builder.graph[builder.module_name] |
| 455 | if builder.module_path.endswith("__init__.py"): |
| 456 | module_package = builder.module_name |
| 457 | elif module_state.ancestors is not None and module_state.ancestors: |
| 458 | module_package = module_state.ancestors[0] |
| 459 | else: |
| 460 | module_package = "" |
| 461 | |
| 462 | id = importlib.util.resolve_name("." * node.relative + node.id, module_package) |
| 463 | builder.imports[id] = None |
| 464 | |
| 465 | names = [name for name, _ in node.names] |
| 466 | as_names = [as_name or name for name, as_name in node.names] |
| 467 | |
| 468 | parent_is_native = builder.is_native_module(id) and builder.is_same_group_module(id) |
| 469 | transform_import_from_buckets(builder, id, names, as_names, node.line, parent_is_native) |
| 470 | |
| 471 | |
| 472 | # Import kind constants for classify_import_from. |
no test coverage detected
searching dependent graphs…