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)