Skip to content

Commit 27369ef

Browse files
authored
gh-82874: Convert remaining importlib format uses to f-str. (#98005)
f-yes
1 parent fa2d43e commit 27369ef

File tree

5 files changed

+24
-28
lines changed

5 files changed

+24
-28
lines changed

Lib/importlib/__init__.py

+7-11
Original file line numberDiff line numberDiff line change
@@ -84,22 +84,21 @@ def find_loader(name, path=None):
8484
try:
8585
loader = sys.modules[name].__loader__
8686
if loader is None:
87-
raise ValueError('{}.__loader__ is None'.format(name))
87+
raise ValueError(f'{name}.__loader__ is None')
8888
else:
8989
return loader
9090
except KeyError:
9191
pass
9292
except AttributeError:
93-
raise ValueError('{}.__loader__ is not set'.format(name)) from None
93+
raise ValueError(f'{name}.__loader__ is not set') from None
9494

9595
spec = _bootstrap._find_spec(name, path)
9696
# We won't worry about malformed specs (missing attributes).
9797
if spec is None:
9898
return None
9999
if spec.loader is None:
100100
if spec.submodule_search_locations is None:
101-
raise ImportError('spec for {} missing loader'.format(name),
102-
name=name)
101+
raise ImportError(f'spec for {name} missing loader', name=name)
103102
raise ImportError('namespace packages do not have loaders',
104103
name=name)
105104
return spec.loader
@@ -116,9 +115,8 @@ def import_module(name, package=None):
116115
level = 0
117116
if name.startswith('.'):
118117
if not package:
119-
msg = ("the 'package' argument is required to perform a relative "
120-
"import for {!r}")
121-
raise TypeError(msg.format(name))
118+
raise TypeError("the 'package' argument is required to perform a "
119+
f"relative import for {name!r}")
122120
for character in name:
123121
if character != '.':
124122
break
@@ -144,8 +142,7 @@ def reload(module):
144142
raise TypeError("reload() argument must be a module")
145143

146144
if sys.modules.get(name) is not module:
147-
msg = "module {} not in sys.modules"
148-
raise ImportError(msg.format(name), name=name)
145+
raise ImportError(f"module {name} not in sys.modules", name=name)
149146
if name in _RELOADING:
150147
return _RELOADING[name]
151148
_RELOADING[name] = module
@@ -155,8 +152,7 @@ def reload(module):
155152
try:
156153
parent = sys.modules[parent_name]
157154
except KeyError:
158-
msg = "parent {!r} not in sys.modules"
159-
raise ImportError(msg.format(parent_name),
155+
raise ImportError(f"parent {parent_name!r} not in sys.modules",
160156
name=parent_name) from None
161157
else:
162158
pkgpath = parent.__path__

Lib/importlib/_bootstrap_external.py

+11-11
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ def _write_atomic(path, data, mode=0o666):
197197
Be prepared to handle a FileExistsError if concurrent writing of the
198198
temporary file is attempted."""
199199
# id() is used to generate a pseudo-random filename.
200-
path_tmp = '{}.{}'.format(path, id(path))
200+
path_tmp = f'{path}.{id(path)}'
201201
fd = _os.open(path_tmp,
202202
_os.O_EXCL | _os.O_CREAT | _os.O_WRONLY, mode & 0o666)
203203
try:
@@ -492,8 +492,8 @@ def cache_from_source(path, debug_override=None, *, optimization=None):
492492
optimization = str(optimization)
493493
if optimization != '':
494494
if not optimization.isalnum():
495-
raise ValueError('{!r} is not alphanumeric'.format(optimization))
496-
almost_filename = '{}.{}{}'.format(almost_filename, _OPT, optimization)
495+
raise ValueError(f'{optimization!r} is not alphanumeric')
496+
almost_filename = f'{almost_filename}.{_OPT}{optimization}'
497497
filename = almost_filename + BYTECODE_SUFFIXES[0]
498498
if sys.pycache_prefix is not None:
499499
# We need an absolute path to the py file to avoid the possibility of
@@ -651,8 +651,8 @@ def _find_module_shim(self, fullname):
651651
# return None.
652652
loader, portions = self.find_loader(fullname)
653653
if loader is None and len(portions):
654-
msg = 'Not importing directory {}: missing __init__'
655-
_warnings.warn(msg.format(portions[0]), ImportWarning)
654+
msg = f'Not importing directory {portions[0]}: missing __init__'
655+
_warnings.warn(msg, ImportWarning)
656656
return loader
657657

658658

@@ -750,7 +750,7 @@ def _compile_bytecode(data, name=None, bytecode_path=None, source_path=None):
750750
_imp._fix_co_filename(code, source_path)
751751
return code
752752
else:
753-
raise ImportError('Non-code object in {!r}'.format(bytecode_path),
753+
raise ImportError(f'Non-code object in {bytecode_path!r}',
754754
name=name, path=bytecode_path)
755755

756756

@@ -951,8 +951,8 @@ def exec_module(self, module):
951951
"""Execute the module."""
952952
code = self.get_code(module.__name__)
953953
if code is None:
954-
raise ImportError('cannot load module {!r} when get_code() '
955-
'returns None'.format(module.__name__))
954+
raise ImportError(f'cannot load module {module.__name__!r} when '
955+
'get_code() returns None')
956956
_bootstrap._call_with_frames_removed(exec, code, module.__dict__)
957957

958958
def load_module(self, fullname):
@@ -1337,7 +1337,7 @@ def __len__(self):
13371337
return len(self._recalculate())
13381338

13391339
def __repr__(self):
1340-
return '_NamespacePath({!r})'.format(self._path)
1340+
return f'_NamespacePath({self._path!r})'
13411341

13421342
def __contains__(self, item):
13431343
return item in self._recalculate()
@@ -1678,7 +1678,7 @@ def _fill_cache(self):
16781678
for item in contents:
16791679
name, dot, suffix = item.partition('.')
16801680
if dot:
1681-
new_name = '{}.{}'.format(name, suffix.lower())
1681+
new_name = f'{name}.{suffix.lower()}'
16821682
else:
16831683
new_name = name
16841684
lower_suffix_contents.add(new_name)
@@ -1705,7 +1705,7 @@ def path_hook_for_FileFinder(path):
17051705
return path_hook_for_FileFinder
17061706

17071707
def __repr__(self):
1708-
return 'FileFinder({!r})'.format(self.path)
1708+
return f'FileFinder({self.path!r})'
17091709

17101710

17111711
# Import setup ###############################################################

Lib/importlib/resources/_adapters.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ def _io_wrapper(file, mode='r', *args, **kwargs):
3535
elif mode == 'rb':
3636
return file
3737
raise ValueError(
38-
"Invalid mode value '{}', only 'r' and 'rb' are supported".format(mode)
38+
f"Invalid mode value '{mode}', only 'r' and 'rb' are supported"
3939
)
4040

4141

Lib/importlib/util.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,10 @@ def _find_spec_from_path(name, path=None):
6060
try:
6161
spec = module.__spec__
6262
except AttributeError:
63-
raise ValueError('{}.__spec__ is not set'.format(name)) from None
63+
raise ValueError(f'{name}.__spec__ is not set') from None
6464
else:
6565
if spec is None:
66-
raise ValueError('{}.__spec__ is None'.format(name))
66+
raise ValueError(f'{name}.__spec__ is None')
6767
return spec
6868

6969

@@ -105,10 +105,10 @@ def find_spec(name, package=None):
105105
try:
106106
spec = module.__spec__
107107
except AttributeError:
108-
raise ValueError('{}.__spec__ is not set'.format(name)) from None
108+
raise ValueError(f'{name}.__spec__ is not set') from None
109109
else:
110110
if spec is None:
111-
raise ValueError('{}.__spec__ is None'.format(name))
111+
raise ValueError(f'{name}.__spec__ is None')
112112
return spec
113113

114114

Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
importlib now uses f-strings internally instead of str.format().
1+
:mod:`importlib` now uses f-strings internally instead of ``str.format``.

0 commit comments

Comments
 (0)