Установка не строковой переменной с помощью PyYaml - PullRequest
0 голосов
/ 10 января 2020

Я использую систему 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") ), но я не уверен, возможно ли это с использованием этого синтаксиса.

...