specs: speed up traversal by avoiding redundant canonicalization
This commit is contained in:
		
				
					committed by
					
						
						Greg Becker
					
				
			
			
				
	
			
			
			
						parent
						
							bb60dbd2ad
						
					
				
				
					commit
					fd12cba18b
				
			@@ -1382,7 +1382,16 @@ def traverse_edges(self, visited=None, d=0, deptype='all',
 | 
			
		||||
        cover = kwargs.get('cover', 'nodes')
 | 
			
		||||
        direction = kwargs.get('direction', 'children')
 | 
			
		||||
        order = kwargs.get('order', 'pre')
 | 
			
		||||
        deptype = dp.canonical_deptype(deptype)
 | 
			
		||||
 | 
			
		||||
        # we don't want to run canonical_deptype every time through
 | 
			
		||||
        # traverse, because it is somewhat expensive. This ensures we
 | 
			
		||||
        # canonicalize only once.
 | 
			
		||||
        canonical_deptype = kwargs.get("canonical_deptype", None)
 | 
			
		||||
        if canonical_deptype is None:
 | 
			
		||||
            deptype = dp.canonical_deptype(deptype)
 | 
			
		||||
            kwargs["canonical_deptype"] = deptype
 | 
			
		||||
        else:
 | 
			
		||||
            deptype = canonical_deptype
 | 
			
		||||
 | 
			
		||||
        # Make sure kwargs have legal values; raise ValueError if not.
 | 
			
		||||
        def validate(name, val, allowed_values):
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user