pyloxi: include all members in OFClass.members
This preserves ordering, which is important because we can't rely on the offset
field for sorting (it may be -1).
The newly passing show() tests are due to the side effect of removing type
fields from pretty printing.
diff --git a/py_gen/templates/_ofclass.py b/py_gen/templates/_ofclass.py
index ff8b21b..03fe837 100644
--- a/py_gen/templates/_ofclass.py
+++ b/py_gen/templates/_ofclass.py
@@ -1,11 +1,12 @@
-:: nonskip_members = [m for m in ofclass.members if not m.skip]
+:: from py_gen.codegen import Member, LengthMember, TypeMember
+:: normal_members = [m for m in ofclass.members if type(m) == Member and not m.skip]
class ${ofclass.pyname}(${superclass}):
:: for m in ofclass.type_members:
${m.name} = ${m.value}
:: #endfor
- def __init__(${', '.join(['self'] + ["%s=None" % m.name for m in nonskip_members])}):
-:: for m in nonskip_members:
+ def __init__(${', '.join(['self'] + ["%s=None" % m.name for m in normal_members])}):
+:: for m in normal_members:
if ${m.name} != None:
self.${m.name} = ${m.name}
else:
@@ -26,7 +27,7 @@
def __eq__(self, other):
if type(self) != type(other): return False
-:: for m in nonskip_members:
+:: for m in normal_members:
if self.${m.name} != other.${m.name}: return False
:: #endfor
return True