File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -92,7 +92,9 @@ def prepare(self):
9292 therefore no more nodes can be added using "add".
9393 """
9494 if self ._ready_nodes is not None :
95- raise ValueError ("cannot prepare() more than once" )
95+ if self ._npassedout > 0 :
96+ raise ValueError ("cannot prepare() after starting sort" )
97+ return
9698
9799 self ._ready_nodes = [
98100 i .node for i in self ._node2info .values () if i .npredecessors == 0
Original file line number Diff line number Diff line change @@ -140,7 +140,13 @@ def test_calls_before_prepare(self):
140140 def test_prepare_multiple_times (self ):
141141 ts = graphlib .TopologicalSorter ()
142142 ts .prepare ()
143- with self .assertRaisesRegex (ValueError , r"cannot prepare\(\) more than once" ):
143+ ts .prepare ()
144+
145+ def test_prepare_after_pass_out (self ):
146+ ts = graphlib .TopologicalSorter ({'a' : 'bc' })
147+ ts .prepare ()
148+ self .assertEqual (set (ts .get_ready ()), {'b' , 'c' })
149+ with self .assertRaisesRegex (ValueError , r"cannot prepare\(\) after starting sort" ):
144150 ts .prepare ()
145151
146152 def test_invalid_nodes_in_done (self ):
You can’t perform that action at this time.
0 commit comments