Создание реестра комментариев YAML по ключу yaml - PullRequest
0 голосов
/ 10 января 2020

Учитывая, что 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 и так далее ...

...