73 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
		
		
			
		
	
	
			73 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
| 
								 | 
							
								import xml.etree.ElementTree as ET
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class Doc():
							 | 
						||
| 
								 | 
							
								    def __init__(self, tree):
							 | 
						||
| 
								 | 
							
								        self.tree = tree
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def get_tree(self):
							 | 
						||
| 
								 | 
							
								        """Get this Doc's tree.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        Returns:
							 | 
						||
| 
								 | 
							
								            The xml.etree.ElementTree object of the documentation.
							 | 
						||
| 
								 | 
							
								        """
							 | 
						||
| 
								 | 
							
								        return self.tree
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def __eq__(self, other):
							 | 
						||
| 
								 | 
							
								        if other is None or other.get_tree() is None:
							 | 
						||
| 
								 | 
							
								            return None
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        return ET.tostring(self.tree.getroot()) == \
							 | 
						||
| 
								 | 
							
								            ET.tostring(other.get_tree().getroot())
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class ClassDoc(Doc):
							 | 
						||
| 
								 | 
							
								    pass
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class FreeDoc(Doc):
							 | 
						||
| 
								 | 
							
								    pass
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class Docs():
							 | 
						||
| 
								 | 
							
								    def __init__(self, class_docs, free_docs):
							 | 
						||
| 
								 | 
							
								        # These are dicts that map file_path -> Doc
							 | 
						||
| 
								 | 
							
								        self.class_docs = class_docs
							 | 
						||
| 
								 | 
							
								        self.free_docs = free_docs
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def get_class_docs(self, class_name):
							 | 
						||
| 
								 | 
							
								        '''Get the documentation for the class.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        Arguments:
							 | 
						||
| 
								 | 
							
								        class_name -- the name of the class
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        Returns:
							 | 
						||
| 
								 | 
							
								        The ClassDoc with the class's documentation. None if the class does not
							 | 
						||
| 
								 | 
							
								        exist.
							 | 
						||
| 
								 | 
							
								        '''
							 | 
						||
| 
								 | 
							
								        return self.class_docs.get(class_name)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def get_free_docs(self, free_func_name):
							 | 
						||
| 
								 | 
							
								        '''Get the documentation for a free function.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        Arguments:
							 | 
						||
| 
								 | 
							
								        free_func_name -- the name of the free function
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        Returns:
							 | 
						||
| 
								 | 
							
								        The FreeDoc with the free function's documentation. None if the class
							 | 
						||
| 
								 | 
							
								        does not exist.
							 | 
						||
| 
								 | 
							
								        '''
							 | 
						||
| 
								 | 
							
								        return self.free_docs.get(free_func_name)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def get_class_docs_keys_list(self):
							 | 
						||
| 
								 | 
							
								        return list(self.class_docs)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def get_free_docs_keys_list(self):
							 | 
						||
| 
								 | 
							
								        return list(self.free_docs)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def get_class_docs_values_list(self):
							 | 
						||
| 
								 | 
							
								        return list(self.class_docs.values())
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def get_free_docs_values_list(self):
							 | 
						||
| 
								 | 
							
								        return list(self.free_docs.values())
							 |