From: Sapan Bhatia Date: Tue, 3 Sep 2013 15:45:15 +0000 (-0400) Subject: Dependency generator X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=d742545ddd43b43d7947fc8cf9ddfe7d9b2d2d5b;p=plstackapi.git Dependency generator --- diff --git a/planetstack/dmdot b/planetstack/dmdot new file mode 100755 index 0000000..2d95e9d --- /dev/null +++ b/planetstack/dmdot @@ -0,0 +1,49 @@ +#!/usr/bin/python + +import os +import pdb +import sys +import json + +sys.path.append('.') + +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "planetstack.settings") + +from django.db.models.fields.related import ForeignKey +from core.models import * + +try: + output = sys.args[1] +except: + output = '-json' + +g = globals() +model_classes = [] +class_names = [] +for c in g.values(): + if type(c)==type(PlCoreBase): + model_classes.append(c) + class_names.append(c.__name__) + + +if (output=='-dot'): + print "digraph plstack {"; + for c in model_classes: + fields = c._meta.fields + for f in fields: + if type(f)==ForeignKey and f.name.title() in class_names: + print '\t"%s"->"%s";'%(c.__name__,f.name.title()) + print "}\n"; +elif (output=='-json'): + d = {} + for c in model_classes: + fields = c._meta.fields + for f in fields: + if type(f)==ForeignKey and f.name.title() in class_names: + try: + d[c.__name__].append(f.name.title()) + except KeyError: + d[c.__name__]=[f.name.title()] + print json.dumps(d,indent=4) + +