#python-3.x #yaml
#python-3.x #yaml
Вопрос:
Какой хороший способ проверить файлы yaml?
Любой скрипт / модуль Python для проверки файлов yaml?
Допустимо
pipelines:
- name: some_name
Изменения цвета в pycharm
pipelines:
- name:check
Изменения цвета в pycharm
pipelines:
-name: check
Для всех вышеперечисленных 3 случаев мы можем видеть изменение цвета параметров.
Можем ли мы обработать эти сценарии и любые другие расширенные проверки файла yaml (или любой стандартной схемы)?
Ответ №1:
Все три примера являются допустимыми YAML. Они просто представляют разные данные. Что вы, вероятно, хотите сделать, так это проверить фактическую структуру в соответствии с вашими ожиданиями. Поскольку не существует стандартного способа определения структуры документа YAML (например, схемы JSON для JSON), не существует стандартного способа его проверки.
При этом вы можете использовать typing
пакет Python для определения желаемой структуры, а затем пакет typeguard для проверки загруженной структуры на соответствие ей:
from typing import TypedDict, List
from typeguard import check_type
import yaml
class PipelineItem(TypedDict):
name: str
class MyYamlSchema(TypedDict):
pipelines: List[PipelineItem]
file = """
pipelines:
- name: some_name
"""
data = yaml.safe_load(file)
check_type("data", data, MyYamlSchema)
Это вызовет исключение для второго и третьего случаев.
Для этого решения требуется Python 3.8.