Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/mwlib/allnodes.py
diff options
context:
space:
mode:
Diffstat (limited to 'mwlib/allnodes.py')
-rw-r--r--mwlib/allnodes.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/mwlib/allnodes.py b/mwlib/allnodes.py
new file mode 100644
index 0000000..ebd6d3b
--- /dev/null
+++ b/mwlib/allnodes.py
@@ -0,0 +1,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