Spaces:
Runtime error
Runtime error
from pathlib import Path | |
from typing import Dict | |
def find_and_replace(source: str, replacements: Dict[str, str]) -> str: | |
rtn = source | |
# replace keys in deterministic alphabetical order | |
finds = sorted(replacements.keys()) | |
for find in finds: | |
replace = replacements[find] | |
rtn = rtn.replace(find, replace) | |
return rtn | |
def replace_file(source: Path, replacements: Dict[str, str]) -> None: | |
try: | |
content = source.read_text() | |
except UnicodeDecodeError: | |
# binary file | |
return | |
new_content = find_and_replace(content, replacements) | |
if new_content != content: | |
source.write_text(new_content) | |
def replace_glob(parent: Path, glob: str, replacements: Dict[str, str]) -> None: | |
for file in parent.glob(glob): | |
if not file.is_file(): | |
continue | |
replace_file(file, replacements) | |