Revision: 422
http://svn.sourceforge.net/pybridge/?rev=422&view=rev
Author: umgangee
Date: 2007-06-18 04:51:35 -0700 (Mon, 18 Jun 2007)
Log Message:
-----------
Add wrapper for ConfigObj configuration management. ConfigObj has some nice features which are not in ConfigParser.
Added Paths:
-----------
trunk/pybridge/pybridge/ui/config.py
Added: trunk/pybridge/pybridge/ui/config.py
===================================================================
--- trunk/pybridge/pybridge/ui/config.py (rev 0)
+++ trunk/pybridge/pybridge/ui/config.py 2007-06-18 11:51:35 UTC (rev 422)
@@ -0,0 +1,64 @@
+# PyBridge -- online contract bridge made easy.
+# Copyright (C) 2004-2007 PyBridge Project.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+
+"""
+Manages PyBridge client configuration file.
+"""
+
+from StringIO import StringIO
+from configobj import ConfigObj
+from validate import Validator
+
+import pybridge.environment as env
+
+# Config spec
+spec = StringIO("""# PyBridge configuration file
+
+[Connection]
+ HostAddress = string
+ PortNumber = integer(0, 65535)
+ Username = string
+ Password = string
+
+[Appearance]
+ CardStyle = string
+ BackgroundImage = string
+
+ [[Colours]]
+ Club = int_list(3, 3)
+ Diamond = int_list(3, 3)
+ Heart = int_list(3, 3)
+ Spade = int_list(3, 3)
+
+""")
+
+
+config = None
+val = Validator()
+
+def load():
+ global config
+ filename = env.find_config_client('config')
+ config = ConfigObj(filename, create_empty=True, configspec=spec)
+ config.validate(val, copy=True)
+
+def save():
+ global config
+ config.validate(val, copy=True)
+ config.write()
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|