#from itertools import groupby #from os.path import commonprefix Full Index #set $prefix = commonprefix(map (lambda o: o.name, $spec.interfaces)) #set lprefix = len ($prefix) #set $star = [] #for $item in $spec.everything.values() + $spec.errors.values() + $spec.generic_types #if $item.__class__.__name__ == 'Interface' #set $name = $item.name[lprefix:] #else #set $name = $item.short_name #end if #echo $star.append(($name, $item)) #slurp #end for #echo $star.sort(key = lambda t: t[0].title()) #slurp ## one use iterators... #set $groups = [ (l, list(g)) for l, g in (groupby($star, key = lambda t: t[0][0].upper())) ] #set $letters = set(map(lambda t: t[0], groups))

Full Index

Interface Index (Compact) #for $a in map(chr, xrange(ord('A'), ord('Z')+1)) #if $a in $letters | $a #else | $a #end if #end for
#for l, g in $groups #for $n in $g #if $n[1].deprecated #else #end if #end for #end for
$l
$n[0] #if $n[1].deprecated: (deprecated) $n[1].get_type_name() #if $n[1].parent != $spec: $n[1].parent.name