# GetUniqueValues.py ''' This macro shows a list of unique definition values from pages a) whose names match the given regular expression and b) who contain a definition with a certain heading Usage: [[GetUniqueValues(PageRE,DefinitionTermRE)]] Examples: [[GetUniqueVals(.*Service,Host)]] might output the following: Host SomeHost AnotherHost TestSystem TODO: History: 1.0 First version, adapted from GetVals.py - MarkusMaier 1.1 Outputs key/values as a definition list - MarkusMaier ''' Dependencies = [1] import re, sets from MoinMoin.wikidicts import Dict def execute(macro,args): page_re, key_re = args.split(",") isdict = re.compile(page_re, re.UNICODE).search iskey = re.compile(key_re, re.UNICODE).search keys = {} dictpages = macro.request.rootpage.getPageList(user='', filter=isdict) for pagename in dictpages: dict = Dict(macro.request, pagename) for key in dict.keys(): k = key.strip() if iskey(k): if keys.has_key(k): keys[k] = keys[k] + [dict.get(key,"")] else: keys[k] = [dict.get(key,"")] result = "