marshal.py
author Eugen Sawin <sawine@me73.com>
Thu, 30 Dec 2010 15:19:36 +0100
changeset 5 dd036093fc09
permissions -rw-r--r--
More efficient grid iteration.
     1 import ConfigParser
     2 
     3 meta_section = "meta"
     4 data_section = "cells"
     5 
     6 def dumpGrid(grid, filename):
     7 	config = ConfigParser.RawConfigParser()
     8 
     9 	config.add_section(meta_section)
    10 	config.set(meta_section, 'min x', grid.minx)
    11 	config.set(meta_section, 'max x', grid.maxx)
    12 	config.set(meta_section, 'min y', grid.miny)
    13 	config.set(meta_section, 'max y', grid.maxy)
    14 	config.set(meta_section, 'cell no', len(grid))	
    15 	
    16 	config.add_section(data_section)
    17 	config.set(data_section, "cells", ";".join([str(pos) for pos in grid.cells.iterkeys()]))
    18 
    19 	with open(filename, 'wb') as configfile:
    20 		config.write(configfile)
    21 
    22 def loadGrid(filename):
    23 	config = ConfigParser.RawConfigParser()
    24 	config.read(filename)
    25 
    26 	grid = Grid()
    27 	grid.minx = config.getint(meta_section, "min x")
    28 	grid.maxx = config.getint(meta_section, "max x")
    29 	grid.miny = config.getint(meta_section, "min y")
    30 	grid.maxy = config.getint(meta_section, "max y")
    31 
    32 	cells = config.get(data_section, "cells")
    33 	for cell in cells.split(";"):
    34 		cell = [int(cell.strip("(),")) for cell in cell.split()]
    35 		grid.cells[(cell[0], cell[1])] = 1
    36 	return grid