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.