Я пишу скрипт Python, который получает параметры из файла JSON, открывает скрипт шаблона, заданный одним из параметров (из набора параметров), и генерирует новый скрипт Python, заменяя некоторые скрипты шаблона наПараметры приведены в JSON.
В настоящее время я пытаюсь перечислить все переменные из шаблона следующим образом:
list = [item for item in dir(imported_script) if not item.startswith("__")]
Так что я могу использовать список для перебора переменных и записи их в новый скрипт.
Проблема: этот результат list
также содержит импортированные модули из упомянутого скрипта импортированного шаблона.Я также пробовал с imported_script.__dict__
и vars(imported_script)
, но эти решения уступают тому же.Существует также опция использования help(imported_script)
, которая возвращает метаданные сценария, но до сих пор я не нашел правильного способа получить то, что было бы эквивалентно help(imported_script).DATA
.
Вопрос: Есть ли более эффективный способ перечисления импортированных переменных сценария, чтобы я получал конкретно объявленные пользователем переменные?
Дополнительные сведения: Я использую Airflow для создания рабочих процессов.Airflow читает скрипт Python, который определяет, как должен быть построен рабочий процесс (известный как DAG в потоке воздуха).Сценарий должен находиться в определенной папке, чтобы поток воздуха мог выполнять рабочий процесс.Спецификации того, как должен создаваться рабочий процесс, приведены в файле json и меняются каждый раз, когда пользователь хочет создать рабочий процесс, поэтому я должен прочитать этот файл json, а затем написать новый скрипт, повторно использующий код из шаблона (по крайней мере, этокак мне сказали, чтобы сделать это).Есть несколько сценариев, из которых я мог бы взять код для повторного использования, и в будущем их может быть даже больше (это динамично).Выбор сценария зависит от одного из параметров в json.