def make_graph(target_name, generate_dot=False): from assembl.models import Base mappers = [cls.__mapper__ for cls in Base.get_subclasses()] graph = create_uml_graph(mappers, show_operations=False, show_multiplicity_one=False) if generate_dot: graph.write_dot(target_name + '.dot') graph.write_svg(target_name + '.svg')
def make_graph(target_name, generate_dot=False): from assembl.models import Base mappers = [cls.__mapper__ for cls in Base.get_subclasses()] graph = create_uml_graph( mappers, show_operations=False, show_multiplicity_one=False) if generate_dot: graph.write_dot(target_name + '.dot') graph.write_svg(target_name + '.svg')
def ensure_inheritance(): from assembl.models import Base subs = {c:c.mro()[1] for c in Base.get_subclasses()} subof = defaultdict(set) for sub, cls in subs.iteritems(): subof[cls].add(sub) treated = set() def rec_rebuild(cls): if cls in treated: return for sub in subof[cls]: rec_rebuild(sub) ensure_inheritance_of(cls) bases = [cls for cls in subof if getattr(cls, '__mapper_args__', {}).get('polymorphic_on', None) is not None] for cls in bases: rec_rebuild(cls)