27 lines
		
	
	
		
			620 B
		
	
	
	
		
			Python
		
	
	
		
		
			
		
	
	
			27 lines
		
	
	
		
			620 B
		
	
	
	
		
			Python
		
	
	
|  | """
 | ||
|  | GTSAM Copyright 2010-2020, Georgia Tech Research Corporation, | ||
|  | Atlanta, Georgia 30332-0415 | ||
|  | All Rights Reserved | ||
|  | 
 | ||
|  | See LICENSE for the license information | ||
|  | 
 | ||
|  | Various common utilities. | ||
|  | 
 | ||
|  | Author: Varun Agrawal | ||
|  | """
 | ||
|  | 
 | ||
|  | 
 | ||
|  | def collect_namespaces(obj): | ||
|  |     """
 | ||
|  |     Get the chain of namespaces from the lowest to highest for the given object. | ||
|  | 
 | ||
|  |     Args: | ||
|  |         obj: Object of type Namespace, Class, InstantiatedClass, or Enum. | ||
|  |     """
 | ||
|  |     namespaces = [] | ||
|  |     ancestor = obj.parent | ||
|  |     while ancestor and ancestor.name: | ||
|  |         namespaces = [ancestor.name] + namespaces | ||
|  |         ancestor = ancestor.parent | ||
|  |     return [''] + namespaces |