HomeElementl

correctly process configs of io managers on solids inside composite

Description

correctly process configs of io managers on solids inside composite

Summary:
depends on D8272 (which bans io managers on composite solids)

this diff makes sure solids inside composite can use their own custom io managers and the configs are processed correctly.

for example https://github.com/dagster-io/dagster/issues/3656
the code will be:

@root_input_manager(input_config_schema={"test": str})
def my_root(context):
    return context.config["test"]

@solid(input_defs=[InputDefinition("data", dagster_type=str, root_manager_key="my_root")])
def inner_solid(_, data):
    return data

@composite_solid
def my_composite():
    return inner_solid()

and the correct run config would be:

solids:
  my_composite:
    solids:
      inner_solid:
        inputs:
	  data:
            test: hello # instead of composite:inputs, we get the input config from inner solid

this should also address https://github.com/dagster-io/dagster/issues/4130 where we will only respect the io managers set on inner solids

Test Plan: units

Reviewers: sandyryza, alangenfeld, cdecarolis

Reviewed By: alangenfeld

Differential Revision: https://dagster.phacility.com/D8365

Details

Provenance
yuhanAuthored on Jun 18 2021, 10:41 PM
Reviewer
alangenfeld
Differential Revision
D8365: correctly process configs of io managers on solids inside composite
Parents
R1:5fcfd7bdce3b: Pin dagster-XXX libraries to the same version as dagster
Branches
Unknown
Tags
Unknown