MCPcopy Create free account
hub / github.com/OpenBMB/ChatDev / _iter_line_matches

Function _iter_line_matches

functions/function_calling/file.py:1048–1078  ·  view source on GitHub ↗
(
    lines: Sequence[str],
    compiled_regex: Optional[re.Pattern[str]],
    literal_lower: str,
    original_pattern: str,
    case_sensitive: bool,
    use_regex: bool,
)

Source from the content-addressed store, hash-verified

1046
1047
1048def _iter_line_matches(
1049 lines: Sequence[str],
1050 compiled_regex: Optional[re.Pattern[str]],
1051 literal_lower: str,
1052 original_pattern: str,
1053 case_sensitive: bool,
1054 use_regex: bool,
1055) -> Iterable[Dict[str, Any]]:
1056 for idx, raw_line in enumerate(lines):
1057 line_number = idx + 1
1058 line_text = raw_line
1059 if use_regex and compiled_regex is not None:
1060 for match in compiled_regex.finditer(line_text):
1061 yield {
1062 "line_number": line_number,
1063 "column": match.start() + 1,
1064 "line_text": line_text,
1065 }
1066 else:
1067 if not original_pattern:
1068 continue
1069 haystack = line_text if case_sensitive else line_text.lower()
1070 needle = original_pattern if case_sensitive else literal_lower
1071 start = haystack.find(needle)
1072 while start != -1:
1073 yield {
1074 "line_number": line_number,
1075 "column": start + 1,
1076 "line_text": line_text,
1077 }
1078 start = haystack.find(needle, start + max(len(needle), 1))
1079
1080
1081def _slice_context(

Callers 1

search_in_filesFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected