Resolve a relative module name to an absolute one.
(name, package)
| 21 | |
| 22 | |
| 23 | def resolve_name(name, package): |
| 24 | """Resolve a relative module name to an absolute one.""" |
| 25 | if not name.startswith('.'): |
| 26 | return name |
| 27 | elif not package: |
| 28 | raise ImportError(f'no package specified for {repr(name)} ' |
| 29 | '(required for relative module names)') |
| 30 | level = 0 |
| 31 | for character in name: |
| 32 | if character != '.': |
| 33 | break |
| 34 | level += 1 |
| 35 | return _resolve_name(name[level:], package, level) |
| 36 | |
| 37 | |
| 38 | def _find_spec_from_path(name, path=None): |
no test coverage detected
searching dependent graphs…