Skip to content

Conversation

@Fredcapit
Copy link
Contributor

Предлагаю рассмотреть новый подход к организации пайплайнов.
Я добавил такие возможности:

  1. Автоматический импорт пайплайнов ( новый пайплайн достаточно создать в папке pipelines проекта унаследовав от класса Pipeline)
  2. Автоматический импорт из установленных плагинов (плагин должен начинаться с префикса 'hypex_pipeline_'
  3. Создание нового класса пайплайна и регистрация
    Стоит отметить, что Имя класса пайплайна написанное в PascaleCase преобразуется в имя метода при добавлении в класс Hypex snake_case (например, класс AATest преобразуется в aa_test)
    Также docstring класса реализованного пайплайна будет передан в docstring метода, который будет прикручен к классу Hypex.

Для оптимального использования ресурсов, загружаются не все пайплайны, а только те, что указаны в файле init.py в корте директории pipeline проекта. Для использования необходимых пайплайнов, можно импортировать из явно (from hypex.pipelines.aa_test import AATest, после чего в экземпляре объекта Hypex будет доступен метод aa_test)

Реализована изоляция контекстов общего и пайплайнов. Также добавлена "изоляция" пайплайнов друг от друга, для того, чтобы можно было вызывать внутри пайплайна другой пайпалйн. Реализация с помощью стека контекстов пайплайнов.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants