From d742545ddd43b43d7947fc8cf9ddfe7d9b2d2d5b Mon Sep 17 00:00:00 2001 From: Sapan Bhatia Date: Tue, 3 Sep 2013 11:45:15 -0400 Subject: [PATCH] Dependency generator --- planetstack/dmdot | 49 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100755 planetstack/dmdot 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) + + -- 2.47.0