diff --git a/repos/5048738/recursively_add.py b/repos/5048738/recursively_add.py new file mode 100644 index 0000000..fd4a593 --- /dev/null +++ b/repos/5048738/recursively_add.py @@ -0,0 +1,28 @@ +def recursive_add(src, store, dpth=0, key = ''): + """ Recursively adds nested elements.""" + tabs = lambda n: ' ' * n * 4 # or 2 or 8 or... + brace = lambda s, n: '%s%s%s' % ('['*n, s, ']'*n) + + if isinstance(src, dict): + for key, value in src.iteritems(): + thisorg=Org(key,store=store) + thisorg.reload_repos() + thisorg.reload_members() + print "Adding org: %s"%thisorg + store.add_org(thisorg) + print tabs(dpth) + brace(key, dpth) + recursive_add(value, store, dpth + 1, key) + elif isinstance(src, list): + for litem in src: + recursive_add(litem, store, dpth + 2) + else: + print "SRC is not dict nor list: '%s'" % src + if key: + print tabs(dpth) + '%s = %s' % (key, src) + else: + print tabs(dpth) + '- %s' % src + thisorg=Org(src,store=store) + thisorg.reload_repos() + thisorg.reload_members() + print "Adding org: %s"%thisorg + store.add_org(thisorg)