Skip to content

Commit 36d0dcb

Browse files
committed
refactor get_dotted_field_list using match/case and reorder conditions
1 parent 9feaa04 commit 36d0dcb

File tree

1 file changed

+13
-10
lines changed

1 file changed

+13
-10
lines changed

logprep/util/helper.py

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -465,16 +465,19 @@ def get_dotted_field_list(dotted_field: str) -> Sequence[str]:
465465
char_buffer = []
466466
itr = iter(dotted_field)
467467
for c in itr:
468-
if c == "\\":
469-
try:
470-
char_buffer.append(next(itr))
471-
except StopIteration:
472-
char_buffer.append("\\")
473-
elif c == ".":
474-
result.append("".join(char_buffer))
475-
char_buffer = []
476-
else:
477-
char_buffer.append(c)
468+
match (c):
469+
case _ if not c in ("\\", "."):
470+
# most often encountered case first
471+
char_buffer.append(c)
472+
case ".":
473+
result.append("".join(char_buffer))
474+
char_buffer = []
475+
case "\\":
476+
try:
477+
char_buffer.append(next(itr))
478+
except StopIteration:
479+
char_buffer.append("\\")
480+
478481
result.append("".join(char_buffer))
479482
return result
480483

0 commit comments

Comments
 (0)