Я строю интерфейс командной строки, используя библиотеку argparse для анализа ввода пользователя.На одном этапе я хотел бы взять пользовательский ввод, такой как "'test', x=False"
, и использовать его в такой функции, как func('test', x=False)
.
Я пытался использовать ast.literal_eval для этого, но он сталкивается ссинтаксическая ошибка в знаке равенства.(Я сделал ast.literal_eval("("+args+")")
, где args
был приведенный выше пример)
Кто-нибудь знает о безопасном способе парсинга ввода пользователя таким образом?Желательно без eval, хотя в худшем случае я мог бы использовать eval, так как это инструмент CLI.
Редактировать (для людей, которые сказали, что используют ввод вручную (): мне нужен инструмент для анализа ввода, когдакоманда запускается (это модуль python, который я хочу, чтобы его можно было вызывать, например python3 -m hmcli.raw --args "'test', x=False"
, где args
может быть гибким, поскольку используемая функция может отличаться.