Skip to content

Commit b61975e

Browse files
committed
Use match-case instead of elif
1 parent ca32120 commit b61975e

File tree

1 file changed

+14
-13
lines changed

1 file changed

+14
-13
lines changed

jupyter_ydoc/yunicode.py

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -84,19 +84,20 @@ def set(self, value: str) -> None:
8484
operations = matcher.get_opcodes()
8585
offset = 0
8686
for tag, i1, i2, j1, j2 in operations:
87-
if tag == "replace":
88-
self._ysource[i1 + offset : i2 + offset] = value[j1:j2]
89-
offset += (j2 - j1) - (i2 - i1)
90-
elif tag == "delete":
91-
del self._ysource[i1 + offset : i2 + offset]
92-
offset -= i2 - i1
93-
elif tag == "insert":
94-
self._ysource.insert(i1 + offset, value[j1:j2])
95-
offset += j2 - j1
96-
elif tag == "equal":
97-
pass
98-
else:
99-
raise ValueError(f"Unknown tag '{tag}' in sequence matcher")
87+
match tag:
88+
case "replace":
89+
self._ysource[i1 + offset : i2 + offset] = value[j1:j2]
90+
offset += (j2 - j1) - (i2 - i1)
91+
case "delete":
92+
del self._ysource[i1 + offset : i2 + offset]
93+
offset -= i2 - i1
94+
case "insert":
95+
self._ysource.insert(i1 + offset, value[j1:j2])
96+
offset += j2 - j1
97+
case "equal":
98+
pass
99+
case _:
100+
raise ValueError(f"Unknown tag '{tag}' in sequence matcher")
100101
else:
101102
# for very different strings, just replace the whole content;
102103
# this avoids generating a huge number of operations

0 commit comments

Comments
 (0)