#NEWLINE# def orderedNodeDependenciesAt( self , dagNode , includeGivenNode = True , onlyUnfulfilled = True , recursion = True ) : #NEWLINE# #INDENT# '\n        Builds the evaluation order tree at the given node.\n        Checks all requirements on each node (using the per-node input filters).\n        ' #NEWLINE# requiredDataPackets = [ x [ 1 ] for x in self . nodeOrderedDataPackets ( dagNode , onlyUnfulfilled = onlyUnfulfilled ) ] #NEWLINE# i = 0 #NEWLINE# while ( i < len ( requiredDataPackets ) ) : #NEWLINE# #INDENT# packet = requiredDataPackets [ i ] #NEWLINE# packetRdp = [ x [ 1 ] for x in self . nodeOrderedDataPackets ( packet . sourceNode , onlyUnfulfilled = onlyUnfulfilled ) ] #NEWLINE# for p in packetRdp : #NEWLINE# #INDENT# if ( p . sourceNode in [ dp . sourceNode for dp in x ] ) : #NEWLINE# #INDENT# continue #NEWLINE# #UNINDENT# if recursion : #NEWLINE# #INDENT# requiredDataPackets . append ( p ) #NEWLINE# #UNINDENT# #UNINDENT# i += 1 #NEWLINE# #UNINDENT# inOrderNodes = list ( ) #NEWLINE# for dp in reversed ( requiredDataPackets ) : #NEWLINE# #INDENT# inOrderNodes . append ( dp . sourceNode ) #NEWLINE# #UNINDENT# if includeGivenNode : #NEWLINE# #INDENT# inOrderNodes . append ( dagNode ) #NEWLINE# #UNINDENT# return inOrderNodes