Yaml объединяется в Python

Поэтому я собираюсь с идеей заставить себя (и любого, кто хочет использовать его, конечно) небольшую библиотеку шаблонов в Python для Pygame. Я бы хотел, чтобы система, в которой параметры приложения были снабжены файлом yaml.

Поэтому я думал, что было бы полезно, если бы библиотека предоставила дерево yaml по умолчанию и объединила его с предоставленным пользователем. Для удобства использования я задаюсь вопросом, возможно ли, есть ли там люди, которые могут учить рутину, где:

В любом случае в дереве, в котором пользователь, предоставивший yaml, перекрывает значение по умолчанию, пользовательские ветки заменяют предоставленные библиотеки.

В любом случае, когда пользователь, предоставленный yaml, не перекрывает дерево по умолчанию, дерево по умолчанию сохраняется.

Будут добавлены любые сверхъестественные ветви в дереве, предоставленные пользователем yaml.

Я знаю, что это объяснение было многословным, поскольку, вероятно, я понимаю, о чем я прошу. Интересно, можно ли немного получить бесплатно.

One Solution collect form web for “Yaml объединяется в Python”

Вы можете использовать PyYAML для разбора файлов, а затем следующую функцию для объединения двух деревьев:

def merge(user, default): if isinstance(user,dict) and isinstance(default,dict): for k,v in default.iteritems(): if k not in user: user[k] = v else: user[k] = merge(user[k],v) return user 

При желании вы можете сделать глубокую копию дерева пользователя перед вызовом этой функции.

  • Python YAML: управление форматом вывода
  • Возможно ли сохранить структуру блока YAML при сбрасывании анализируемого документа?
  • Разбор файла YAML в Python и доступ к данным?
  • Почему PyYAML использует генераторы для создания объектов?
  • Может ли PyYAML сбрасывать элементы в не алфавитном порядке?
  • Чтение YAML в python
  • Почему фатальная ошибка: файл yaml.h не найден при установке PyYAML?
  • pyyaml: демпинг без тегов
  •  
    Interesting Posts for Van-Lav

    Flask и SqlAlchemy, как удалить записи из таблицы ManyToMany?

    Редактор тегов MP3 ID3 Python

    Использовать выражение дважды в одной строке – как условие AND для форматирования строк?

    Создание pandas DataFrame из столбцов других DataFrames с похожими индексами

    Код продукта выглядит как abcd2343, что разделить на буквы и цифры

    заменить строки в кадре данных pandas

    python: процесс завершен с кодом выхода 1 при использовании PyCharm и PyQt5

    Поиск суперструн в наборе строк в python

    Python: как запустить полный процесс, а не дочерний процесс и получить PID

    Django: отключенный Dropdown не отправляет информацию обратно в POST

    Что означают три знака стрелки («>>>») в питоне?

    Есть ли способ использовать утверждения модульного теста Python вне TestCase?

    Как получить * изменить * время файла в Windows?

    Flask-SQLAlchemy объединяются в 3 модели и конструкцию таблицы

    Как проверить, является ли str (переменная) пустым или нет?

    Python - лучший язык программирования в мире.