Skip to content

Commit 77f529d

Browse files
pylint: fix consider-using-f-string cases
Fix all cases of C0209 consider-using-f-string. Part of #270
1 parent e52e35e commit 77f529d

20 files changed

+93
-107
lines changed

tarantool/connection.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1210,8 +1210,8 @@ def check(): # Check that connection is alive
12101210
else:
12111211
if self.connected:
12121212
break
1213-
warn("Reconnecting, attempt %d of %d" %
1214-
(attempt, self.reconnect_max_attempts), NetworkWarning)
1213+
warn(f"Reconnecting, attempt {attempt} of {self.reconnect_max_attempts}",
1214+
NetworkWarning)
12151215
if attempt == self.reconnect_max_attempts:
12161216
raise NetworkError(
12171217
socket.error(last_errno, errno.errorcode[last_errno]))

tarantool/connection_pool.py

+6-11
Original file line numberDiff line numberDiff line change
@@ -526,7 +526,7 @@ def _make_key(self, addr):
526526
:meta private:
527527
"""
528528

529-
return '{0}:{1}'.format(addr['host'], addr['port'])
529+
return f"{addr['host']}:{addr['port']}"
530530

531531
def _get_new_state(self, unit):
532532
"""
@@ -546,38 +546,33 @@ def _get_new_state(self, unit):
546546
try:
547547
conn.connect()
548548
except NetworkError as exc:
549-
msg = "Failed to connect to {0}:{1}".format(
550-
unit.addr['host'], unit.addr['port'])
549+
msg = f"Failed to connect to {unit.addr['host']}:{unit.addr['port']}"
551550
warn(msg, ClusterConnectWarning)
552551
return InstanceState(Status.UNHEALTHY)
553552

554553
try:
555554
resp = conn.call('box.info')
556555
except NetworkError as exc:
557-
msg = "Failed to get box.info for {0}:{1}, reason: {2}".format(
558-
unit.addr['host'], unit.addr['port'], repr(exc))
556+
msg = f"Failed to get box.info for {unit.addr['host']}:{unit.addr['port']}, reason: {repr(exc)}"
559557
warn(msg, PoolTolopogyWarning)
560558
return InstanceState(Status.UNHEALTHY)
561559

562560
try:
563561
read_only = resp.data[0]['ro']
564562
except (IndexError, KeyError) as exc:
565-
msg = "Incorrect box.info response from {0}:{1}".format(
566-
unit.addr['host'], unit.addr['port'])
563+
msg = f"Incorrect box.info response from {unit.addr['host']}:{unit.addr['port']}"
567564
warn(msg, PoolTolopogyWarning)
568565
return InstanceState(Status.UNHEALTHY)
569566

570567
try:
571568
status = resp.data[0]['status']
572569

573570
if status != 'running':
574-
msg = "{0}:{1} instance status is not 'running'".format(
575-
unit.addr['host'], unit.addr['port'])
571+
msg = f"{unit.addr['host']}:{unit.addr['port']} instance status is not 'running'"
576572
warn(msg, PoolTolopogyWarning)
577573
return InstanceState(Status.UNHEALTHY)
578574
except (IndexError, KeyError) as exc:
579-
msg = "Incorrect box.info response from {0}:{1}".format(
580-
unit.addr['host'], unit.addr['port'])
575+
msg = f"Incorrect box.info response from {unit.addr['host']}:{unit.addr['port']}"
581576
warn(msg, PoolTolopogyWarning)
582577
return InstanceState(Status.UNHEALTHY)
583578

tarantool/dbapi.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,7 @@ def _set_autocommit(self, autocommit):
291291

292292
if not isinstance(autocommit, bool):
293293
raise InterfaceError("autocommit parameter must be boolean, "
294-
"not %s" % autocommit.__class__.__name__)
294+
f"not {autocommit.__class__.__name__}")
295295
if autocommit is False:
296296
raise NotSupportedError("The connector supports "
297297
"only autocommit mode")

tarantool/error.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ def os_strerror_patched(code):
194194
if not message.startswith("Unknown"):
195195
return message
196196
else:
197-
return _code2str.get(code, "Unknown error %s" % code)
197+
return _code2str.get(code, f"Unknown error {code}")
198198

199199
os.strerror = os_strerror_patched
200200
del os_strerror_patched

tarantool/mesh_connection.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ def parse_uri(uri):
6161

6262
# TODO: Support Unix sockets.
6363
def parse_error(uri, msg):
64-
msg = 'URI "%s": %s' % (uri, msg)
64+
msg = f'URI "{uri}": {msg}'
6565
return None, msg
6666

