public static PyObject loadObject(BinaryReader reader) { int pos = (int)reader.BaseStream.Position; PyObject ret; int type = reader.ReadByte(); switch (type) { case (int)ObjectType.False: case (int)ObjectType.None: case (int)ObjectType.True: ret = new PyObject(); break; case (int)ObjectType.Code: ret = new CodeBlock(); break; case (int)ObjectType.StringRef: ret = new PyStringRef(); break; case (int)ObjectType.String: case (int)ObjectType.UnicodeString: case (int)ObjectType.Interned: ret = new PyString(); break; case (int)ObjectType.Tuple: ret = new PyTuple(); break; case (int)ObjectType.Int: ret = new PyInt(); break; case 103: // Not 100% sure this is correct but it seams to work. ret = new PyLong(); break; default: return(null); } ret.type = (ObjectType)type; if (!ret.load(reader)) { return(null); } return(ret); }
public override bool Equals(PyObject other) { if (other == null) { return(false); } if (other is PyTuple) { PyTuple tup = other as PyTuple; if (tup.items.Count != items.Count) { return(false); } for (int i = 0; i < items.Count; i++) { if (tup.items[i] != items[i]) { return(false); } } return(true); } return(false); }