#NEWLINE# @ classmethod #NEWLINE# def early_iter_all_items( cls , item , seen = None ) : #NEWLINE# #INDENT# 'get a list of all times, including all groups, contents and dependencies of same\n\t\tbefore groups are unrolled into soemthing that can be represented by a digraph we\n\t\tneed a way of getting all items, including traversing group contents\n\t\t' #NEWLINE# if ( seen is None ) : #NEWLINE# #INDENT# seen = set ( ) #NEWLINE# #UNINDENT# if ( item in seen ) : #NEWLINE# #INDENT# raise StopIteration #NEWLINE# #UNINDENT# seen . add ( item ) #NEWLINE# for dep in item . depends : #NEWLINE# #INDENT# for cdep in cls . early_iter_all_items ( dep , seen ) : #NEWLINE# #INDENT# ( yield cdep ) #NEWLINE# #UNINDENT# #UNINDENT# if ( isinstance ( item , Group ) or ( ( type ( item ) == type ) and issubclass ( item , Group ) ) ) : #NEWLINE# #INDENT# for member in item . contains : #NEWLINE# #INDENT# for cdep in cls . early_iter_all_items ( member , seen ) : #NEWLINE# #INDENT# ( yield cdep ) #NEWLINE# #UNINDENT# #UNINDENT# #UNINDENT# ( yield item )