Skip to content

Commit 5e0631d

Browse files
collect chars in a list
1 parent b0833c0 commit 5e0631d

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

pandas/core/computation/parsing.py

+13-9
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ def _split_by_backtick(s: str) -> list[tuple[bool, str]]:
203203
The second is the actual substring.
204204
"""
205205
substrings = []
206-
substr = ""
206+
substr = [] # collect in a list, join into a string before adding to substrings
207207
i = 0
208208
parse_state = ParseState.DEFAULT
209209
while i < len(s):
@@ -214,24 +214,28 @@ def _split_by_backtick(s: str) -> list[tuple[bool, str]]:
214214
# start of a backtick-quoted string
215215
if parse_state == ParseState.DEFAULT:
216216
if substr:
217-
substrings.append((False, substr))
218-
substr = char
217+
substrings.append((False, "".join(substr)))
218+
219+
substr = [char]
219220
i += 1
220221
parse_state = ParseState.IN_BACKTICK
221222
continue
223+
222224
elif parse_state == ParseState.IN_BACKTICK:
223225
# escaped backtick inside a backtick-quoted string
224226
next_char = s[i + 1] if (i != len(s) - 1) else None
225227
if next_char == "`":
226-
substr += char + next_char
228+
substr.append(char)
229+
substr.append(next_char)
227230
i += 2
228231
continue
232+
229233
# end of the backtick-quoted string
230234
else:
231-
substr += char
232-
substrings.append((True, substr))
235+
substr.append(char)
236+
substrings.append((True, "".join(substr)))
233237

234-
substr = ""
238+
substr = []
235239
i += 1
236240
parse_state = ParseState.DEFAULT
237241
continue
@@ -249,11 +253,11 @@ def _split_by_backtick(s: str) -> list[tuple[bool, str]]:
249253
# end of a double-quoted string
250254
elif (parse_state == ParseState.IN_DOUBLE_QUOTE) and (s[i - 1] != "\\"):
251255
parse_state = ParseState.DEFAULT
252-
substr += char
256+
substr.append(char)
253257
i += 1
254258

255259
if substr:
256-
substrings.append((False, substr))
260+
substrings.append((False, "".join(substr)))
257261

258262
return substrings
259263

0 commit comments

Comments
 (0)