@@ -74,34 +74,37 @@ def message_handler(dump):
7474 with TemporaryDirectory (prefix = "dml-cache-" ) as cache_path :
7575 with Dml .temporary (cache_path = cache_path ) as dml :
7676 d0 = dml .new ("d0" , "d0" , message_handler = message_handler )
77- d0 .n0 = [42 ]
78- self .assertIsInstance (d0 .n0 , Node )
79- self .assertEqual (d0 .n0 .value (), [42 ])
80- self .assertEqual (d0 .n0 .len ().value (), 1 )
81- self .assertEqual (d0 .n0 .type ().value (), "list" )
82- d0 ["x0" ] = d0 .n0
83- self .assertEqual (d0 ["x0" ], d0 .n0 )
84- self .assertEqual (d0 .x0 , d0 .n0 )
77+ self .assertIsInstance (d0 , Dag )
78+ # d0.n0 = [42]
79+ n0 = d0 ._put ([42 ], name = "n0" )
80+ assert isinstance (n0 , Node )
81+ self .assertIsInstance (n0 , Node )
82+ self .assertEqual (n0 .value (), [42 ])
83+ self .assertEqual (n0 .len ().value (), 1 )
84+ self .assertEqual (n0 .type ().value (), "list" )
85+ d0 ["x0" ] = n0
86+ self .assertEqual (d0 ["x0" ], n0 )
87+ self .assertEqual (d0 .x0 , n0 )
8588 d0 .x1 = 42
8689 self .assertEqual (d0 ["x1" ].value (), 42 )
8790 self .assertEqual (d0 .x1 .value (), 42 )
88- d0 .n1 = d0 . n0 [0 ]
89- self .assertIsInstance (d0 . n1 , Node )
90- self .assertEqual ([x .value () for x in d0 . n0 ], [d0 .n1 .value ()])
91+ d0 .n1 = n0 [0 ]
92+ self .assertIsInstance (n0 [ 0 ] , Node )
93+ self .assertEqual ([x .value () for x in n0 ], [d0 .n1 .value ()])
9194 self .assertEqual (d0 .n1 .value (), 42 )
92- d0 .n2 = {"x" : d0 . n0 , "y" : "z" }
93- self .assertNotEqual (d0 .n2 ["x" ], d0 . n0 )
94- self .assertEqual (d0 .n2 ["x" ].value (), d0 . n0 .value ())
95+ d0 .n2 = {"x" : n0 , "y" : "z" }
96+ self .assertNotEqual (d0 .n2 ["x" ], n0 )
97+ self .assertEqual (d0 .n2 ["x" ].value (), n0 .value ())
9598 d0 .n3 = list (d0 .n2 .items ())
9699 self .assertIsInstance ([x for x in d0 .n3 ], list )
97100 self .assertDictEqual (
98101 {k .value (): v .value () for k , v in d0 .n2 .items ()},
99- {"x" : d0 . n0 .value (), "y" : "z" },
102+ {"x" : n0 .value (), "y" : "z" },
100103 )
101104 d0 .n4 = [1 , 2 , 3 , 4 , 5 ]
102105 d0 .n5 = d0 .n4 [1 :]
103106 self .assertListEqual ([x .value () for x in d0 .n5 ], [2 , 3 , 4 , 5 ])
104- d0 .result = result = d0 . n0
107+ d0 .result = result = n0
105108 self .assertIsInstance (local_value , str )
106109 dag = dml ("dag" , "list" )[0 ]
107110 self .assertEqual (dag ["result" ], result .ref .to )
@@ -194,50 +197,14 @@ def test_load(self):
194197 with TemporaryDirectory (prefix = "dml-cache-" ) as cache_path :
195198 with Dml .temporary (cache_path = cache_path ) as dml :
196199 with dml .new ("d0" , "d0" ) as d0 :
197- # only fn dags have an argv attribute, expect AttributeError
198- with self .assertRaises (Error ):
199- d0 .argv # noqa: B018
200- # d0.result hasn't been assigned yet but it can't raise an
201- # AttributeError because we also have __getitem__ implemented
202- # which would then be called, so an AssertionError is raised.
203- with self .assertRaises (AssertionError ):
204- d0 .result # noqa: B018
205200 d0 .n0 = 42
206- self .assertEqual (type (d0 .n0 ), Node )
207- d0 .n1 = 420
208- d0 .result = d0 .n0
201+ d0 .result = "foo"
209202 dl = dml .load ("d0" )
210- self . assertEqual ( type ( dl ) , Dag )
203+ assert isinstance ( dl , Dag )
211204 self .assertEqual (type (dl .n0 ), Node )
212205 self .assertEqual (dl .n0 .value (), 42 )
213206 self .assertEqual (type (dl .result ), Node )
214- self .assertEqual (dl .result .value (), 42 )
215- self .assertEqual (len (dl ), 2 )
216- self .assertEqual (set (dl .keys ()), {"n0" , "n1" })
217- self .assertEqual (set (dl .values ()), {dl .n0 , dl .n1 })
218- for x in dl .values ():
219- self .assertIsInstance (x , Node )
220- with dml .new ("d1" , "d1" ) as d1 :
221- d0 = dml .load ("d0" )
222- self .assertEqual (d0 .result .value (), 42 )
223- self .assertEqual (d0 .n0 .value (), 42 )
224- self .assertEqual (d0 ["n0" ].value (), 42 )
225-
226- self .assertEqual (len (d0 ), 2 )
227- self .assertEqual (set (d0 .keys ()), {"n0" , "n1" })
228- self .assertEqual (set (d0 .values ()), {d0 .n0 , d0 .n1 })
229- # d0 has been committed: its nodes are now imports
230- for x in d0 .values ():
231- self .assertIsInstance (x , Node )
232-
233- d1 .n0 = 42
234- d1 .n1 = 420
235- self .assertEqual (set (d1 .keys ()), {"n0" , "n1" })
236- # d1 has not yet been committed: its nodes are of type Node
237- for x in d1 .values ():
238- self .assertEqual (type (x ), Node )
239-
240- d1 .result = d0 .result
207+ self .assertEqual (dl .result .value (), "foo" )
241208
242209 def test_load_recursing (self ):
243210 nums = [1 , 2 , 3 ]
@@ -263,14 +230,16 @@ def test_caching(self):
263230 with Dml .temporary (cache_path = cache_path ) as dml :
264231 config_dir = dml .config_dir
265232 with dml .new ("d0" , "d0" ) as d1 :
266- d1 .n0 = SUM
267- d1 .n1 = d1 .n0 (* nums )
233+ d1 .sum_fn = SUM
234+ n1 = d1 .sum_fn (* nums , name = "n1" )
235+ assert n1 .value () == sum (nums )
236+ assert isinstance (n1 .load (), Dag )
268237 uid = d1 .n1 .load ().uuid .value ()
269238 with Dml .temporary (cache_path = cache_path ) as dml :
270239 assert dml .config_dir != config_dir , "Config dir should not be the same"
271240 with dml .new ("d1" , "d0" ) as d1 :
272- d1 .n0 = SUM
273- d1 .n1 = d1 .n0 (* nums )
241+ d1 .sum_fn = SUM
242+ d1 .n1 = d1 .sum_fn (* nums )
274243 uid1 = d1 .n1 .load ().uuid .value ()
275244 assert uid == uid1 , "Cached dag should have the same UUID"
276245
0 commit comments