Проектирование расширяемого конвейера с помощью Python

Контекст:В настоящее время я использую Python для кодирования конвейера обработки -данных для большой системы астрономических изображений. Класс основного конвейера пропускает экспериментальные данные через ряд дискретных «стадий» обработки.

Этапы записываются в отдельные файлы.py, которые составляют пакет. Список доступных этапов создается во время выполнения, поэтому пользователь может выбрать этапы, через которые будут проходить данные. Цель этого подхода — позволить пользователю создавать дополнительные этапы в будущем.

Выпуск:Все параметры конфигурации конвейера и структуры данных (в настоящее время )расположены в классе основного конвейера. Есть ли простой способ получить к ним доступ из этапов, которые импортируются во время выполнения?

Моя текущая лучшая попытка кажется «неправильной» и несколько примитивной, поскольку она использует циклический импорт и переменные класса. Возможно, есть способ для экземпляра конвейера передать ссылку на себя в качестве аргумента каждому из вызываемых им этапов?

Это мой первый раз, когда я кодирую большой проект на Python, и мое отсутствие знаний о дизайне действительно проявляется.

Любая помощь будет принята с благодарностью.

13
задан user553965 25 December 2013 в 04:35
поделиться