Я использую систему mkdocs, которая настроена с использованием файла yaml, проанализированного с помощью PyYml. Я хочу иметь возможность указать переменную среды в ее mkdocs.yml
, что невозможно в экосистеме mkdocs, но обходной путь существует с использованием специального синтаксиса PyYml !!python/object/apply:os.getenv
, который отлично работает для ключей yaml типа string.
Однако, это не работает:
plugins:
- search
- pdf-export:
combined: !!python/object/apply:os.getenv ["PDF_EXPORT_COMBINED"]
Сборка сообщает, что строка не является значением bool:
PS> $Env:PDF_EXPORT_COMBINED='true'
PS> mkdocs build
...
ERROR - Config value: 'plugins'. Error: Plugin value: 'combined'.
Expected type: <class 'bool'> but received: <class 'str'>
Я просмотрел раздел PyYAML Теги YAML и Python типы ^ 1 безрезультатно. Я предполагаю, что форму:
можно использовать, так как мне нужны питоны distutils.util.strtobool( os.getenv("PDF_EXPORT_COMBINED") )
, но я не уверен, возможно ли это с использованием этого синтаксиса.