Source code for envi.config

"""
Unified config object for all vtoys.
"""

import os
import sys

from ConfigParser import ConfigParser
from cStringIO import StringIO

[docs]def gethomedir(*paths): path = None if sys.platform == "win32": homepath = os.getenv("HOMEPATH") homedrive = os.getenv("HOMEDRIVE") if homedrive != None and homepath != None: path = os.path.join(homedrive, homepath, *paths) else: home = os.getenv("HOME") if home != None: path = os.path.join(home, *paths) if path != None and not os.path.exists(path): os.makedirs(path) return path
[docs]def getusername(): u = os.getenv('USERNAME') if u != None: return u u = os.getenv('USER') if u != None: return u return 'UnknownUser'
[docs]class EnviConfig(ConfigParser): def __init__(self, filename=None, defaults=None): ConfigParser.__init__(self) if defaults != None: self.readstr(defaults) self.filename = filename if filename != None: self.read(filename)
[docs] def readstr(self, s): self.readfp(StringIO(s))
[docs] def syncFile(self): if self.filename != None: f = file(self.filename, "wb") self.write(f) f.close()
[docs] def set(self, sec, opt, val): ConfigParser.set(self, sec, opt, val) self.syncFile()
[docs] def remove_option(self, sec, opt): ConfigParser.remove_option(self, sec, opt) self.syncFile() #def __getattr__(self, name): #def __setattr__(self, name, value):