Problem

Browsing through Django's ideas for GSOC 2014, I came across a proposal to reduce coupling and package each component separately. I have often wondered how complex such a task would be as Django claims and encourages loose coupling.

So, I tried to naively separate a module such as django.forms and found that it depends on atleast four other modules to just intialize. Similarly trying out other modules, I found varying complexity in the dependencies most of which were atleast depedent on django.apps for apps and django.conf for settings.

I wanted to figure out how complex the dependencies between various modules are and I started looking at code analysis tools to visualize them. I settled on Snakefood for generating the dependency graph and dagre-d3 for the rendering.