def _asset_key_and_partitions_for_output( output_context: OutputContext, output_def: OutputDefinition, output_manager: IOManager, ) -> Tuple[Optional[AssetKey], Set[str]]: manager_asset_key = output_manager.get_output_asset_key(output_context) if output_def.is_asset: if manager_asset_key is not None: solid_def = cast(SolidDefinition, output_context.solid_def) raise DagsterInvariantViolationError( f'Both the OutputDefinition and the IOManager of output "{output_def.name}" on ' f'solid "{solid_def.name}" associate it with an asset. Either remove ' "the asset_key parameter on the OutputDefinition or use an IOManager that does not " "specify an AssetKey in its get_output_asset_key() function.") return ( output_def.get_asset_key(output_context), output_def.get_asset_partitions(output_context) or set(), ) elif manager_asset_key: return manager_asset_key, output_manager.get_output_asset_partitions( output_context) return None, set()
def _create_value_solid(input_name, input_value): @solid(name=input_name, output_defs=[ OutputDefinition(io_manager_key=EPHEMERAL_IO_MANAGER_KEY) ]) def input_solid(_): return input_value return input_solid