6767
if not uri:
@@ -119,7 +119,7 @@ def prepare_address(address):
119119
"""
120120

121121
def format_error(address, err):
122-
return None, 'Address %s: %s' % (str(address), err)
122+
return None, f'Address {str(address)}: {err}'
123123

124124
if not isinstance(address, dict):
125125
return format_error(address, 'address must be a dict')
@@ -559,7 +559,7 @@ def _opt_refresh_instances(self):
559559
try:
560560
resp = self._send_request_wo_reconnect(request)
561561
except DatabaseError as exc:
562-
msg = 'got "%s" error, skipped address updates' % str(exc)
562+
msg = f'got "{str(exc)}" error, skipped address updates'
563563
warn(msg, ClusterDiscoveryWarning)
564564
return
565565

tarantool/msgpack_ext/packer.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,4 +48,4 @@ def default(obj, packer=None):
4848
for encoder in encoders:
4949
if isinstance(obj, encoder['type']):
5050
return ExtType(encoder['ext'].EXT_ID, encoder['ext'].encode(obj, packer))
51-
raise TypeError("Unknown type: %r" % (obj,))
51+
raise TypeError(f"Unknown type: {repr(obj)}")

tarantool/msgpack_ext/unpacker.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,4 @@ def ext_hook(code, data, unpacker=None):
4242

4343
if code in decoders:
4444
return decoders[code](data, unpacker)
45-
raise NotImplementedError("Unknown msgpack extension type code %d" % (code,))
45+
raise NotImplementedError(f"Unknown msgpack extension type code {code}")

tarantool/request.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -683,10 +683,10 @@ def __init__(self, conn, sql, args):
683683

684684
super(RequestExecute, self).__init__(conn)
685685
if isinstance(args, Mapping):
686-
args = [{":%s" % name: value} for name, value in args.items()]
686+
args = [{f":{name}": value} for name, value in args.items()]
687687
elif not isinstance(args, Sequence):
688-
raise TypeError("Parameter type '%s' is not supported. "
689-
"Must be a mapping or sequence" % type(args))
688+
raise TypeError(f"Parameter type '{type(args)}' is not supported. "
689+
"Must be a mapping or sequence")
690690

691691
request_body = self._dumps({IPROTO_SQL_TEXT: sql,
692692
IPROTO_SQL_BIND: args})

tarantool/schema.py

+4-7
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ def fetch_space(self, space):
244244
elif len(space_row) == 0 or not len(space_row[0]):
245245
# We can't find space with this name or id
246246
temp_name = 'name' if isinstance(space, str) else 'id'
247-
errmsg = "There's no space with {1} '{0}'".format(space, temp_name)
247+
errmsg = f"There's no space with {temp_name} '{space}'"
248248
raise SchemaError(errmsg)
249249

250250
space_row = space_row[0]
@@ -356,9 +356,8 @@ def fetch_index(self, space_object, index):
356356
elif len(index_row) == 0 or not len(index_row[0]):
357357
# We can't find index with this name or id
358358
temp_name = 'name' if isinstance(index, str) else 'id'
359-
errmsg = ("There's no index with {2} '{0}'"
360-
" in space '{1}'").format(index, space_object.name,
361-
temp_name)
359+
errmsg = (f"There's no index with {temp_name} '{index}'"
360+
f" in space '{space_object.name}'")
362361
raise SchemaError(errmsg)
363362

364363
index_row = index_row[0]
@@ -452,9 +451,7 @@ def get_field(self, space, field):
452451
return _space.format[field]
453452
except:
454453
kind = 'name' if isinstance(field, str) else 'id'
455-
errmsg = "There's no field with {2} '{0}' in space '{1}'".format(
456-
field, _space.name, kind
457-
)
454+
errmsg = f"There's no field with {kind} '{field}' in space '{_space.name}'"
458455
raise SchemaError(errmsg)
459456

460457
return field

test/suites/lib/remote_tarantool_server.py

+8-12
Original file line numberDiff line numberDiff line change
@@ -41,42 +41,38 @@ def __init__(self):
4141
def acquire_lock(self):
4242
deadline = time.time() + AWAIT_TIME
4343
while True:
44-
res = self.admin.execute('return acquire_lock("%s")' % self.whoami)
44+
res = self.admin.execute(f'return acquire_lock("{ self.whoami}")')
4545
ok = res[0]
4646
err = res[1] if not ok else None
4747
if ok:
4848
break
4949
if time.time() > deadline:
50-
raise RuntimeError('can not acquire "%s" lock: %s' % (
51-
self.whoami, str(err)))
52-
print('waiting to acquire "%s" lock' % self.whoami,
50+
raise RuntimeError(f'can not acquire "{self.whoami}" lock: {str(err)}')
51+
print(f'waiting to acquire "{self.whoami}" lock',
5352
file=sys.stderr)
5453
time.sleep(1)
5554
self.lock_is_acquired = True
5655

5756
def touch_lock(self):
5857
assert(self.lock_is_acquired)
59-
res = self.admin.execute('return touch_lock("%s")' % self.whoami)
58+
res = self.admin.execute(f'return touch_lock("{self.whoami}")')
6059
ok = res[0]
6160
err = res[1] if not ok else None
6261
if not ok:
63-
raise RuntimeError('can not update "%s" lock: %s' % (
64-
self.whoami, str(err)))
62+
raise RuntimeError(f'can not update "{self.whoami}" lock: {str(err)}')
6563

6664
def release_lock(self):
67-
res = self.admin.execute('return release_lock("%s")' % self.whoami)
65+
res = self.admin.execute(f'return release_lock("{self.whoami}")')
6866
ok = res[0]
6967
err = res[1] if not ok else None
7068
if not ok:
71-
raise RuntimeError('can not release "%s" lock: %s' % (
72-
self.whoami, str(err)))
69+
raise RuntimeError(f'can not release "{self.whoami}" lock: {str(err)}')
7370
self.lock_is_acquired = False
7471

7572
def start(self):
7673
if not self.lock_is_acquired:
7774
self.acquire_lock()
78-
self.admin.execute('box.cfg{listen = "0.0.0.0:%s"}' %
79-
self.args['primary'])
75+
self.admin.execute(f'box.cfg{{listen = "0.0.0.0:{self.args["primary"]}"}}')
8076

8177
def stop(self):
8278
self.admin.execute('box.cfg{listen = box.NULL}')

test/suites/lib/skip.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ def skip_or_run_test_tarantool_impl(self, required_tt_version, msg):
3434
support_version = pkg_resources.parse_version(required_tt_version)
3535

3636
if self.tnt_version < support_version:
37-
self.skipTest('Tarantool %s %s' % (self.tnt_version, msg))
37+
self.skipTest(f'Tarantool {self.tnt_version} {msg}')
3838

3939

4040
def skip_or_run_test_tarantool(func, required_tt_version, msg):
@@ -92,9 +92,9 @@ def wrapper(self, *args, **kwargs):
9292

9393
assert srv is not None
9494

95-
resp = srv.admin("pcall(require, '%s')" % required_tt_module)
95+
resp = srv.admin(f"pcall(require, '{required_tt_module}')")
9696
if not resp[0]:
97-
self.skipTest('Tarantool %s' % (msg, ))
97+
self.skipTest(f'Tarantool {msg}')
9898

9999
if func.__name__ != 'setUp':
100100
func(self, *args, **kwargs)
@@ -119,7 +119,7 @@ def wrapper(self, *args, **kwargs):
119119
python_version = pkg_resources.parse_version(python_version_str)
120120
support_version = pkg_resources.parse_version(required_python_version)
121121
if python_version < support_version:
122-
self.skipTest('Python %s connector %s' % (python_version, msg))
122+
self.skipTest(f'Python {python_version} connector {msg}')
123123

124124
if func.__name__ != 'setUp':
125125
func(self, *args, **kwargs)

test/suites/lib/tarantool_server.py

+9-9
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def check_port(port, rais=True):
2525
sock.close()
2626

2727
if rais:
28-
raise RuntimeError("The server is already running on port {0}".format(port))
28+
raise RuntimeError(f"The server is already running on port {port}")
2929
return False
3030

3131

@@ -100,7 +100,7 @@ def _admin(self, port):
100100
try:
101101
int(port)
102102
except ValueError:
103-
raise ValueError("Bad port number: '%s'" % port)
103+
raise ValueError(f"Bad port number: '{port}'")
104104
if hasattr(self, 'admin'):
105105
del self.admin
106106
self.admin = TarantoolAdmin('0.0.0.0', port)
@@ -186,17 +186,17 @@ def generate_listen(self, port, port_only):
186186
if not port_only and self.transport == SSL_TRANSPORT:
187187
listen = self.host + ":" + str(port) + "?transport=ssl&"
188188
if self.ssl_key_file:
189-
listen += "ssl_key_file={}&".format(self.ssl_key_file)
189+
listen += f"ssl_key_file={self.ssl_key_file}&"
190190
if self.ssl_cert_file:
191-
listen += "ssl_cert_file={}&".format(self.ssl_cert_file)
191+
listen += f"ssl_cert_file={self.ssl_cert_file}&"
192192
if self.ssl_ca_file:
193-
listen += "ssl_ca_file={}&".format(self.ssl_ca_file)
193+
listen += f"ssl_ca_file={self.ssl_ca_file}&"
194194
if self.ssl_ciphers:
195-
listen += "ssl_ciphers={}&".format(self.ssl_ciphers)
195+
listen += f"ssl_ciphers={self.ssl_ciphers}&"
196196
if self.ssl_password:
197-
listen += "ssl_password={}&".format(self.ssl_password)
197+
listen += f"ssl_password={self.ssl_password}&"
198198
if self.ssl_password_file:
199-
listen += "ssl_password_file={}&".format(self.ssl_password_file)
199+
listen += f"ssl_password_file={self.ssl_password_file}&"
200200
listen = listen[:-1]
201201
else:
202202
listen = str(port)
@@ -234,7 +234,7 @@ def wait_until_started(self):
234234
elif ans in ('loading',):
235235
continue
236236
else:
237-
raise Exception("Strange output for `box.info.status`: %s" % (ans))
237+
raise Exception(f"Strange output for `box.info.status`: {ans}")
238238
except socket.error as exc:
239239
if exc.errno == errno.ECONNREFUSED:
240240
time.sleep(0.1)

test/suites/test_connection.py

+8-8
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ def my_ext_type_encoder(obj):
6161
if isinstance(obj, decimal.Decimal):
6262
obj = obj + 1
6363
return msgpack.ExtType(ext_decimal.EXT_ID, ext_decimal.encode(obj, None))
64-
raise TypeError("Unknown type: %r" % (obj,))
64+
raise TypeError(f"Unknown type: {repr(obj)}")
6565

6666
def my_packer_factory(_):
6767
return msgpack.Packer(default=my_ext_type_encoder)
@@ -92,7 +92,7 @@ def test_custom_unpacker(self):
9292
def my_ext_type_decoder(code, data):
9393
if code == ext_decimal.EXT_ID:
9494
return ext_decimal.decode(data, None) - 1
95-
raise NotImplementedError("Unknown msgpack extension type code %d" % (code,))
95+
raise NotImplementedError(f"Unknown msgpack extension type code {code}")
9696

9797
def my_unpacker_factory(_):
9898
if msgpack.version >= (1, 0, 0):
@@ -127,13 +127,13 @@ def my_unpacker_factory(_):
127127
data = bytes(bytearray.fromhex(data_hex))
128128
space = 'space_varbin'
129129

130-
self.con.execute("""
131-
INSERT INTO "%s" VALUES (%d, x'%s');
132-
""" % (space, data_id, data_hex))
130+
self.con.execute(f"""
131+
INSERT INTO "{space}" VALUES ({data_id}, x'{data_hex}');
132+
""")
133133

134-
resp = self.con.execute("""
135-
SELECT * FROM "%s" WHERE "varbin" == x'%s';
136-
""" % (space, data_hex))
134+
resp = self.con.execute(f"""
135+
SELECT * FROM "{space}" WHERE "varbin" == x'{data_hex}';
136+
""")
137137
self.assertSequenceEqual(resp, [[data_id, data]])
138138

139139
def test_custom_unpacker_supersedes_use_list(self):

test/suites/test_dbapi.py

+6-8
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@
1212
class TestSuiteDBAPI(dbapi20.DatabaseAPI20Test):
1313
table_prefix = 'dbapi20test_' # If you need to specify a prefix for tables
1414

15-
ddl0 = 'create table %s (id INTEGER PRIMARY KEY AUTOINCREMENT, ' \
15+
ddl0 = f'create table {table_prefix} (id INTEGER PRIMARY KEY AUTOINCREMENT, ' \
1616
'name varchar(20))'
17-
ddl1 = 'create table %sbooze (name varchar(20) primary key)' % table_prefix
18-
ddl2 = 'create table %sbarflys (name varchar(20) primary key, ' \
19-
'drink varchar(30))' % table_prefix
17+
ddl1 = f'create table {table_prefix}booze (name varchar(20) primary key)'
18+
ddl2 = f'create table {table_prefix}barflys (name varchar(20) primary key, ' \
19+
'drink varchar(30))'
2020

2121
@classmethod
2222
def setUpClass(self):
@@ -57,14 +57,12 @@ def test_rowcount(self):
5757
'cursor.rowcount should be -1 or 1 after executing no-result '
5858
'statements' + str(cur.rowcount)
5959
)
60-
cur.execute("%s into %sbooze values ('Victoria Bitter')" % (
61-
self.insert, self.table_prefix
62-
))
60+
cur.execute(f"{self.insert} into {self.table_prefix}booze values ('Victoria Bitter')")
6361
dbapi20._failUnless(self,cur.rowcount == 1,
6462
'cursor.rowcount should == number or rows inserted, or '
6563
'set to -1 after executing an insert statement'
6664
)
67-
cur.execute("select name from %sbooze" % self.table_prefix)
65+
cur.execute(f"select name from {self.table_prefix}booze")
6866
dbapi20._failUnless(self,cur.rowcount == -1,
6967
'cursor.rowcount should == number of rows returned, or '
7068
'set to -1 after executing a select statement'

0 commit comments

Comments
 (0)