[Python-checkins] CVS: python/dist/src/Lib ConfigParser.py,1.19,1.20

Eric S. Raymond python-dev@python.org
2000年7月14日 07:28:24 -0700


Update of /cvsroot/python/python/dist/src/Lib
In directory slayer.i.sourceforge.net:/tmp/cvs-serv7481
Modified Files:
	ConfigParser.py 
Log Message:
ConfigParser enhancements to edit existing configs, part 2
Index: ConfigParser.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/ConfigParser.py,v
retrieving revision 1.19
retrieving revision 1.20
diff -C2 -r1.19 -r1.20
*** ConfigParser.py	2000年07月10日 18:11:00	1.19
--- ConfigParser.py	2000年07月14日 14:28:22	1.20
***************
*** 37,40 ****
--- 37,43 ----
 return whether the given section exists
 
+ has_option(section, option)
+ return whether the given option exists in the given section
+ 
 options(section)
 return list of configuration options for the named section
***************
*** 69,72 ****
--- 72,87 ----
 like get(), but convert value to a boolean (currently defined as 0 or
 1, only)
+ 
+ remove_section(section)
+ 	remove the given file section and all its options
+ 
+ remove_option(section, option)
+ 	remove the given option from the given section
+ 
+ set(section, option, value)
+ set the given option
+ 
+ write(fp)
+ 	write the configuration state in .ini format
 """
 
***************
*** 311,326 ****
 if self.__defaults:
 fp.write("[DEFAULT]\n")
! for key in self.__defaults.keys():
! fp.write(key + " = " + self.__defaults[key] + "\n")
 fp.write("\n")
 for section in self.sections():
 fp.write("[" + section + "]\n")
 sectdict = self.__sections[section]
! for key in sectdict.keys():
 if key == "__name__":
 continue
! fp.write(key + " = " + str(sectdict[key]) + "\n")
 fp.write("\n")
 
 #
 # Regular expressions for parsing section headers and options. Note a
--- 326,363 ----
 if self.__defaults:
 fp.write("[DEFAULT]\n")
! for (key, value) in self.__defaults.items():
! fp.write("%s = %s\n" % (key, value))
 fp.write("\n")
 for section in self.sections():
 fp.write("[" + section + "]\n")
 sectdict = self.__sections[section]
! for (key, value) in sectdict.items():
 if key == "__name__":
 continue
! fp.write("%s = %s\n" % (key, value))
 fp.write("\n")
 
+ def remove_option(section, option):
+ """Remove an option."""
+ if not section or section == "DEFAULT":
+ sectdict = self.__defaults
+ else:
+ try:
+ sectdict = self.__sections[section]
+ except KeyError:
+ raise NoSectionError(section)
+ existed = sectdict.has_key(key)
+ if existed:
+ del sectdict[key]
+ return existed
+ 
+ def remove_section(section):
+ """Remove a file section."""
+ if self.__sections.has_key(section):
+ del self.__sections[section]
+ return 1
+ else:
+ return 0
+ 
 #
 # Regular expressions for parsing section headers and options. Note a
***************
*** 394,398 ****
 if mo:
 optname, vi, optval = mo.group('option', 'vi', 'value')
- optname = string.lower(optname)
 if vi in ('=', ':') and ';' in optval:
 # ';' is a comment delimiter only if it follows
--- 431,434 ----

AltStyle によって変換されたページ (->オリジナル) /