diff -r 058bb3dc685f -r 0b59724cb3f2 cubicweb/misc/scripts/detect_cycle.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cubicweb/misc/scripts/detect_cycle.py Sat Jan 16 13:48:51 2016 +0100 @@ -0,0 +1,16 @@ +from __future__ import print_function + +try: + rtype, = __args__ +except ValueError: + print('USAGE: cubicweb-ctl shell detect_cycle.py -- ') + print() + +graph = {} +for fromeid, toeid in rql('Any X,Y WHERE X %s Y' % rtype): + graph.setdefault(fromeid, []).append(toeid) + +from logilab.common.graph import get_cycles + +for cycle in get_cycles(graph): + print('cycle', '->'.join(str(n) for n in cycle))