Хочу писать текстовый конфиг с набором правилами типа «если строка — АБВ, то замени В на Г, а если строка — результат предыдущей замены, т. е. АБГ, то верни всё обратно к АБВ». См. пример.
import re
# rule, reverse_rule = read_rule_from_file()
rule = r'^(.*)bar', r'\1baz'
reverse_rule = r'^(.*)baz', r'\1bar'
source = 'qwerty/bar'
result = re.sub(*rule, source)
restored = re.sub(*reverse_rule, result)
print(source, result, restored)
Бесит необходимость прописывать преобразование в обе стороны.
Есть ли что готовое, не обязательно регулярные выражения?