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

Минимальный трубопровод Kedro

Насколько маленьким может быть минимальный конвейер KEDRO, готов к упаковке? Я сделал один в течение 4 файлов, которые вы можете … с меткой Python, Kedro, Datascity.

Насколько маленьким может быть минимальный конвейер KEDRO, готов к упаковке? Я сделал один в 4 файла, которые вы можете установить. Это всего лишь 35 строк Python, 8 в setup.py и 27 в mini_kedro_pipiple.py Отказ

У меня есть все для этого поста, размещенного в этом Gihub Repo Вы можете вилить это, клонировать его или просто следовать.

Установка

pip install git+https://github.com/WaylonWalker/mini-kedro-pipeline

Оговорки

Этот репо представляет собой минимальное количество структуры для создания конвейера Kedro, которые могут быть разделены по всему проектам. Его установочный и падает прямо в ваш крюксс или Run.py модули. Это не прогонзурный трубопровод. В этот момент Я думаю, что конфигурационный загрузчик должен иметь файл конфигурации журнала.

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

Применение

# hooks.py

import mini_kedro_project as mkp

class ProjectHooks:
    @hook_impl
    def register_pipelines(self) -> Dict[str, Pipeline]:
        """Register the project's pipeline.

        Returns:
            A mapping from a pipeline name to a ``Pipeline`` object.

        """

        return {"__default__": Pipeline([]), "mkp": mkp.pipeline}

Реализация

Это опирается на другой пост, который я сделал о создании минимального пакета Python. Я не уверен, что его следует назвать пакетом, это модуль, но что вы называете его после того, как вы построите его и разместите его на Pypi?

Минимальный пакет Python Что нужно для создания установочного пакета Python, которая может быть размещена на Pypi? Что такое минимальный пакет Python Read More Waylonwalker.com

Структура каталогов

.
├── .gitignore
├── README.md
├── setup.py
└── my_pipeline.py

setup.py

Это очень минимальное setup.py Отказ Этого достаточно, чтобы вы начали с пакета, который вы можете поделиться в своей команде. На практике есть немного больше, что вы можете включить в качестве вашего проекта.

from setuptools import setup

setup(
    name="MiniKedroPipeline",
    version="0.1.0",
    py_modules=["mini_kedro_pipeline"],
    install_requires=["kedro"],
)

mini_kedro_pipeline.py

Трубопровод Mini Kedro выглядит как любой набор узлов в вашем проекте. Многие проекты будут отделять узлы и функции, я предпочитаю держать их близко друг к другу. Рекомендация по умолчанию также имеет create_pipelines Функция, которая возвращает трубопровод.

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

"""
An example of a minimal kedro pipeline project
"""
from kedro.pipeline import Pipeline, node

__version__ = "0.1.0"
__author__ = "Waylon S. Walker"

nodes = []


def create_data():
    "creates a dictionary of sample data"
    return {"beans": range(10)}


nodes.append(node(create_data, None, "raw_data", name="create_raw_data"))


def mult_data(data):
    "multiplies each record of each item by 100"
    return {item: [i * 100 for i in data[item]] for item in data}


nodes.append(node(mult_data, "raw_data", "mult_data", name="create_mult_data"))

pipeline = Pipeline(nodes)

Поделитесь своими трубопроводами

Идите и делитесь своими трубопроводами по всему проектам. Дайте мне знать, вы делитесь трубопроводами или каталогами по всему проектам?

Оригинал: “https://dev.to/waylonwalker/minimal-kedro-pipeline-c6g”