Контекст: В настоящее время я использую Python для кода для сокращения данных для большой астрономической системы визуализации. Основной класс трубопроводов передает экспериментальные данные через несколько ступеней дискретной обработки.
Этапы записываются в отдельные файлы .py, которые составляют пакет. Список доступных этапов генерируется во время выполнения, поэтому пользователь может выбирать, на каких этапах запускать данные. Цель этого подхода - дать пользователю возможность создавать дополнительные этапы в будущем.
Проблема: Все параметры конфигурации и структуры данных конвейера (в настоящее время) расположены в пределах основного класса конвейера. Есть ли простой способ получить доступ к ним из тех этапов, которые импортируются во время выполнения?
Моя текущая лучшая попытка кажется "неправильной" и несколько примитивной, поскольку она использует циклический импорт и переменные класса. Возможно ли, чтобы экземпляр конвейера передал ссылку на себя в качестве аргумента для каждого из этапов, которые он вызывает?
Это мой первый раз, когда я кодировал большой проект python, и мои недостатки в дизайне действительно демонстрируются.
Любая помощь будет принята с благодарностью.