#from itertools import groupby
#set $star = [] #for $item in $spec.everything.values() + $spec.errors.values() + $spec.types.values() #echo $star.append(($item.short_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
$l
#for $n in $g #if $n[1].is_deprecated
#else
#end if $n[0] #if $n[1].is_deprecated: (deprecated) | $n[1].get_type_name() | #if $n[1].parent.__class__.__name__ == 'Interface': $n[1].parent.name
#end for #end for