mirror of
				https://github.com/godotengine/godot.git
				synced 2025-10-30 21:21:10 +00:00 
			
		
		
		
	 eaf803f71e
			
		
	
	
		eaf803f71e
		
	
	
	
	
		
			
			Done with `autopep8 --select=E7`, fixes: - E701 - Put colon-separated compound statement on separate lines. - E702 - Put semicolon-separated compound statement on separate lines. - E703 - Put semicolon-separated compound statement on separate lines. - E711 - Fix comparison with None. - E712 - Fix (trivial case of) comparison with boolean. - E713 - Fix (trivial case of) non-membership check. - E721 - Fix various deprecated code (via lib2to3).
		
			
				
	
	
		
			215 lines
		
	
	
	
		
			6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			215 lines
		
	
	
	
		
			6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #!/usr/bin/env python
 | |
| # -*- coding: utf-8 -*-
 | |
| 
 | |
| import sys
 | |
| import xml.etree.ElementTree as ET
 | |
| 
 | |
| 
 | |
| tree = ET.parse(sys.argv[1])
 | |
| old_doc = tree.getroot()
 | |
| 
 | |
| tree = ET.parse(sys.argv[2])
 | |
| new_doc = tree.getroot()
 | |
| 
 | |
| f = file(sys.argv[3], "wb")
 | |
| tab = 0
 | |
| 
 | |
| old_classes = {}
 | |
| 
 | |
| 
 | |
| def write_string(_f, text, newline=True):
 | |
|     for t in range(tab):
 | |
|         _f.write("\t")
 | |
|     _f.write(text)
 | |
|     if (newline):
 | |
|         _f.write("\n")
 | |
| 
 | |
| 
 | |
| def escape(ret):
 | |
|     ret = ret.replace("&", "&")
 | |
|     ret = ret.replace("<", ">")
 | |
|     ret = ret.replace(">", "<")
 | |
|     ret = ret.replace("'", "'")
 | |
