Noah Trueblood
05/06/2020, 5:49 PMimport dill
from dagster import (
InputDefinition,
OutputDefinition,
execute_solid,
lambda_solid,
SerializationStrategy,
usable_as_dagster_type,
List,
)
dilled = False
class DillSerializationStrategy(SerializationStrategy):
"""Dill it."""
def __init__(self, name='dill'):
super(DillSerializationStrategy, self).__init__(name)
def serialize(self, value, write_file_obj):
global dilled
dilled = True
dill.dump(value, write_file_obj)
def deserialize(self, read_file_obj):
return dill.load(read_file_obj)
@usable_as_dagster_type(
serialization_strategy=DillSerializationStrategy(),
)
class SomeDagsterType:
def __init__(self):
x = 1
def test_serialization():
@lambda_solid(
name='ingest',
input_defs=[
InputDefinition(name='a', dagster_type=List[SomeDagsterType])
],
output_def=OutputDefinition(name='result', dagster_type=List[SomeDagsterType]),
)
def ingest(a):
return a
result = execute_solid(
solid_def=ingest,
input_values={ 'a': [SomeDagsterType()] },
environment_dict={
'storage': {
'filesystem': {},
},
},
)
v = result.output_value()
assert dilled
max
05/06/2020, 5:59 PMmax
05/06/2020, 5:59 PMNoah Trueblood
05/06/2020, 6:03 PMmax
05/06/2020, 6:05 PMNoah Trueblood
05/06/2020, 6:22 PMNoah Trueblood
05/06/2020, 6:23 PM