sawine@11
|
1 |
"""
|
sawine@11
|
2 |
Description: Grid configuration parser.
|
sawine@11
|
3 |
Author: Eugen Sawin <sawine@me73.com>
|
sawine@11
|
4 |
"""
|
sawine@11
|
5 |
|
sawine@7
|
6 |
import ConfigParser
|
sawine@7
|
7 |
from grid import Grid
|
sawine@7
|
8 |
|
sawine@7
|
9 |
meta_section = "meta"
|
sawine@7
|
10 |
data_section = "cells"
|
sawine@7
|
11 |
|
sawine@7
|
12 |
def dumpGrid(grid, filename):
|
sawine@7
|
13 |
config = ConfigParser.RawConfigParser()
|
sawine@7
|
14 |
|
sawine@7
|
15 |
config.add_section(meta_section)
|
sawine@7
|
16 |
config.set(meta_section, 'min x', grid.minx)
|
sawine@7
|
17 |
config.set(meta_section, 'max x', grid.maxx)
|
sawine@7
|
18 |
config.set(meta_section, 'min y', grid.miny)
|
sawine@7
|
19 |
config.set(meta_section, 'max y', grid.maxy)
|
sawine@7
|
20 |
config.set(meta_section, 'cell no', len(grid))
|
sawine@7
|
21 |
|
sawine@7
|
22 |
config.add_section(data_section)
|
sawine@7
|
23 |
config.set(data_section, "cells", ";".join([str(pos) for pos in grid.cells.iterkeys()]))
|
sawine@7
|
24 |
|
sawine@7
|
25 |
with open(filename, 'wb') as configfile:
|
sawine@7
|
26 |
config.write(configfile)
|
sawine@7
|
27 |
|
sawine@7
|
28 |
def loadGrid(filename):
|
sawine@7
|
29 |
config = ConfigParser.RawConfigParser()
|
sawine@7
|
30 |
config.read(filename)
|
sawine@7
|
31 |
|
sawine@7
|
32 |
grid = Grid()
|
sawine@7
|
33 |
grid.minx = config.getint(meta_section, "min x")
|
sawine@7
|
34 |
grid.maxx = config.getint(meta_section, "max x")
|
sawine@7
|
35 |
grid.miny = config.getint(meta_section, "min y")
|
sawine@7
|
36 |
grid.maxy = config.getint(meta_section, "max y")
|
sawine@7
|
37 |
|
sawine@7
|
38 |
cells = config.get(data_section, "cells")
|
sawine@7
|
39 |
for cell in cells.split(";"):
|
sawine@7
|
40 |
cell = [int(cell.strip("(),")) for cell in cell.split()]
|
sawine@7
|
41 |
grid.cells[(cell[0], cell[1])] = 1
|
sawine@7
|
42 |
return grid
|