diff --git a/examples/ra_log.py b/examples/ra_log.py index a4771047..e8dcc69c 100755 --- a/examples/ra_log.py +++ b/examples/ra_log.py @@ -9,7 +9,7 @@ paths=None, start=0, end=conn.get_latest_revnum(), discover_changed_paths=True ): print("=" * 79) - print("%d:" % rev) + print(f"{rev}:") print("Revision properties:") for entry in revprops.items(): print(" {}: {}".format(*entry)) diff --git a/examples/ra_replay.py b/examples/ra_replay.py index d484b00f..467a2fe0 100755 --- a/examples/ra_replay.py +++ b/examples/ra_replay.py @@ -53,7 +53,7 @@ def close(self): class MyEditor: def set_target_revision(self, revnum): - print("Target revision: %d" % revnum) + print(f"Target revision: {revnum}") def abort(self): print("Aborted") diff --git a/examples/ra_shell.py b/examples/ra_shell.py index bd8d0e2d..d8f585ef 100755 --- a/examples/ra_shell.py +++ b/examples/ra_shell.py @@ -16,7 +16,7 @@ def log_printer(changed_paths, rev, revprops, has_children=None): print("=" * 79) - print("%d:" % rev) + print(f"{rev}:") print("Revision properties:") for entry in revprops.items(): print(" {}: {}".format(*entry)) diff --git a/subvertpy/delta.py b/subvertpy/delta.py index 550b5364..d141098c 100644 --- a/subvertpy/delta.py +++ b/subvertpy/delta.py @@ -49,7 +49,7 @@ def apply_txdelta_window(sbuf, window): sview = sbuf[sview_offset : sview_offset + sview_len] tview = txdelta_apply_ops(src_ops, ops, new_data, sview) if len(tview) != tview_len: - raise AssertionError("%d != %d" % (len(tview), tview_len)) + raise AssertionError(f"{len(tview)} != {tview_len}") return tview diff --git a/subvertpy/marshall.py b/subvertpy/marshall.py index 52768fab..4adfc38e 100644 --- a/subvertpy/marshall.py +++ b/subvertpy/marshall.py @@ -64,16 +64,16 @@ def marshall(x): :return: encoded byte string """ if isinstance(x, int): - return ("%d " % x).encode("ascii") + return f"{x} ".encode("ascii") elif isinstance(x, (list, tuple)): return b"( " + b"".join(map(marshall, x)) + b") " elif isinstance(x, literal): return (f"{x} ").encode("ascii") elif isinstance(x, bytes): - return ("%d:" % len(x)).encode("ascii") + x + b" " + return f"{len(x)}:".encode("ascii") + x + b" " elif isinstance(x, str): x = x.encode("utf-8") - return ("%d:" % len(x)).encode("ascii") + x + b" " + return f"{len(x)}:".encode("ascii") + x + b" " elif isinstance(x, bool): if x is True: return b"true " @@ -109,7 +109,7 @@ def unmarshall(x): raise NeedMoreData("Missing whitespace") if x[1] not in whitespace: - raise MarshallError("Expected space, got '%c'" % x[1]) + raise MarshallError(f"Expected space, got '{chr(x[1])}'") return (x[2:], ret) elif x[0:1].isdigit(): @@ -129,7 +129,7 @@ def unmarshall(x): elif not x: raise MarshallError("Expected whitespace, got end of string.") else: - raise MarshallError("Expected whitespace or ':', got '%c'" % x[0]) + raise MarshallError(f"Expected whitespace or ':', got '{chr(x[0])}'") elif x[:1].isalpha(): ret = bytearray() # Parse literal @@ -144,8 +144,8 @@ def unmarshall(x): raise MarshallError("Expected whitespace, got end of string.") if x[0] not in whitespace: - raise MarshallError("Expected whitespace, got '%c'" % x[0]) + raise MarshallError(f"Expected whitespace, got '{chr(x[0])}'") return (x[1:], literal(ret.decode("ascii"))) else: - raise MarshallError("Unexpected character '%c'" % x[0]) + raise MarshallError(f"Unexpected character '{chr(x[0])}'") diff --git a/subvertpy/properties.py b/subvertpy/properties.py index 952da4e9..23060c08 100644 --- a/subvertpy/properties.py +++ b/subvertpy/properties.py @@ -54,18 +54,18 @@ def time_to_cstring(timestamp): :return: string with date """ tm_usec = timestamp % 1000000 - (tm_year, tm_mon, tm_mday, tm_hour, tm_min, tm_sec, _tm_wday, _tm_yday, _tm_isdst) = ( - time.gmtime(timestamp / 1000000) - ) - return "%04d-%02d-%02dT%02d:%02d:%02d.%06dZ" % ( + ( tm_year, tm_mon, tm_mday, tm_hour, tm_min, tm_sec, - tm_usec, - ) + _tm_wday, + _tm_yday, + _tm_isdst, + ) = time.gmtime(timestamp / 1000000) + return f"{tm_year:04d}-{tm_mon:02d}-{tm_mday:02d}T{tm_hour:02d}:{tm_min:02d}:{tm_sec:02d}.{tm_usec:06d}Z" def time_from_cstring(text): @@ -182,9 +182,9 @@ def formatrange(range_params): if not inheritable: suffix = "*" if start == end: - return "%d%s" % (start, suffix) + return f"{start}{suffix}" else: - return "%d-%d%s" % (start, end, suffix) + return f"{start}-{end}{suffix}" text = "" for path, ranges in merges.items(): diff --git a/subvertpy/ra_svn.py b/subvertpy/ra_svn.py index 5065d679..d96a7309 100644 --- a/subvertpy/ra_svn.py +++ b/subvertpy/ra_svn.py @@ -443,7 +443,9 @@ def __init__( else: (recv_func, send_func) = self._connect_ssh(host) super().__init__(recv_func, send_func) - (_min_version, max_version, _, self._server_capabilities) = self._recv_greeting() + (_min_version, max_version, _, self._server_capabilities) = ( + self._recv_greeting() + ) self.send_msg( [ max_version, diff --git a/tests/test_ra.py b/tests/test_ra.py index c874d26e..55de80f6 100644 --- a/tests/test_ra.py +++ b/tests/test_ra.py @@ -174,7 +174,7 @@ def check_results(returned): if len(returned[0]) == 3: (paths, revnum, props) = returned[0] else: - (paths, revnum, props, has_children) = returned[0] + (paths, revnum, props, _has_children) = returned[0] self.assertEqual(None, paths) self.assertEqual(revnum, 0) self.assertEqual(["svn:date"], list(props.keys())) @@ -215,7 +215,7 @@ def check_results(returned): if len(returned[0]) == 3: (paths, revnum, props) = returned[0] else: - (paths, revnum, props, has_children) = returned[0] + (paths, revnum, props, _has_children) = returned[0] self.assertEqual(None, paths) self.assertEqual(revnum, 0) self.assertEqual(["svn:date"], list(props.keys())) @@ -534,7 +534,7 @@ def test_retry(self): def inc_foo(realm, may_save): self.i += 1 - return ("somebody%d" % self.i, False) + return (f"somebody{self.i}", False) auth = ra.Auth([ra.get_username_prompt_provider(inc_foo, 2)]) creds = auth.credentials("svn.username", "MyRealm")