Как запустить функции из класса в файле node.py? - PullRequest
0 голосов
/ 08 ноября 2019

Я хочу организовать функции узлов по классам в файле node.py. Например, функции, связанные с очисткой данных, находятся в классе «CleanData» с декоратором @staticmethod, в то время как другие функции останутся в классе «Other» без какого-либо декоратора (имена этих классов являются просто репрезентативными). В файле конвейера я попытался импортировать имена классов, имена узлов и следующий путь: CleanData.function1 (который дал ошибку), и ни один из них не работал. Как я могу вызвать узлы из классов, если это возможно, пожалуйста?

1 Ответ

1 голос
/ 08 ноября 2019

Я не совсем уверен, какую ошибку вы получаете. Если вы буквально пытаетесь сделать from .nodes import CleanData.function1, это не сработает. Импорт не работает так в Python. Если вы сделаете что-то вроде этого:

nodes.py имеет:

class CleanData:
    def clean(arg1):
        pass

и pipeline.py имеет:

from kedro.pipeline import Pipeline, node
from .nodes import CleanData

def create_pipeline(**kwargs):
    return Pipeline(
        [
            node(
                CleanData.clean,
                "example_iris_data",
                None,
            )
        ]
    )

, которое должно работать.

...