def function_by_signature(self, name, returns, parameters): method = DocsMethod(0) method.name = name method.parameters = parameters method.syntax = name + "(" for p in self.get_parameter_names(parameters): method.syntax = method.syntax + p + ", " method.syntax = method.syntax.rstrip(', ') method.syntax = method.syntax + ")" method.returns = returns method.new = True found = False for function in self.function_list: if function.name == name: dst_parameters_types = self.get_parameter_types( function.parameters) src_parameters_types = self.get_parameter_types(parameters) if (len(src_parameters_types) == len(dst_parameters_types)): a = -1 for i in range(len(src_parameters_types)): if src_parameters_types[i] != dst_parameters_types[i]: break else: a = i if a == len(src_parameters_types) - 1: function.new = False return function found = True #print 'found ' + function.name break if not found: #print 'not found ' + method.name #clazzmethod = method self.function_list.append(method) return method
def getclass(clazz): method = DocsMethod(0) var = DocsVar(0) docs_clazz = DocsClass(0) var.clazz = clazz docs_clazz.name = clazz docs_clazz.new = True for root, dirs, files in os.walk(os.path.join(docs_root)): for name in files: file_split = os.path.splitext(name) if file_split[1] == '.markdown' and file_split[0] == clazz: f = open(os.path.join(root, name), 'r') state = 'begin' for line in f: if state == 'begin' and line.find( '#class') == 0 and line.find(clazz) != -1: state = 'class' docs_clazz.module = os.path.basename(root) docs_clazz.new = False elif state == 'class' and line.rstrip('\n').rstrip( ' ') == '##Methods': state = 'methods' elif state == 'methods' and line.find('###') == 0: #print "##########method: " + line state = 'method' elif state == 'method' and line.find( '_') == 0 and line.find('_description') == -1: #print "##########field: " + line addfield(method, line) elif state == 'method' and line.find('_description') == 0: state = 'description' elif state == 'description' and line.find('##') != 0: method.description = method.description + line elif state == 'description' and line.find('###') == 0: state = 'method' docs_clazz.function_list.append(method) method = DocsMethod(0) method.clazz = docs_clazz.name elif state == 'description' and line.rstrip('\n').rstrip( ' ') == '##Variables': docs_clazz.function_list.append(method) state = 'vars' elif state == 'vars' and line.find('###') == 0: #print line state = 'var' elif state == 'var' and line.find('_') == 0 and line.find( '_description') == -1: addfield(var, line) elif state == 'var' and line.find('_description') == 0: state = 'vardescription' elif state == 'vardescription' and line.find('##') != 0: var.description = var.description + line elif state == 'vardescription' and line.find('###') == 0: #print line state = 'var' docs_clazz.var_list.append(var) var = DocsVar(0) var.clazz = docs_clazz.name elif state == 'class' and line.find('##Description') == -1: docs_clazz.reference = docs_clazz.reference + line if state == 'vardescription': docs_clazz.var_list.append(var) f.close() return docs_clazz return docs_clazz