Skip to content

Commit afbb3c0

Browse files
committed
updated get_pattern function
1 parent bae7ffe commit afbb3c0

File tree

1 file changed

+20
-21
lines changed

1 file changed

+20
-21
lines changed

gptcache/processor/pre.py

+20-21
Original file line numberDiff line numberDiff line change
@@ -49,28 +49,27 @@ def last_content_without_prompt(data: Dict[str, Any], **params: Dict[str, Any])
4949

5050

5151
def _get_pattern_value(pattern_str: str, value_str: str):
52-
literal_text_arr = []
53-
field_name_arr = []
54-
for literal_text, field_name, _, _ in string.Formatter().parse(pattern_str):
55-
literal_text_arr.append(literal_text)
56-
if field_name is not None:
57-
field_name_arr.append(
58-
field_name if field_name else str(len(field_name_arr))
59-
)
60-
61-
pattern_values = {}
52+
parts = list(string.Formatter().parse(pattern_str))
53+
field_names = [field_name for _, field_name, _, _ in parts if field_name is not None]
54+
55+
pattern_values = {field: '' for field in field_names} # Initialize all fields with empty strings
56+
6257
last_end = 0
63-
for i, literal_text in enumerate(literal_text_arr):
64-
start = value_str.find(literal_text, last_end)
65-
if i == len(literal_text_arr) - 1:
66-
end = len(value_str)
67-
else:
68-
end = value_str.find(literal_text_arr[i + 1], start + 1)
69-
if start == -1 or end == -1:
70-
break
71-
start += len(literal_text)
72-
pattern_values[field_name_arr[i]] = value_str[start:end]
73-
last_end = end
58+
for i, (literal_text, field_name, _, _) in enumerate(parts):
59+
if literal_text:
60+
start = value_str.find(literal_text, last_end)
61+
if start == -1:
62+
break
63+
if i > 0 and field_names[i-1]:
64+
pattern_values[field_names[i-1]] = value_str[last_end:start].strip()
65+
last_end = start + len(literal_text)
66+
elif i > 0 and field_name: # Handle consecutive fields
67+
pattern_values[field_names[i-1]] = ''
68+
69+
# Handle the last field if it exists
70+
if field_names and last_end < len(value_str):
71+
pattern_values[field_names[-1]] = value_str[last_end:].strip()
72+
7473
return pattern_values
7574

7675

0 commit comments

Comments
 (0)