Как составить список созданных пользователем файлов Python, от которых зависит модуль? - PullRequest
1 голос
/ 08 мая 2019

Я заинтересован в использовании doit для автоматизации процесса сборки пакета python. Если возможно, я бы хотел, чтобы doit повторно выполнил задачу, если какой-либо из созданных пользователем исходных файлов, от которых он зависит, изменился. Насколько я понимаю, лучший способ сделать это - использовать клавишу file_dep и список зависимых исходных файлов, однако у меня возникли большие проблемы при создании этого списка.

Я пытался использовать sys.modules и inspect.getmembers(), но эти решения не могут работать с операторами импорта, которые не импортируют модуль, например from x import Y, что, к сожалению, является обычным явлением в пакете, которым я являюсь разработки.

Другой путь, который я исследовал, - это использование инструмента snakefood, который изначально выглядит так, как будто бы он делал именно то, что мне нужно, генерирует список файловых зависимостей для каждого файла в данном пути. К сожалению, этот инструмент, похоже, имеет ограниченную поддержку Python 3, что делает его бесполезным для моего пакета.

Кто-нибудь знает, как получить snakefood -подобные функции в Python 3, или это единственный вариант изменить весь мой исходный код только на импорт модулей?

1 Ответ

0 голосов
/ 10 мая 2019

doit само руководство о создании графика импорта модулей python!

Используется пакет import_deps , похож на snakefood .

Обратите внимание, что для вашего случая использования вам нужно будет изменить file_dep во время выполнения действия Задачи. Для этого вам нужно передать параметр task в ваше действие (как описано здесь ).

...