Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/mwlib/allnodes.py
blob: ebd6d3b95e890d89cb94edf8bd0e9f7e2fb3c6a2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import mwlib.parser
import mwlib.advtree

import types

def allnodes():
    all = set()
    names = set()
    for m in (mwlib.parser, mwlib.advtree):
        for x in dir(m):
            if x in names:
                continue
            k = getattr(m, x)
            if type(k) == types.TypeType:
                if issubclass(k, mwlib.parser.Node):
                    all.add(k)
                    names.add(x)
    return all
                

if __name__ == '__main__':
    # EXAMPLE THAT SHOWS HOW TO IDENTIFY MISSING NODES
    from mwlib.parser import Control, Chapter
    my = set((Control, Chapter))
    missing = allnodes() - my
    assert len(missing) == len(allnodes()) -2 
    #print missing