comparison python/unroll_deps.py @ 682:3fe1024377ca

STUB: python/unroll_deps.py
author Jeff Hammel <k0scist@gmail.com>
date Tue, 13 May 2014 13:02:45 -0700
parents bc1f4762027b
children
comparison
equal deleted inserted replaced
681:bc1f4762027b 682:3fe1024377ca
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2
3 """
4 unroll a set of dependencies
5 """
6
7 import sys
2 8
3 def cycle_check(order, dependencies): 9 def cycle_check(order, dependencies):
4 """ensure no cyclic dependencies""" 10 """ensure no cyclic dependencies"""
5 order_dict = dict([(j, i) for i, j in enumerate(order)]) 11 order_dict = dict([(j, i) for i, j in enumerate(order)])
6 for package, deps in dependencies.items(): 12 for package, deps in dependencies.items():
53 59
54 cycle_check(order, dependencies) # sanity 60 cycle_check(order, dependencies) # sanity
55 61
56 return order 62 return order
57 63
58 if __name__ == '__main__': 64
65 ### testing and CLI
66
67 def main(args=sys.argv[:1]):
59 68
60 # testing set of dependencies 69 # testing set of dependencies
61 deps = {'packageA': set(['packageB', 'packageC', 'packageF']), 70 deps = {'packageA': set(['packageB', 'packageC', 'packageF']),
62 'packageB': set(['packageC', 'packageD', 'packageE', 'packageG']), 71 'packageB': set(['packageC', 'packageD', 'packageE', 'packageG']),
63 'packageC': set(['packageE']), 72 'packageC': set(['packageE']),
75 try: 84 try:
76 unroll_dependencies(deps) 85 unroll_dependencies(deps)
77 raise Exception("Missed a cyclic dependency!") 86 raise Exception("Missed a cyclic dependency!")
78 except AssertionError: 87 except AssertionError:
79 pass 88 pass
80 89
81 try: 90 try:
82 unroll_dependencies2(deps) 91 unroll_dependencies2(deps)
83 raise Exception("Missed a cyclic dependency!") 92 raise Exception("Missed a cyclic dependency!")
84 except AssertionError: 93 except AssertionError:
85 pass 94 pass
95
96 if __name__ == '__main__':
97 main()