예제 #1
0
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')
예제 #2
0
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')
예제 #3
0
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)