Рубрики
Без рубрики

Что нового в Kedro 0.16.4

Если мы посмотрим на заметки о выпуске, я увидим одно важное улучшение функций в списке, … с меткой Python, Kedro.

Если мы посмотрим на Примечания выпуска Я вижу один майор Улучшение функции в списке, автоматическое открытие крючков.

## Major features and improvements

* Enabled auto-discovery of hooks implementations coming from installed plugins.

Это немного удивительно, так как он был просто случайно упомянут в #435

Подумайте, pytest

Как упоминалось в #435 Это модель, которую использует Pytest. Не все плагины автоматически начинают делать вещи прямо из коробки, но требуют аргумента CLI.

простота

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

Реализация

Читая через Документы , они показывают нам, что мы можем автоматически зарегистрироваться наши крючки, добавив kedro.hooks Конечная точка, которая указывает на Синглтон экземпляр нашего крючка.

от документов

setup(
    ...
    entry_points={"kedro.hooks": ["plugin_name = plugin_name.plugin:hooks"]},
)

import logging

from kedro.framework.hooks import hook_impl

class MyHooks:
    @hook_impl
    def after_catalog_created(self, catalog): # pylint: disable=unused-argument
        logging.info("Reached after_catalog_created hook")

hooks = MyHooks()

Осторожно с синглтонами

Авторы крюка остерегаются

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

Пока крючок не хранит данные на экземпляре, у вас будет в порядке. Крюки, как то, что они имеют в примерах, будут в порядке. Как правило, они просто берут некоторую информацию из аргументов жизненного цикла и делают что -то в своем предписанном жизненном цикле.

Многие из крючков, которые я вижу в дикой природе, уже сложнее и требуют, чтобы автор крючков использовал __init__ Метод и хранить данные в экземпляре. Если бы вы сделали это на двух трубопроводах одновременно, это сломалось бы.

Может ли мой крюк быть обнаруженным

Если ваш крюк не включает в себя __init__ Метод, это довольно просто, да, иначе знайте о потенциальных опасностях передачи Синглтона своим пользователям.

Используйте виртуальные среды

Какой бы менеджер виртуальной среды вы ни использовали, это важнее, чем когда -либо, чтобы убедиться, что вы Не Установите плагины в вашу глобальную среду. Как правило, вы всегда должны запускать проекты даже игрушки или тесты в Виртуальный Окружающая среда .

Я использую Conda

conda create -n my-sample-env python=3.8 -y

Общий

Я думаю, что это действительно интересное направление для проекта Крюки все еще очень рано. Реализация хороша, но я предвижу, что мы получаем более функциональность, которая может потребовать от нас полагаться на __init__ Метод немного меньше. Я думаю, что будут некоторые действительно классные крючки, которые могут использовать простоту автоматической открытия.

Я писал короткие фрагменты о том, что мой менталитет врывается в индустрию технологий/данных в моей новостной рассылке, 👉 Проверьте это и давайте запустим разговор.
👀 Смотрите вопрос, отредактируйте этот пост на GitHub

Оригинал: “https://dev.to/waylonwalker/what-s-new-in-kedro-0-16-4-5g75”