Danny
07/16/2020, 7:41 PMis_required=False
input from a solid that is itself skipped (due to it not getting an upstream solid's optional output), then dagster still skips the fan in solid. It seems this is what's happening, still debugging tho. Can anyone confirm? (Note: Other inputs to the fan in solid were supplied so it's not skipping because all inputs were not provided.)def test_multi_dep_optional():
@lambda_solid
def ret_one():
return 1
@solid(output_defs=[OutputDefinition(name='skip', is_required=False)])
def skip(_):
return
yield # pylint: disable=unreachable
@solid(output_defs=[OutputDefinition(name='skip', is_required=False)])
def skip_downstream(_, skip_upstream):
return
yield # pylint: disable=unreachable
@solid
def collect(_, items):
return items
@pipeline
def test_remaining():
collect([ret_one(), skip()])
result = execute_pipeline(test_remaining)
assert result.success
assert result.result_for_solid('collect').output_value() == [1]
@pipeline
def test_all_skip():
collect([skip(), skip(), skip()])
result = execute_pipeline(test_all_skip)
assert result.success
assert result.result_for_solid('collect').skipped
@pipeline
def test_skipped_upstream():
collect([ret_one(), skip_downstream(skip())])
result = execute_pipeline(test_skipped_upstream)
assert result.success
assert result.result_for_solid('collect').output_value() == [1]
alex
07/16/2020, 8:14 PMDanny
07/16/2020, 8:27 PMalex
07/20/2020, 9:04 PMDanny
07/20/2020, 9:05 PM