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