All pastes #437354 Raw Edit

Anonymous

public text v1 · immutable
·published 2007-04-13 00:11 UTC
rendered paste body
Index: EIM.txt
===================================================================
--- EIM.txt     (revision 13948)
+++ EIM.txt     (working copy)
@@ -1281,3 +1281,28 @@
     RecordSet(set([]), set([]))
 
 
+sort_records(records) will return records such that depenencies occur first::
+
+    >>> class DemoA(sharing.Record):
+    ...     URI = 'cid:eim.test.demoA-record@osaf.us'
+    ...     uuid  = sharing.key(int)
+
+    >>> class DemoB(sharing.Record):
+    ...     URI = 'cid:eim.test.demoB-record@osaf.us'
+    ...     uuid  = sharing.key(DemoA.uuid)
+
+    >>> class DemoC(sharing.Record):
+    ...     URI = 'cid:eim.test.demoC-record@osaf.us'
+    ...     uuid  = sharing.key(DemoB.uuid)
+
+    >>> class DemoD(sharing.Record):
+    ...     URI = 'cid:eim.test.demoD-record@osaf.us'
+    ...     uuid  = sharing.key(DemoC.uuid)
+
+    >>> rA = DemoA(1)
+    >>> rB = DemoB(1)
+    >>> rC = DemoC(1)
+    >>> rD = DemoD(1)
+
+    >>> list(sort_records( [rB, rD, rA, rC] ))
+    (rA, rB, rC, rD)