Hugo Evers
11/13/2023, 3:52 PMAppPipeline objects work with find_pipelines?
my AppPipeline is found by find_pipelines, but then when in the apps route i do:
kedro_boot_session.run(
name="web_api",
…)
the view cannot be found. only when i do kedro boot --app … --pipeline web_api, my AppPipeline is included in the kedro_boot_session._pipeline.viewsTakieddine Kadiri
11/13/2023, 5:58 PMfind_pipeline return a dict with multiple pipelines including the web_api pipeline.
When you run your app with __default__ it will not include your web_api pipeline, and subsequently not including your web_api pipeline view.
Kedro boot use the native kedro run behavior regarding pipeline selection and filtering through CLI. The only pipeline that is exposed to your fastapi app, is the currently selected pipeline from your kedro boot command (__default__ pipeline by default).
If you want to expose multiple pipeline views to your apps, you can append multiple app_pipeline and register them in a single entry (__default__ for example)Hugo Evers
11/15/2023, 12:00 PMregister_pipelines function includes:
pipelines["__default__"] = sum(pipelines.values())
So shouldnt the AppPipeline be included in the view? Or does kedro-boot only allow one to expose the pipeline if the entire pipeline is of type AppPipeline?
I dove quite deep into the code through debugging, but did not get to the part where the pipelines where added the views.
Anyway, would that not be desired behaviour?
Or should it not at least be documented, that if you dont add your AppPipeline as the default, you have to pass the --pipeline flag?Takieddine Kadiri
11/15/2023, 12:52 PMsum(pipelines.values()) likely sumed a Pipeline with an AppPipeline which return a Regular Pipeline as default this is why you dont find your web_api view.
A regular Pipeline is also exposed to the app and can be selected with kedro_booot_session.run(name=´__default__’) or by not giving a name kedro_booot_session.run(). This can be useful for quickly triggering the selected Pipeline without declaring an AppPipeline , but it will not expose the inputs, parameters and artifacts. Only template params that can be used with a regular Pipeline
It is true that we need to document this behaviors in a proper documentation site. Your feedbacks will help us to guide the upcoming documentation and features.