Another question wrt `kedro-boot`: how is do the `...
# plugins-integrations
h
Another question wrt `kedro-boot`: how is do the
AppPipeline
objects work with
find_pipelines
? my
AppPipeline
is found by find_pipelines, but then when in the apps route i do:
Copy code
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.views
t
Your
find_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)
h
But the default
register_pipelines
function includes:
Copy code
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?
t
Pipeline + AppPipeline + …= Pipeline AppPipeline + Pipeline + … = AppPipeline The
sum(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.