Split a string of code into a [code, special area, code, special area, ..., code] list. For example, >>> split_special_areas( >>> "test /* don't modify me */ foo", >>> [r"/\\*[\\s\\S]*?\\*/"]) # (regex matching comments) ["test ", "/* don't modify me */", " foo"]
(
data: str,
area_delimiter: Iterable[str],
)
| 215 | |
| 216 | |
| 217 | def split_special_areas( |
| 218 | data: str, |
| 219 | area_delimiter: Iterable[str], |
| 220 | ): |
| 221 | """ |
| 222 | Split a string of code into a [code, special area, code, special area, ..., code] list. |
| 223 | |
| 224 | For example, |
| 225 | |
| 226 | >>> split_special_areas( |
| 227 | >>> "test /* don't modify me */ foo", |
| 228 | >>> [r"/\\*[\\s\\S]*?\\*/"]) # (regex matching comments) |
| 229 | ["test ", "/* don't modify me */", " foo"] |
| 230 | |
| 231 | "".join(split_special_areas(x, ...)) == x always holds true. |
| 232 | """ |
| 233 | return re.split("({})".format("|".join(area_delimiter)), data, flags=re.MULTILINE) |
| 234 | |
| 235 | |
| 236 | def escape_special_areas( |
no test coverage detected
searching dependent graphs…