bpo-32262: Fix codestyle; use f-strings formatting where necessary. (… · python/cpython@6370f34

@@ -36,7 +36,7 @@

3636

from .log import logger

3737383839-

__all__ = ['BaseEventLoop']

39+

__all__ = 'BaseEventLoop',

404041414242

# Minimum number of _scheduled timer handles before cleanup of

@@ -173,8 +173,7 @@ def _ensure_resolved(address, *, family=0, type=socket.SOCK_STREAM, proto=0,

173173174174

def _run_until_complete_cb(fut):

175175

exc = fut._exception

176-

if (isinstance(exc, BaseException)

177-

and not isinstance(exc, Exception)):

176+

if isinstance(exc, BaseException) and not isinstance(exc, Exception):

178177

# Issue #22429: run_forever() already finished, no need to

179178

# stop it.

180179

return

@@ -190,7 +189,7 @@ def __init__(self, loop, sockets):

190189

self._waiters = []

191190192191

def __repr__(self):

193-

return '<%s sockets=%r>' % (self.__class__.__name__, self.sockets)

192+

return f'<{self.__class__.__name__} sockets={self.sockets!r}>'

194193195194

def _attach(self):

196195

assert self.sockets is not None

@@ -262,9 +261,10 @@ def __init__(self):

262261

self._asyncgens_shutdown_called = False

263262264263

def __repr__(self):

265-

return ('<%s running=%s closed=%s debug=%s>'

266-

% (self.__class__.__name__, self.is_running(),

267-

self.is_closed(), self.get_debug()))

264+

return (

265+

f'<{self.__class__.__name__} running={self.is_running()} '

266+

f'closed={self.is_closed()} debug={self.get_debug()}>'

267+

)

268268269269

def create_future(self):

270270

"""Create a Future object attached to the loop."""

@@ -362,8 +362,8 @@ def _asyncgen_finalizer_hook(self, agen):

362362

def _asyncgen_firstiter_hook(self, agen):

363363

if self._asyncgens_shutdown_called:

364364

warnings.warn(

365-

"asynchronous generator {!r} was scheduled after "

366-

"loop.shutdown_asyncgens() call".format(agen),

365+

f"asynchronous generator {agen!r} was scheduled after "

366+

f"loop.shutdown_asyncgens() call",

367367

ResourceWarning, source=self)

368368369369

self._asyncgens.add(agen)

@@ -388,8 +388,8 @@ async def shutdown_asyncgens(self):

388388

for result, agen in zip(results, closing_agens):

389389

if isinstance(result, Exception):

390390

self.call_exception_handler({

391-

'message': 'an error occurred during closing of '

392-

'asynchronous generator {!r}'.format(agen),

391+

'message': f'an error occurred during closing of '

392+

f'asynchronous generator {agen!r}',

393393

'exception': result,

394394

'asyncgen': agen

395395

})

@@ -495,7 +495,7 @@ def is_closed(self):

495495496496

def __del__(self):

497497

if not self.is_closed():

498-

warnings.warn("unclosed event loop %r" % self, ResourceWarning,

498+

warnings.warn(f"unclosed event loop {self!r}", ResourceWarning,

499499

source=self)

500500

if not self.is_running():

501501

self.close()

@@ -573,12 +573,11 @@ def _check_callback(self, callback, method):

573573

if (coroutines.iscoroutine(callback) or

574574

coroutines.iscoroutinefunction(callback)):

575575

raise TypeError(

576-

"coroutines cannot be used with {}()".format(method))

576+

f"coroutines cannot be used with {method}()")

577577

if not callable(callback):

578578

raise TypeError(

579-

'a callable object was expected by {}(), got {!r}'.format(

580-

method, callback))

581-579+

f'a callable object was expected by {method}(), '

580+

f'got {callback!r}')

582581583582

def _call_soon(self, callback, args):

584583

handle = events.Handle(callback, args, self)

@@ -630,24 +629,23 @@ def set_default_executor(self, executor):

630629

self._default_executor = executor

631630632631

def _getaddrinfo_debug(self, host, port, family, type, proto, flags):

633-

msg = ["%s:%r" % (host, port)]

632+

msg = [f"{host}:{port!r}"]

634633

if family:

635-

msg.append('family=%r' % family)

634+

msg.append(f'family={family!r}' % family)

636635

if type:

637-

msg.append('type=%r' % type)

636+

msg.append(f'type={type!r}')

638637

if proto:

639-

msg.append('proto=%r' % proto)

638+

msg.append(f'proto={proto!r}')

640639

if flags:

641-

msg.append('flags=%r' % flags)

640+

msg.append(f'flags={flags!r}')

642641

msg = ', '.join(msg)

643642

logger.debug('Get address info %s', msg)

644643645644

t0 = self.time()

646645

addrinfo = socket.getaddrinfo(host, port, family, type, proto, flags)

647646

dt = self.time() - t0

648647649-

msg = ('Getting address info %s took %.3f ms: %r'

650-

% (msg, dt * 1e3, addrinfo))

648+

msg = f'Getting address info {msg} took {dt * 1e3:.3f}ms: {addrinfo!r}'

651649

if dt >= self.slow_callback_duration:

652650

logger.info(msg)

653651

else:

@@ -738,11 +736,12 @@ async def create_connection(self, protocol_factory, host=None, port=None,

738736

sock.bind(laddr)

739737

break

740738

except OSError as exc:

741-

exc = OSError(

742-

exc.errno, 'error while '

743-

'attempting to bind on address '

744-

'{!r}: {}'.format(

745-

laddr, exc.strerror.lower()))

739+

msg = (

740+

f'error while attempting to bind on '

741+

f'address {laddr!r}: '

742+

f'{exc.strerror.lower()}'

743+

)

744+

exc = OSError(exc.errno, msg)

746745

exceptions.append(exc)

747746

else:

748747

sock.close()

@@ -786,7 +785,7 @@ async def create_connection(self, protocol_factory, host=None, port=None,

786785

# Disallowing AF_UNIX in this method, breaks backwards

787786

# compatibility.

788787

raise ValueError(

789-

'A Stream Socket was expected, got {!r}'.format(sock))

788+

f'A Stream Socket was expected, got {sock!r}')

790789791790

transport, protocol = await self._create_connection_transport(

792791

sock, protocol_factory, ssl, server_hostname)

@@ -830,7 +829,7 @@ async def create_datagram_endpoint(self, protocol_factory,

830829

if sock is not None:

831830

if not _is_dgram_socket(sock):

832831

raise ValueError(

833-

'A UDP Socket was expected, got {!r}'.format(sock))

832+

f'A UDP Socket was expected, got {sock!r}')

834833

if (local_addr or remote_addr or

835834

family or proto or flags or

836835

reuse_address or reuse_port or allow_broadcast):

@@ -839,11 +838,10 @@ async def create_datagram_endpoint(self, protocol_factory,

839838

family=family, proto=proto, flags=flags,

840839

reuse_address=reuse_address, reuse_port=reuse_port,

841840

allow_broadcast=allow_broadcast)

842-

problems = ', '.join(

843-

'{}={}'.format(k, v) for k, v in opts.items() if v)

841+

problems = ', '.join(f'{k}={v}' for k, v in opts.items() if v)

844842

raise ValueError(

845-

'socket modifier keyword arguments can not be used '

846-

'when sock is specified. ({})'.format(problems))

843+

f'socket modifier keyword arguments can not be used '

844+

f'when sock is specified. ({problems})')

847845

sock.setblocking(False)

848846

r_addr = None

849847

else:

@@ -953,7 +951,7 @@ async def _create_server_getaddrinfo(self, host, port, family, flags):

953951

type=socket.SOCK_STREAM,

954952

flags=flags, loop=self)

955953

if not infos:

956-

raise OSError('getaddrinfo({!r}) returned empty list'.format(host))

954+

raise OSError(f'getaddrinfo({host!r}) returned empty list')

957955

return infos

958956959957

async def create_server(self, protocol_factory, host=None, port=None,

@@ -967,8 +965,8 @@ async def create_server(self, protocol_factory, host=None, port=None,

967965

reuse_port=None):

968966

"""Create a TCP server.

969967970-

The host parameter can be a string, in that case the TCP server is bound

971-

to host and port.

968+

The host parameter can be a string, in that case the TCP server is

969+

bound to host and port.

972970973971

The host parameter can also be a sequence of strings and in that case

974972

the TCP server is bound to all hosts of the sequence. If a host

@@ -1046,8 +1044,7 @@ async def create_server(self, protocol_factory, host=None, port=None,

10461044

if sock is None:

10471045

raise ValueError('Neither host/port nor sock were specified')

10481046

if not _is_stream_socket(sock):

1049-

raise ValueError(

1050-

'A Stream Socket was expected, got {!r}'.format(sock))

1047+

raise ValueError(f'A Stream Socket was expected, got {sock!r}')

10511048

sockets = [sock]

1052104910531050

server = Server(self, sockets)

@@ -1070,8 +1067,7 @@ async def connect_accepted_socket(self, protocol_factory, sock,

10701067

returns a (transport, protocol) pair.

10711068

"""

10721069

if not _is_stream_socket(sock):

1073-

raise ValueError(

1074-

'A Stream Socket was expected, got {!r}'.format(sock))

1070+

raise ValueError(f'A Stream Socket was expected, got {sock!r}')

1075107110761072

transport, protocol = await self._create_connection_transport(

10771073

sock, protocol_factory, ssl, '', server_side=True)

@@ -1117,14 +1113,14 @@ async def connect_write_pipe(self, protocol_factory, pipe):

11171113

def _log_subprocess(self, msg, stdin, stdout, stderr):

11181114

info = [msg]

11191115

if stdin is not None:

1120-

info.append('stdin=%s' % _format_pipe(stdin))

1116+

info.append(f'stdin={_format_pipe(stdin)}')

11211117

if stdout is not None and stderr == subprocess.STDOUT:

1122-

info.append('stdout=stderr=%s' % _format_pipe(stdout))

1118+

info.append(f'stdout=stderr={_format_pipe(stdout)}')

11231119

else:

11241120

if stdout is not None:

1125-

info.append('stdout=%s' % _format_pipe(stdout))

1121+

info.append(f'stdout={_format_pipe(stdout)}')

11261122

if stderr is not None:

1127-

info.append('stderr=%s' % _format_pipe(stderr))

1123+

info.append(f'stderr={_format_pipe(stderr)}')

11281124

logger.debug(' '.join(info))

1129112511301126

async def subprocess_shell(self, protocol_factory, cmd, *,

@@ -1167,14 +1163,14 @@ async def subprocess_exec(self, protocol_factory, program, *args,

11671163

popen_args = (program,) + args

11681164

for arg in popen_args:

11691165

if not isinstance(arg, (str, bytes)):

1170-

raise TypeError("program arguments must be "

1171-

"a bytes or text string, not %s"

1172-

% type(arg).__name__)

1166+

raise TypeError(

1167+

f"program arguments must be a bytes or text string, "

1168+

f"not {type(arg).__name__}")

11731169

protocol = protocol_factory()

11741170

if self._debug:

11751171

# don't log parameters: they may contain sensitive information

11761172

# (password) and may be too long

1177-

debug_log = 'execute program %r' % program

1173+

debug_log = f'execute program {program!r}'

11781174

self._log_subprocess(debug_log, stdin, stdout, stderr)

11791175

transport = await self._make_subprocess_transport(

11801176

protocol, popen_args, False, stdin, stdout, stderr,

@@ -1201,8 +1197,8 @@ def set_exception_handler(self, handler):

12011197

documentation for details about context).

12021198

"""

12031199

if handler is not None and not callable(handler):

1204-

raise TypeError('A callable object or None is expected, '

1205-

'got {!r}'.format(handler))

1200+

raise TypeError(f'A callable object or None is expected, '

1201+

f'got {handler!r}')

12061202

self._exception_handler = handler

1207120312081204

def default_exception_handler(self, context):

@@ -1230,10 +1226,11 @@ def default_exception_handler(self, context):

12301226

else:

12311227

exc_info = False

123212281233-

if ('source_traceback' not in context

1234-

and self._current_handle is not None

1235-

and self._current_handle._source_traceback):

1236-

context['handle_traceback'] = self._current_handle._source_traceback

1229+

if ('source_traceback' not in context and

1230+

self._current_handle is not None and

1231+

self._current_handle._source_traceback):

1232+

context['handle_traceback'] = \

1233+

self._current_handle._source_traceback

1237123412381235

log_lines = [message]

12391236

for key in sorted(context):

@@ -1250,7 +1247,7 @@ def default_exception_handler(self, context):

12501247

value += tb.rstrip()

12511248

else:

12521249

value = repr(value)

1253-

log_lines.append('{}: {}'.format(key, value))

1250+

log_lines.append(f'{key}: {value}')

1254125112551252

logger.error('\n'.join(log_lines), exc_info=exc_info)

12561253

@@ -1438,18 +1435,19 @@ def _set_coroutine_wrapper(self, enabled):

14381435

if enabled:

14391436

if current_wrapper not in (None, wrapper):

14401437

warnings.warn(

1441-

"loop.set_debug(True): cannot set debug coroutine "

1442-

"wrapper; another wrapper is already set %r" %

1443-

current_wrapper, RuntimeWarning)

1438+

f"loop.set_debug(True): cannot set debug coroutine "

1439+

f"wrapper; another wrapper is already set "

1440+

f"{current_wrapper!r}",

1441+

RuntimeWarning)

14441442

else:

14451443

set_wrapper(wrapper)

14461444

self._coroutine_wrapper_set = True

14471445

else:

14481446

if current_wrapper not in (None, wrapper):

14491447

warnings.warn(

1450-

"loop.set_debug(False): cannot unset debug coroutine "

1451-

"wrapper; another wrapper was set %r" %

1452-

current_wrapper, RuntimeWarning)

1448+

f"loop.set_debug(False): cannot unset debug coroutine "

1449+

f"wrapper; another wrapper was set {current_wrapper!r}",

1450+

RuntimeWarning)

14531451

else:

14541452

set_wrapper(None)

14551453

self._coroutine_wrapper_set = False