MCPcopy Create free account
hub / github.com/FastLED/FastLED / _MultiPathSubstitutionFormatter

Class _MultiPathSubstitutionFormatter

ci/util/output_formatter.py:142–170  ·  view source on GitHub ↗

Formatter that applies multiple path replacements and prefixes timestamps.

Source from the content-addressed store, hash-verified

140
141
142class _MultiPathSubstitutionFormatter:
143 """Formatter that applies multiple path replacements and prefixes timestamps."""
144
145 def __init__(self, substitutions: list[tuple[str, str, str]]) -> None:
146 """Initialize with list of (needle, regex_pattern, replacement) tuples."""
147 self._substitutions: list[tuple[str, str, re.Pattern[str]]] = []
148 for needle, regex_pattern, replacement in substitutions:
149 compiled_pattern = re.compile(regex_pattern)
150 self._substitutions.append((needle, replacement, compiled_pattern))
151
152 def begin(self) -> None:
153 pass # No per-instance setup needed, use global elapsed
154
155 def transform(self, line: str) -> str:
156 if not line:
157 return line
158 formatted: str = self._format_paths(line)
159 elapsed: float = get_elapsed()
160 return f"{elapsed:.2f} {formatted}"
161
162 def end(self) -> None:
163 return None
164
165 def _format_paths(self, line: str) -> str:
166 result = line
167 for needle, replacement, compiled_pattern in self._substitutions:
168 if needle in result and compiled_pattern.search(result):
169 result = compiled_pattern.sub(replacement, result)
170 return result
171
172
173def create_filtering_echo_callback() -> Callable[[str], None]:

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected