def read(self, filename): self.points = [] try: data = ByteReader(open(filename, 'rb')) except IOError: return while data.tell() < len(data): count = (data.readInt() - 2) / 2 x = data.readInt() y = data.readInt() point = Point(x, y) self.points.append(point) for _ in xrange(count): point_id = data.readInt() distance = data.readFloat() connection = Connection(point_id, distance) point.connections.append(connection)