added Config module
authorMax Usachev <maxusachev@gmail.com>
Wed, 9 Jun 2010 13:22:04 +0000 (16:22 +0300)
committerMax Usachev <maxusachev@gmail.com>
Wed, 9 Jun 2010 13:22:04 +0000 (16:22 +0300)
config.py [new file with mode: 0644]

diff --git a/config.py b/config.py
new file mode 100644 (file)
index 0000000..4aa8fb1
--- /dev/null
+++ b/config.py
@@ -0,0 +1,53 @@
+"""
+Configuration module
+"""
+
+import os
+from ConfigParser import ConfigParser
+
+CONFIG_NAME = 'config.ini'
+
+class Config:
+    def __init__(self, basedir, database):
+        self.database = database
+        self.cp = ConfigParser()
+        self._path = os.path.join(basedir, CONFIG_NAME)
+        if not os.path.exists(self._path):
+            self.new()
+        self.cp.readfp(open(self._path))
+
+    def new(self):
+        """Creates default config file."""
+
+        self.cp.add_section('fields')
+        self.cp.set('fields', 'fields', ','.join( \
+            self.database.get_fields()))
+        self.cp.set('fields', 'order', ','.join( \
+            self.database.get_fields()))
+        self.cp.write(open(self._path, 'w'))
+
+    def set_fields(self, fields):
+        """Sets fields, that will be shown for user."""
+
+        self.cp.set('fields', 'fields', ','.join(fields))
+
+    def get_fields(self):
+        """Gets fields, that will be shown for user."""
+
+        return self.cp.get('fields', 'fields').split(',')
+
+    def set_order(self, fields):
+        """Sets fields order."""
+
+        self.cp.set('fields', 'order', ','.join(fields))
+
+    def get_order(self):
+        """Gets fields order."""
+
+        return self.cp.get('fields', 'order').split(',')
+
+    def save(self):
+        """Save configuration file content."""
+
+        self.cp.write(open(self._path, 'w'))
+