00001 import os
00002 import sys
00003 import msvcrt
00004 import ConfigParser
00005
00006 import clnch_resource
00007
00008 ini = None
00009 ini_filename = os.path.join( os.path.split(sys.argv[0])[0], 'clnch.ini' )
00010
00011
00012
00013 def read():
00014
00015 global ini
00016
00017 ini = ConfigParser.SafeConfigParser()
00018
00019 try:
00020 fd = file( ini_filename, "rb" )
00021 msvcrt.locking( fd.fileno(), msvcrt.LK_LOCK, 1 )
00022 ini.readfp(fd)
00023 fd.close()
00024 except:
00025 pass
00026
00027 def write():
00028 try:
00029 fd = file( ini_filename, "w" )
00030 msvcrt.locking( fd.fileno(), msvcrt.LK_LOCK, 1 )
00031 ini.write(fd)
00032 fd.close()
00033 except:
00034 pass
00035
00036 def get( section, option, default=None ):
00037
00038 try:
00039 return ini.get( section, option )
00040 except:
00041 if default!=None:
00042 return default
00043 raise
00044
00045 def getint( section, option, default=None ):
00046
00047 try:
00048 return ini.getint( section, option )
00049 except:
00050 if default!=None:
00051 return default
00052 raise
00053
00054 def set( section, option, value ):
00055
00056 assert( type(value)==str )
00057 try:
00058 ini.add_section(section)
00059 except ConfigParser.DuplicateSectionError:
00060 pass
00061 ini.set( section, option, value )
00062
00063 def setint( section, option, value ):
00064
00065 assert( type(value)==int )
00066 try:
00067 ini.add_section(section)
00068 except ConfigParser.DuplicateSectionError:
00069 pass
00070 ini.set( section, option, str(value) )
00071
00072 def remove_option( section, option ):
00073 ini.remove_option( section, option )