-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Closed
Description
Environment
- KFP version:
2.13.0
- KFP SDK version:
2.13.0
- All dependencies version:
kfp 2.13.0
kfp-pipeline-spec 0.7.0
kfp-server-api 2.4.0
Steps to reproduce
- Run the following script:
from kfp import compiler
from kfp import dsl
@dsl.component
def hello(level1_whole: str, level1_partial: str, level2: dict):
print(level1_whole, level1_partial, level2)
@dsl.pipeline(name="hello-pipeline")
def my_pipeline(greeting: str):
hello(
level1_whole=greeting,
level1_partial=f"greeting={greeting}",
level2={
"level2_whole": greeting,
"level2_partial": f"greeting={greeting}",
})
if __name__ == '__main__':
package_path = __file__ + ".yaml"
compiler.Compiler().compile(my_pipeline, package_path)
- Opening the compiled Yaml file, you will see
level1_whole
,level1_partial
andlevel2_whole
are correctly replaced butlevel2_partial
is not:
inputs:
parameters:
level1_partial:
runtimeValue:
constant: greeting={{$.inputs.parameters['pipelinechannel--greeting']}}
level1_whole:
componentInputParameter: greeting
level2:
runtimeValue:
constant:
level2_partial: greeting={{channel:task=;name=greeting;type=String;}}
level2_whole: '{{$.inputs.parameters[''pipelinechannel--greeting'']}}'
pipelinechannel--greeting:
componentInputParameter: greeting
Expected result
level2_partial
is also correctly replaced.
Materials and Reference
Seems the bug relates to #10883
Impacted by this bug? Give it a 👍.
HumairAK and sanchesoon