-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathsettings.py
More file actions
50 lines (38 loc) · 1.34 KB
/
settings.py
File metadata and controls
50 lines (38 loc) · 1.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import os
import sys
from engine import setImagePath
from ConfigParser import ConfigParser
from pygame.locals import *
class Settings(object):
def __init__(self):
self.__parser = ConfigParser()
if os.name == 'posix':
self.path = os.path.join(os.environ['HOME'], '.perpege')
else:
self.path = os.path.join(os.path.abspath('.'), 'settings.ini')
if not os.path.exists(self.path):
self.__write()
self.__parser.read(self.path)
setImagePath('./content/')
def __write(self):
cfg_file = open(self.path, 'w')
default_file = open('./content/default.conf', 'r')
cfg_file.write(default_file.read())
default_file.close()
cfg_file.close()
def get_key_map(self):
key_map = {}
for key, value in self.__parser.items('controls'):
key_map[key] = eval(value)
return key_map
def get_key(self, key):
return eval(self.__parser.get('controls', key))
def get_tuple(self, section, key):
raw_value = self.__parser.get(section, key)
return eval('tuple(%s)' % raw_value)
def get_bool(self, section, key):
return self.__parser.getboolean(section, key)
def quit(self):
cfg_file = open(self.path, 'w')
self.__parser.write(cfg_file)
cfg_file.close()