Учитывая, что YAML-парсер ruamel - один из немногих, если не единственный, YAML-парсер, сохраняющий комментарии, я пытаюсь использовать его для создания предварительной обработки для сохранения комментариев в паре значений ключа резервного копирования, чтобы они может быть повторно введен позже ...
# Comment a
a:
# Comment b
b:
c: 1
# Comment d
d: 3
a: "# Comment a"
a.b: "# Comment b"
a.b.d: "#Comment d
Так что после преобразований мы можем повторно ввести комментарии. Я близко подошел к ruaml, но внутреннее дерево синтаксического анализатора, похоже, имеет комментарии к предыдущему ключу:
root:
child_a:
child_b:
# COMMENT A
key_A: Some text
# COMMENT B
key_B: some other text
# COMMENT C
key_C: yet_another text
data['root']['child_a']['child_b'].ca.items
{
'key_A': [None, None, CommentToken('\n # COMMENT B\n', ...), None],
'key_B': [None, None, CommentToken('\n # COMMENT C\n', ...), None],
'key_C': ...
}
Как видите, Comment B
находится в ключе key_A
. Мне было интересно, есть ли способ получить индексирование таким, что Comment A
в key_A
и так далее ...