#NEWLINE# def showHierarchy( self ) : #NEWLINE# #INDENT# 'Prints out Framework Hierachy for this framer\n        ' #NEWLINE# console . terse ( '\nFramework Hierarchy for {0}:\n' . format ( self . name ) ) #NEWLINE# names = self . frameNames #NEWLINE# tops = [ x for x in names . itervalues ( ) if ( ( not x . over ) and x . unders ) ] #NEWLINE# console . terse ( 'Tops: {0}\n' . format ( ' ' . join ( [ x . name for x in tops ] ) ) ) #NEWLINE# bottoms = [ x for x in names . itervalues ( ) if ( x . over and ( not x . unders ) ) ] #NEWLINE# console . terse ( 'Bottoms: {0}\n' . format ( ' ' . join ( [ x . name for x in bottoms ] ) ) ) #NEWLINE# loose = [ x for x in names . itervalues ( ) if ( ( not x . over ) and ( not x . unders ) ) ] #NEWLINE# console . terse ( 'Loose: {0}\n' . format ( ' ' . join ( [ x . name for x in loose ] ) ) ) #NEWLINE# console . terse ( 'Hierarchy: \n' ) #NEWLINE# upper = tops #NEWLINE# lower = [ ] #NEWLINE# count = 0 #NEWLINE# while upper : #NEWLINE# #INDENT# lframes = [ ] #NEWLINE# for u in upper : #NEWLINE# #INDENT# path = u . name #NEWLINE# over = u . over #NEWLINE# while over : #NEWLINE# #INDENT# path = ( ( over . name + '>' ) + path ) #NEWLINE# over = over . over #NEWLINE# #UNINDENT# lframes . append ( path ) #NEWLINE# #UNINDENT# lower = [ ] #NEWLINE# for u in upper : #NEWLINE# #INDENT# for b in u . unders : #NEWLINE# #INDENT# lower . append ( b ) #NEWLINE# #UNINDENT# #UNINDENT# upper = lower #NEWLINE# count += 1 #NEWLINE# console . terse ( 'Level {0}: {1}\n' . format ( count , ' ' . join ( lframes ) ) ) #NEWLINE# #UNINDENT# console . terse ( '\n' )