Не уверен, что KEDRO, начни здесь 👇
🤷♀️. Что такое Kedro (части)
Уокер Уокер · 24-20 · 3 мин прочитан
Find-Kedro
это небольшая библиотека для Усилить свой опыт Kedro . Он просматривает ваши модули, чтобы найти конвейеры, узлы, узлы и итерации Kedro (списки, наборы, кортежи) узлов. Затем он собирает их в словаре трубопроводов, каждый модуль создаст отдельный трубопровод, а __default__
Быть сочетанием всех трубопроводов. Этот формат совместим с KEDRO _create_pipelines
формат.
Кедро
Это фантастический проект, который позволяет супер-быструю прототипирование трубопроводов передачи данных, при этом получая готовые трубопроводы. Find-Kedro
Усиливает этот опыт, добавив ASTEST, как обнаружение узла/трубопровода, устраняя необходимость для пузыми трубопроводов через модули.
При работе над более крупными трубопроводными проектами рекомендуется нарушать ваш проект в разные подмодуль, которые требуют знания построения библиотек Python и знают, как правильно импортировать каждый модуль. Хотя в некоторых случаях это не слишком сложно, в некоторых случаях он может путешествовать даже самых старших инженеров, теряя драгоценную функцию разработки времени для отладки библиотеки.
Find-Kedro
развернут на pypi и может легко быть Пип
установлен.
pip install find-kedro
Рекомендуемое использование Find-Kedro
это реализовать его непосредственно в ваши проекты Run.py
модуль
from kedro.context import KedroContext from find_kedro import find_kedro class ProjectContext(KedroContext): def _get_pipelines(self) -> Pipeline: return find_kedro()
Создание узлов
Find-Kedro
не будет выполнять какие-либо функции. Это просто будет искать переменные, которые соответствуют узор
и определить, если они Kedro.Pipeline. Трубопровод
, Kedro.Pipeline.nodes. Узел
или список Kedro.Pipeline.nodes. Узел
. Если это так, это засмет их в словарь трубопроводов.
Обычно есть Три способы построены трубопроводы с Find-Kedro
; Списки , Одноместные узлы и трубопроводы .
Списки
Любой сопоставленный список шаблонов будет сплющен и собран в трубопровод. Узлы могут быть созданы все сразу в определении списка.
# my-proj/pipelinies/data_engineering/pipeline from kedro.pipeline import node from .nodes import split_data pipeline = [ node( split_data, ["example_iris_data", "params:example_test_data_ratio"], dict( train_x="example_train_x", train_y="example_train_y", test_x="example_test_x", test_y="example_test_y", ), ) ]
Это также удобно много раз, чтобы сохранить определение узла близко к определению функции. Много раз я определяю список в верхней части файла, а затем добавьте к нему, как я иду.
# my-proj/pipelinies/data_engineering/pipeline from kedro.pipeline import node from .nodes import split_data nodes = [] nodes.append( node( split_data, ["example_iris_data", "params:example_test_data_ratio"], dict( train_x="example_train_x", train_y="example_train_y", test_x="example_test_x", test_y="example_test_y", ), ) )
Узлы
Весь шаблон соответствует Kedro.Pipipeline.node. Узел
Объекты будут собираться в трубопровод.
# my-proj/pipelinies/data_engineering/pipeline from kedro.pipeline import node from .nodes import split_data split_node = node( split_data, ["example_iris_data", "params:example_test_data_ratio"], dict( train_x="example_train_x", train_y="example_train_y", test_x="example_test_x", test_y="example_test_y", ), )
Трубопровод
Весь шаблон соответствует Kedro.Pipeline. Трубопровод
Объекты будут собираться в трубопровод.
# my-project/pipelinies/data_engineering/pipeline from kedro.pipeline import node, Pipeline from .nodes import split_data split_node = Pipeline( [ node( split_data, ["example_iris_data", "params:example_test_data_ratio"], dict( train_x="example_train_x", train_y="example_train_y", test_x="example_test_x", test_y="example_test_y", ), ) ] )
Полностью квалифицированный импорт
При использовании полностью квалифицированного импорта от my_proj.pipelines.data_science.nodes Import.node Split_data
вместо относительного импорта от .Nodes Split_data
Вам нужно будет убедиться, что ваш проект установлен в вашем текущем пути, или вы устанавливаете каталог
CLI предоставляет удобный интерфейс для поиска вашего проекта для узлов
Usage: find-kedro [OPTIONS] Options: --file-patterns TEXT glob-style file patterns for Python node module discovery --patterns TEXT prefixes or glob names for Python pipeline, node, or list object discovery -d, --directory DIRECTORY Path to save the static site to --version Prints version and exits -v, --verbose Prints extra information for debugging --help Show this message and exit.
Пример бегал с слегка модифицированным по умолчанию Kedro New
проект.
❯ find-kedro { " __default__": [ "split_data([example_iris_data,params:example_test_data_ratio]) -> [example_test_x,example_test_y,example_train_x,example_train_y]", "train_model([example_train_x,example_train_y,parameters]) -> [example_model]", "predict([example_model,example_test_x]) -> [example_predictions]", "report_accuracy([example_predictions,example_test_y]) -> None" ], "src.default_kedro_159.pipelines.data_engineering.pipeline": [ "split_data([example_iris_data,params:example_test_data_ratio]) -> [example_test_x,example_test_y,example_train_x,example_train_y]" ], "src.default_kedro_159.pipelines.data_science.pipeline": [ "train_model([example_train_x,example_train_y,parameters]) -> [example_model]", "predict([example_model,example_test_x]) -> [example_predictions]", "report_accuracy([example_predictions,example_test_y]) -> None" ] }
Ты потрясающий для рассмотрения вклада! Взносы приветствуются, пожалуйста, посмотрите [Руководство по предоставлению вклад] ( https://github.com/waylonwalker/find-kedro/blob/master/Contributing.md для получения дополнительной информации. Пожалуйста, будьте положительным членом сообщества и принятия обратной связи
Мы используем СЕМВЕР для версий. Для версий доступны, см. Теги на этом репозитории Отказ
– Waylon Walker – Оригинальный автор
– Заин Патель
Этот проект лицензирован в соответствии с лицензией MIT – см. Файл лицензии.
Оригинал: “https://dev.to/waylonwalker/announcing-find-kedro-5cfd”