|     ret = ret.replace("\"", """)
 | |
|     return ret
 | |
| 
 | |
| 
 | |
| def inc_tab():
 | |
|     global tab
 | |
|     tab += 1
 | |
| 
 | |
| 
 | |
| def dec_tab():
 | |
|     global tab
 | |
|     tab -= 1
 | |
| 
 | |
| write_string(f, '<?xml version="1.0" encoding="UTF-8" ?>')
 | |
| write_string(f, '<doc version="' + new_doc.attrib["version"] + '">')
 | |
| 
 | |
| 
 | |
| def get_tag(node, name):
 | |
|     tag = ""
 | |
|     if (name in node.attrib):
 | |
|         tag = ' ' + name + '="' + escape(node.attrib[name]) + '" '
 | |
|     return tag
 | |
| 
 | |
| 
 | |
| def find_method_descr(old_class, name):
 | |
| 
 | |
|     methods = old_class.find("methods")
 | |
|     if(methods != None and len(list(methods)) > 0):
 | |
|         for m in list(methods):
 | |
|             if (m.attrib["name"] == name):
 | |
|                 description = m.find("description")
 | |
|                 if (description != None and description.text.strip() != ""):
 | |
|                     return description.text
 | |
| 
 | |
|     return None
 | |
| 
 | |
| 
 | |
| def find_signal_descr(old_class, name):
 | |
| 
 | |
|     signals = old_class.find("signals")
 | |
|     if(signals != None and len(list(signals)) > 0):
 | |
|         for m in list(signals):
 | |
|             if (m.attrib["name"] == name):
 | |
|                 description = m.find("description")
 | |
|                 if (description != None and description.text.strip() != ""):
 | |
|                     return description.text
 | |
| 
 | |
|     return None
 | |
| 
 | |
| 
 | |
| def find_constant_descr(old_class, name):
 | |
| 
 | |
|     if (old_class == None):
 | |
|         return None
 | |
|     constants = old_class.find("constants")
 | |
|     if(constants != None and len(list(constants)) > 0):
 | |
|         for m in list(constants):
 | |
|             if (m.attrib["name"] == name):
 | |
|                 if (m.text.strip() != ""):
 | |
|                     return m.text
 | |
|     return None
 | |
| 
 | |
| 
 | |
| def write_class(c):
 | |
|     class_name = c.attrib["name"]
 | |
|     print("Parsing Class: " + class_name)
 | |
|     if (class_name in old_classes):
 | |
|         old_class = old_classes[class_name]
 | |
|     else:
 | |
|         old_class = None
 | |
| 
 | |
|     category = get_tag(c, "category")
 | |
|     inherits = get_tag(c, "inherits")
 | |
|     write_string(f, '<class name="' + class_name + '" ' + category + inherits + '>')
 | |
|     inc_tab()
 | |
| 
 | |
|     write_string(f, "<brief_description>")
 | |
| 
 | |
|     if (old_class != None):
 | |
|         old_brief_descr = old_class.find("brief_description")
 | |
|         if (old_brief_descr != None):
 | |
|             write_string(f, escape(old_brief_descr.text.strip()))
 | |
| 
 | |
|     write_string(f, "</brief_description>")
 | |
| 
 | |
|     write_string(f, "<description>")
 | |
|     if (old_class != None):
 | |
|         old_descr = old_class.find("description")
 | |
|         if (old_descr != None):
 | |
|             write_string(f, escape(old_descr.text.strip()))
 | |
| 
 | |
|     write_string(f, "</description>")
 | |
| 
 | |
|     methods = c.find("methods")
 | |
|     if(methods != None and len(list(methods)) > 0):
 | |
| 
 | |
|         write_string(f, "<methods>")
 | |
|         inc_tab()
 | |
| 
 | |
|         for m in list(methods):
 | |
|             qualifiers = get_tag(m, "qualifiers")
 | |
| 
 | |
|             write_string(f, '<method name="' + escape(m.attrib["name"]) + '" ' + qualifiers + '>')
 | |
|             inc_tab()
 | |
| 
 | |
|             for a in list(m):
 | |
|                 if (a.tag == "return"):
 | |
|                     typ = get_tag(a, "type")
 | |
|                     write_string(f, '<return' + typ + '>')
 | |
|                     write_string(f, '</return>')
 | |
|                 elif (a.tag == "argument"):
 | |
| 
 | |
|                     default = get_tag(a, "default")
 | |
| 
 | |
|                     write_string(f, '<argument index="' + a.attrib["index"] + '" name="' + escape(a.attrib["name"]) + '" type="' + a.attrib["type"] + '"' + default + '>')
 | |
|                     write_string(f, '</argument>')
 | |
| 
 | |
|             write_string(f, '<description>')
 | |
|             if (old_class != None):
 | |
|                 old_method_descr = find_method_descr(old_class, m.attrib["name"])
 | |
|                 if (old_method_descr):
 | |
|                     write_string(f, escape(escape(old_method_descr.strip())))
 | |
| 
 | |
|             write_string(f, '</description>')
 | |
|             dec_tab()
 | |
|             write_string(f, "</method>")
 | |
|         dec_tab()
 | |
|         write_string(f, "</methods>")
 | |
| 
 | |
|     signals = c.find("signals")
 | |
|     if(signals != None and len(list(signals)) > 0):
 | |
| 
 | |
|         write_string(f, "<signals>")
 | |
|         inc_tab()
 | |
| 
 | |
|         for m in list(signals):
 | |
| 
 | |
|             write_string(f, '<signal name="' + escape(m.attrib["name"]) + '">')
 | |
|             inc_tab()
 | |
| 
 | |
|             for a in list(m):
 | |
|                 if (a.tag == "argument"):
 | |
| 
 | |
|                     write_string(f, '<argument index="' + a.attrib["index"] + '" name="' + escape(a.attrib["name"]) + '" type="' + a.attrib["type"] + '">')
 | |
|                     write_string(f, '</argument>')
 | |
| 
 | |
|             write_string(f, '<description>')
 | |
|             if (old_class != None):
 | |
|                 old_signal_descr = find_signal_descr(old_class, m.attrib["name"])
 | |
|                 if (old_signal_descr):
 | |
|                     write_string(f, escape(old_signal_descr.strip()))
 | |
|             write_string(f, '</description>')
 | |
|             dec_tab()
 | |
|             write_string(f, "</signal>")
 | |
|         dec_tab()
 | |
|         write_string(f, "</signals>")
 | |
| 
 | |
|     constants = c.find("constants")
 | |
|     if(constants != None and len(list(constants)) > 0):
 | |
| 
 | |
|         write_string(f, "<constants>")
 | |
|         inc_tab()
 | |
| 
 | |
|         for m in list(constants):
 | |
| 
 | |
|             write_string(f, '<constant name="' + escape(m.attrib["name"]) + '" value="' + m.attrib["value"] + '">')
 | |
|             old_constant_descr = find_constant_descr(old_class, m.attrib["name"])
 | |
|             if (old_constant_descr):
 | |
|                 write_string(f, escape(old_constant_descr.strip()))
 | |
|             write_string(f, "</constant>")
 | |
| 
 | |
|         dec_tab()
 | |
|         write_string(f, "</constants>")
 | |
| 
 | |
|     dec_tab()
 | |
|     write_string(f, "</class>")
 | |
| 
 | |
| for c in list(old_doc):
 | |
|     old_classes[c.attrib["name"]] = c
 | |
| 
 | |
| for c in list(new_doc):
 | |
|     write_class(c)
 | |
| write_string(f, '</doc>\n')
 |