mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 03:08:05 +02:00
Convert all Python scripts to use XML namespaces.
This commit is contained in:
parent
b7142567bc
commit
2510ba618d
12 changed files with 106 additions and 92 deletions
|
|
@ -230,8 +230,9 @@ class glXEnum(gl_XML.glEnum):
|
|||
gl_XML.glEnum.__init__(self, context, name, attrs)
|
||||
|
||||
|
||||
def startElement(self, name, attrs):
|
||||
if name == "size":
|
||||
def startElementNS(self, name, qname, attrs):
|
||||
[uri, true_name] = name
|
||||
if true_name == "size":
|
||||
[temp_n, c, mode] = self.process_attributes(attrs)
|
||||
|
||||
if temp_n == "Get":
|
||||
|
|
@ -247,7 +248,7 @@ class glXEnum(gl_XML.glEnum):
|
|||
|
||||
self.context.glx_enum_functions[ n ].append( c, self.value, self.name )
|
||||
else:
|
||||
gl_XML.glEnum.startElement(self, context, name, attrs)
|
||||
gl_XML.glEnum.startElementNS(self, name, qname, attrs)
|
||||
return
|
||||
|
||||
|
||||
|
|
@ -311,7 +312,7 @@ class glXFunction(gl_XML.glFunction):
|
|||
can_be_large = 0
|
||||
|
||||
def __init__(self, context, name, attrs):
|
||||
self.vectorequiv = attrs.get('vectorequiv', None)
|
||||
self.vectorequiv = attrs.get((None, 'vectorequiv'), None)
|
||||
self.counter = None
|
||||
self.output = None
|
||||
self.can_be_large = 0
|
||||
|
|
@ -331,19 +332,20 @@ class glXFunction(gl_XML.glFunction):
|
|||
return glXParameterIterator(self.fn_parameters, skip_output, max_order)
|
||||
|
||||
|
||||
def startElement(self, name, attrs):
|
||||
def startElementNS(self, name, qname, attrs):
|
||||
"""Process elements within a function that are specific to GLX."""
|
||||
|
||||
if name == "glx":
|
||||
self.glx_rop = int(attrs.get('rop', "0"))
|
||||
self.glx_sop = int(attrs.get('sop', "0"))
|
||||
self.glx_vendorpriv = int(attrs.get('vendorpriv', "0"))
|
||||
self.img_reset = attrs.get('img_reset', None)
|
||||
[uri, true_name] = name
|
||||
if true_name == "glx":
|
||||
self.glx_rop = int(attrs.get((None, 'rop'), "0"))
|
||||
self.glx_sop = int(attrs.get((None, 'sop'), "0"))
|
||||
self.glx_vendorpriv = int(attrs.get((None, 'vendorpriv'), "0"))
|
||||
self.img_reset = attrs.get((None, 'img_reset'), None)
|
||||
|
||||
# The 'handcode' attribute can be one of 'true',
|
||||
# 'false', 'client', or 'server'.
|
||||
|
||||
handcode = attrs.get('handcode', "false")
|
||||
handcode = attrs.get((None, 'handcode'), "false")
|
||||
if handcode == "false":
|
||||
self.server_handcode = 0
|
||||
self.client_handcode = 0
|
||||
|
|
@ -365,11 +367,12 @@ class glXFunction(gl_XML.glFunction):
|
|||
self.reply_always_array = gl_XML.is_attr_true( attrs, 'always_array' )
|
||||
self.dimensions_in_reply = gl_XML.is_attr_true( attrs, 'dimensions_in_reply' )
|
||||
else:
|
||||
gl_XML.glFunction.startElement(self, name, attrs)
|
||||
gl_XML.glFunction.startElementNS(self, name, qname, attrs)
|
||||
|
||||
|
||||
def endElement(self, name):
|
||||
if name == "function":
|
||||
def endElementNS(self, name, qname):
|
||||
[uri, true_name] = name
|
||||
if true_name == "function":
|
||||
# Mark any function that does not have GLX protocol
|
||||
# defined as "ignore". This prevents bad things from
|
||||
# happening when people add new functions to the GL
|
||||
|
|
@ -387,7 +390,7 @@ class glXFunction(gl_XML.glFunction):
|
|||
|
||||
self.ignore = 1
|
||||
|
||||
return gl_XML.glFunction.endElement(self, name)
|
||||
return gl_XML.glFunction.endElementNS(self, name, qname)
|
||||
|
||||
|
||||
def append(self, tag_name, p):
|
||||
|
|
@ -664,8 +667,9 @@ class GlxProto(gl_XML.FilterGLAPISpecBase):
|
|||
self.glx_enum_functions = {}
|
||||
|
||||
|
||||
def endElement(self, name):
|
||||
if name == 'OpenGLAPI':
|
||||
def endElementNS(self, name, qname):
|
||||
[uri, true_name] = name
|
||||
if true_name == 'OpenGLAPI':
|
||||
# Once all the parsing is done, we have to go back and
|
||||
# fix-up some cross references between different
|
||||
# functions.
|
||||
|
|
@ -680,7 +684,7 @@ class GlxProto(gl_XML.FilterGLAPISpecBase):
|
|||
else:
|
||||
raise RuntimeError("Could not find the vector equiv. function %s for %s!" % (f.name, f.vectorequiv))
|
||||
else:
|
||||
gl_XML.FilterGLAPISpecBase.endElement(self, name)
|
||||
gl_XML.FilterGLAPISpecBase.endElementNS(self, name, qname)
|
||||
return
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -268,7 +268,7 @@ if __name__ == '__main__':
|
|||
dh = PrintGlxProtoText()
|
||||
|
||||
parser = make_parser()
|
||||
parser.setFeature(feature_namespaces, 0)
|
||||
parser.setFeature(feature_namespaces, 1)
|
||||
parser.setContentHandler(dh)
|
||||
|
||||
f = open(file_name)
|
||||
|
|
|
|||
|
|
@ -890,7 +890,7 @@ if __name__ == '__main__':
|
|||
show_usage()
|
||||
|
||||
parser = make_parser()
|
||||
parser.setFeature(feature_namespaces, 0)
|
||||
parser.setFeature(feature_namespaces, 1)
|
||||
parser.setContentHandler(dh)
|
||||
|
||||
f = open(file_name)
|
||||
|
|
|
|||
|
|
@ -246,8 +246,9 @@ class PrintGlxReqSize_common(glX_XML.GlxProto):
|
|||
self.size_functions = []
|
||||
|
||||
|
||||
def endElement(self, name):
|
||||
if name == "function":
|
||||
def endElementNS(self, name, qname):
|
||||
[uri, true_name] = name
|
||||
if true_name == "function":
|
||||
f = self.current_object
|
||||
if f.glx_rop and not f.ignore and f.fn_alias == None and f.vectorequiv == None:
|
||||
|
||||
|
|
@ -259,7 +260,7 @@ class PrintGlxReqSize_common(glX_XML.GlxProto):
|
|||
self.size_functions.append( f )
|
||||
break
|
||||
|
||||
glX_XML.GlxProto.endElement(self, name)
|
||||
glX_XML.GlxProto.endElementNS(self, name, qname)
|
||||
|
||||
|
||||
def functionIterator(self):
|
||||
|
|
@ -533,7 +534,7 @@ if __name__ == '__main__':
|
|||
show_usage()
|
||||
|
||||
parser = make_parser()
|
||||
parser.setFeature(feature_namespaces, 0)
|
||||
parser.setFeature(feature_namespaces, 1)
|
||||
parser.setContentHandler(dh)
|
||||
|
||||
f = open(file_name)
|
||||
|
|
|
|||
|
|
@ -124,7 +124,7 @@ if __name__ == '__main__':
|
|||
show_usage()
|
||||
|
||||
parser = make_parser()
|
||||
parser.setFeature(feature_namespaces, 0)
|
||||
parser.setFeature(feature_namespaces, 1)
|
||||
parser.setContentHandler(dh)
|
||||
|
||||
f = open(file_name)
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ def is_attr_true( attrs, name ):
|
|||
value is 'true', non-zero will be returned. An exception will be
|
||||
raised for any other value."""
|
||||
|
||||
value = attrs.get(name, "false")
|
||||
value = attrs.get((None, name), "false")
|
||||
if value == "true":
|
||||
return 1
|
||||
elif value == "false":
|
||||
|
|
@ -60,7 +60,7 @@ class glItem:
|
|||
context.append(tag_name, self)
|
||||
return
|
||||
|
||||
def startElement(self, name, attrs):
|
||||
def startElementNS(self, name, qname, attrs):
|
||||
"""Generic startElement handler.
|
||||
|
||||
The startElement handler is called for all elements except
|
||||
|
|
@ -70,7 +70,7 @@ class glItem:
|
|||
twice."""
|
||||
return
|
||||
|
||||
def endElement(self, name):
|
||||
def endElementNS(self, name, qname):
|
||||
"""Generic endElement handler.
|
||||
|
||||
Generic endElement handler. Returns 1 if the tag containing
|
||||
|
|
@ -87,7 +87,7 @@ class glItem:
|
|||
associated with an object, even the element that started the
|
||||
object. See the description of startElement an example."""
|
||||
|
||||
if name == self.tag_name:
|
||||
if name == (None, self.tag_name):
|
||||
return 1
|
||||
else:
|
||||
return 0
|
||||
|
|
@ -102,12 +102,12 @@ class glEnum( glItem ):
|
|||
This class is not complete, and is not really used yet."""
|
||||
|
||||
def __init__(self, context, name, attrs):
|
||||
self.value = int(attrs.get('value', "0x0000"), 0)
|
||||
self.value = int(attrs.get((None, 'value'), "0x0000"), 0)
|
||||
|
||||
enum_name = "GL_" + attrs.get('name', None)
|
||||
enum_name = "GL_" + attrs.get((None, 'name'), None)
|
||||
glItem.__init__(self, name, enum_name, context)
|
||||
|
||||
temp = attrs.get('count', None)
|
||||
temp = attrs.get((None, 'count'), None)
|
||||
self.default_count = 0
|
||||
if temp == "?":
|
||||
self.default_count = -1
|
||||
|
|
@ -122,9 +122,9 @@ class glEnum( glItem ):
|
|||
|
||||
|
||||
def process_attributes(self, attrs):
|
||||
name = attrs.get('name', None)
|
||||
name = attrs.get((None, 'name'), None)
|
||||
|
||||
temp = attrs.get('count', None)
|
||||
temp = attrs.get((None, 'count'), None)
|
||||
if temp == None:
|
||||
c = self.default_count
|
||||
else:
|
||||
|
|
@ -133,7 +133,7 @@ class glEnum( glItem ):
|
|||
except Exception,e:
|
||||
raise RuntimeError('Invalid count value "%s" for enum "%s" in function "%s" when an integer was expected.' % (temp, self.name, n))
|
||||
|
||||
mode_str = attrs.get('mode', "set")
|
||||
mode_str = attrs.get((None, 'mode'), "set")
|
||||
if mode_str == "set":
|
||||
mode = 1
|
||||
elif mode_str == "get":
|
||||
|
|
@ -148,10 +148,10 @@ class glType( glItem ):
|
|||
"""Subclass of glItem for representing GL types."""
|
||||
|
||||
def __init__(self, context, name, attrs):
|
||||
self.size = int(attrs.get('size', "0"))
|
||||
self.glx_name = attrs.get('glx_name', "")
|
||||
self.size = int(attrs.get((None, 'size'), "0"))
|
||||
self.glx_name = attrs.get((None, 'glx_name'), "")
|
||||
|
||||
type_name = "GL" + attrs.get('name', None)
|
||||
type_name = "GL" + attrs.get((None, 'name'), None)
|
||||
glItem.__init__(self, name, type_name, context)
|
||||
|
||||
|
||||
|
|
@ -166,10 +166,10 @@ class glParameter( glItem ):
|
|||
is_pointer = 0
|
||||
|
||||
def __init__(self, context, name, attrs):
|
||||
p_name = attrs.get('name', None)
|
||||
self.p_type_string = attrs.get('type', None)
|
||||
p_name = attrs.get((None, 'name'), None)
|
||||
self.p_type_string = attrs.get((None, 'type'), None)
|
||||
|
||||
temp = attrs.get('variable_param', None)
|
||||
temp = attrs.get((None, 'variable_param'), None)
|
||||
if temp:
|
||||
self.count_parameter_list = temp.split( ' ' )
|
||||
else:
|
||||
|
|
@ -185,7 +185,7 @@ class glParameter( glItem ):
|
|||
# statement will throw an exception, and the except block will
|
||||
# take over.
|
||||
|
||||
c = attrs.get('count', "0")
|
||||
c = attrs.get((None, 'count'), "0")
|
||||
try:
|
||||
self.p_count = int(c)
|
||||
self.counter = None
|
||||
|
|
@ -193,27 +193,27 @@ class glParameter( glItem ):
|
|||
self.p_count = 0
|
||||
self.counter = c
|
||||
|
||||
self.count_scale = int(attrs.get('count_scale', "1"))
|
||||
|
||||
self.count_scale = int(attrs.get((None, 'count_scale'), "1"))
|
||||
|
||||
self.is_counter = is_attr_true( attrs, 'counter' )
|
||||
self.is_output = is_attr_true( attrs, 'output' )
|
||||
|
||||
|
||||
# Pixel data has special parameters.
|
||||
|
||||
self.width = attrs.get('img_width', None)
|
||||
self.height = attrs.get('img_height', None)
|
||||
self.depth = attrs.get('img_depth', None)
|
||||
self.extent = attrs.get('img_extent', None)
|
||||
self.width = attrs.get((None, 'img_width'), None)
|
||||
self.height = attrs.get((None, 'img_height'), None)
|
||||
self.depth = attrs.get((None, 'img_depth'), None)
|
||||
self.extent = attrs.get((None, 'img_extent'), None)
|
||||
|
||||
self.img_xoff = attrs.get('img_xoff', None)
|
||||
self.img_yoff = attrs.get('img_yoff', None)
|
||||
self.img_zoff = attrs.get('img_zoff', None)
|
||||
self.img_woff = attrs.get('img_woff', None)
|
||||
self.img_xoff = attrs.get((None, 'img_xoff'), None)
|
||||
self.img_yoff = attrs.get((None, 'img_yoff'), None)
|
||||
self.img_zoff = attrs.get((None, 'img_zoff'), None)
|
||||
self.img_woff = attrs.get((None, 'img_woff'), None)
|
||||
|
||||
self.img_format = attrs.get('img_format', None)
|
||||
self.img_type = attrs.get('img_type', None)
|
||||
self.img_target = attrs.get('img_target', None)
|
||||
self.img_format = attrs.get((None, 'img_format'), None)
|
||||
self.img_type = attrs.get((None, 'img_type'), None)
|
||||
self.img_target = attrs.get((None, 'img_target'), None)
|
||||
|
||||
self.img_pad_dimensions = is_attr_true( attrs, 'img_pad_dimensions' )
|
||||
self.img_null_flag = is_attr_true( attrs, 'img_null_flag' )
|
||||
|
|
@ -351,19 +351,19 @@ class glParameterIterator:
|
|||
|
||||
class glFunction( glItem ):
|
||||
def __init__(self, context, name, attrs):
|
||||
self.fn_alias = attrs.get('alias', None)
|
||||
self.fn_alias = attrs.get((None, 'alias'), None)
|
||||
self.fn_parameters = []
|
||||
self.image = None
|
||||
self.count_parameter_list = []
|
||||
self.fn_return_type = "void"
|
||||
|
||||
temp = attrs.get('offset', None)
|
||||
temp = attrs.get((None, 'offset'), None)
|
||||
if temp == None or temp == "?":
|
||||
self.fn_offset = -1
|
||||
else:
|
||||
self.fn_offset = int(temp)
|
||||
|
||||
fn_name = attrs.get('name', None)
|
||||
fn_name = attrs.get((None, 'name'), None)
|
||||
if self.fn_alias != None:
|
||||
self.real_name = self.fn_alias
|
||||
else:
|
||||
|
|
@ -380,19 +380,20 @@ class glFunction( glItem ):
|
|||
return glParameterIterator(self.fn_parameters)
|
||||
|
||||
|
||||
def startElement(self, name, attrs):
|
||||
if name == "param":
|
||||
def startElementNS(self, name, qname, attrs):
|
||||
[uri, true_name] = name
|
||||
if true_name == "param":
|
||||
try:
|
||||
self.context.factory.create(self, name, attrs)
|
||||
self.context.factory.create(self, true_name, attrs)
|
||||
except RuntimeError:
|
||||
print "Error with parameter '%s' in function '%s'." \
|
||||
% (attrs.get('name','(unknown)'), self.name)
|
||||
% (attrs.get((None, 'name'),'(unknown)'), self.name)
|
||||
raise
|
||||
elif name == "return":
|
||||
self.set_return_type(attrs.get('type', None))
|
||||
elif true_name == "return":
|
||||
self.set_return_type(attrs.get((None, 'type'), None))
|
||||
|
||||
|
||||
def endElement(self, name):
|
||||
def endElementNS(self, name, qname):
|
||||
"""Handle the end of a <function> element.
|
||||
|
||||
At the end of a <function> element, there is some semantic
|
||||
|
|
@ -400,7 +401,8 @@ class glFunction( glItem ):
|
|||
exceptions from being thrown elsewhere in the code.
|
||||
"""
|
||||
|
||||
if name == "function":
|
||||
[uri, true_name] = name
|
||||
if true_name == "function":
|
||||
for p in self.variable_length_parameters:
|
||||
if p.counter:
|
||||
counter = self.parameters_by_name[ p.counter ]
|
||||
|
|
@ -607,16 +609,21 @@ class FilterGLAPISpecBase(saxutils.XMLFilterBase):
|
|||
# offset, then we do not need to track it. These are
|
||||
# functions that don't have an assigned offset
|
||||
|
||||
if obj.fn_offset >= 0 or obj.fn_alias != None:
|
||||
if obj.fn_offset >= 0:
|
||||
index = obj.fn_offset
|
||||
else:
|
||||
index = self.next_alias
|
||||
self.next_alias -= 1
|
||||
if not self.functions_by_name.has_key(obj.name):
|
||||
self.functions_by_name[obj.name] = obj
|
||||
|
||||
self.functions[index] = obj
|
||||
if obj.fn_offset >= 0 or obj.fn_alias != None:
|
||||
if obj.fn_offset >= 0:
|
||||
index = obj.fn_offset
|
||||
else:
|
||||
index = self.next_alias
|
||||
self.next_alias -= 1
|
||||
|
||||
self.functions_by_name[obj.name] = obj
|
||||
self.functions[index] = obj
|
||||
else:
|
||||
# We should do some checking here to make
|
||||
# sure the functions are an identical match.
|
||||
pass
|
||||
|
||||
elif object_type == "type":
|
||||
self.types[obj.name] = obj
|
||||
|
|
@ -624,7 +631,7 @@ class FilterGLAPISpecBase(saxutils.XMLFilterBase):
|
|||
return
|
||||
|
||||
|
||||
def startElement(self, name, attrs):
|
||||
def startElementNS(self, name, qname, attrs):
|
||||
"""Start a new element in the XML stream.
|
||||
|
||||
Starts a new element. There are three types of elements that
|
||||
|
|
@ -640,24 +647,26 @@ class FilterGLAPISpecBase(saxutils.XMLFilterBase):
|
|||
additional XML data, GLX protocol information, that the base
|
||||
classes do not know about."""
|
||||
|
||||
if self.current_object != None:
|
||||
self.current_object.startElement(name, attrs)
|
||||
elif name == "category":
|
||||
self.current_category = attrs.get('name', "")
|
||||
elif name == "include":
|
||||
self.next_include = attrs.get('name', "")
|
||||
else:
|
||||
self.current_object = self.factory.create(self, name, attrs)
|
||||
[uri, true_name] = name
|
||||
if uri is None:
|
||||
if self.current_object != None:
|
||||
self.current_object.startElementNS(name, qname, attrs)
|
||||
elif true_name == "category":
|
||||
self.current_category = attrs.get((None, 'name'), "")
|
||||
elif true_name == "include":
|
||||
self.next_include = attrs.get((None, 'name'), "")
|
||||
else:
|
||||
self.current_object = self.factory.create(self, true_name, attrs)
|
||||
return
|
||||
|
||||
|
||||
def endElement(self, name):
|
||||
def endElementNS(self, name, qname):
|
||||
if self.current_object != None:
|
||||
if self.current_object.endElement(name):
|
||||
if self.current_object.endElementNS(name, qname):
|
||||
self.current_object = None
|
||||
elif name == "include":
|
||||
parser = make_parser()
|
||||
parser.setFeature(feature_namespaces, 0)
|
||||
parser.setFeature(feature_namespaces, 1)
|
||||
parser.setContentHandler(self)
|
||||
|
||||
f = open(self.next_include)
|
||||
|
|
|
|||
|
|
@ -218,7 +218,7 @@ if __name__ == '__main__':
|
|||
dh = PrintGlOffsets()
|
||||
|
||||
parser = make_parser()
|
||||
parser.setFeature(feature_namespaces, 0)
|
||||
parser.setFeature(feature_namespaces, 1)
|
||||
parser.setContentHandler(dh)
|
||||
|
||||
f = open(file_name)
|
||||
|
|
|
|||
|
|
@ -237,7 +237,7 @@ if __name__ == '__main__':
|
|||
dh = PrintGlEnums()
|
||||
|
||||
parser = make_parser()
|
||||
parser.setFeature(feature_namespaces, 0)
|
||||
parser.setFeature(feature_namespaces, 1)
|
||||
parser.setContentHandler(dh)
|
||||
|
||||
f = open(file_name)
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ if __name__ == '__main__':
|
|||
dh = PrintGlOffsets()
|
||||
|
||||
parser = make_parser()
|
||||
parser.setFeature(feature_namespaces, 0)
|
||||
parser.setFeature(feature_namespaces, 1)
|
||||
parser.setContentHandler(dh)
|
||||
|
||||
f = open(file_name)
|
||||
|
|
|
|||
|
|
@ -149,7 +149,7 @@ if __name__ == '__main__':
|
|||
dh = PrintGlProcs( long_string )
|
||||
|
||||
parser = make_parser()
|
||||
parser.setFeature(feature_namespaces, 0)
|
||||
parser.setFeature(feature_namespaces, 1)
|
||||
parser.setContentHandler(dh)
|
||||
|
||||
f = open(file_name)
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@ if __name__ == '__main__':
|
|||
dh = PrintGlTable()
|
||||
|
||||
parser = make_parser()
|
||||
parser.setFeature(feature_namespaces, 0)
|
||||
parser.setFeature(feature_namespaces, 1)
|
||||
parser.setContentHandler(dh)
|
||||
|
||||
f = open(file_name)
|
||||
|
|
|
|||
|
|
@ -248,7 +248,7 @@ if __name__ == '__main__':
|
|||
show_usage()
|
||||
|
||||
parser = make_parser()
|
||||
parser.setFeature(feature_namespaces, 0)
|
||||
parser.setFeature(feature_namespaces, 1)
|
||||
parser.setContentHandler(dh)
|
||||
|
||||
f = open(file_name)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue