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())
|