Для Mac (High Sierra) установите virtualenv в python3 и создайте virtualenv для python2:
$ python3 -m virtualenv --python=python2 vp27
$ source vp27/bin/activate
(vp27)$ python --version
Python 2.7.14
Изменение порядка в PyYAML препятствует редактированию в оба конца в файлах YAML, и ряд других анализаторов пытались это исправить.
Стоит обратить внимание на Ruamel.yaml , который говорит на своей обзорной странице :
block style and key ordering are kept, so you can diff the round-tripped source
Пример кода, предоставленный автором, демонстрирует это: [ 117]
import sys
import ruamel.yaml as yaml
yaml_str = """\
3: abc
conf:
10: def
3: gij # h is missing
more:
- what
- else
"""
data = yaml.load(yaml_str, Loader=yaml.RoundTripLoader)
data['conf'][10] = 'klm'
data['conf'][3] = 'jig'
yaml.dump(data, sys.stdout, Dumper=yaml.RoundTripDumper)
will give you:
3: abc
conf:
10: klm
3: jig # h is missing
more:
- what
- else
Это более подробно обсуждается здесь . Он описывается как замена для PyYAML, поэтому с ним будет легко экспериментировать в вашей среде.
Используйте default_flow_style=False
Например:
import yaml
job_template = [
{
"job-template": {
"name": "{name}_job",
"description": "job description",
"project-type": "multibranch",
"number-to-keep": 30,
"days-to-keep": 30,
"scm": [
{
"git": {
"url": "{git_url}"
}
}
]
}
}
]
yaml.dump(job_template, open("job_template.yaml", "w"), default_flow_style=False)