From: David G. <go...@us...> - 2002-07-20 03:15:26
|
Update of /cvsroot/docutils/docutils/docutils In directory usw-pr-cvs1:/tmp/cvs-serv10893/docutils/docutils Modified Files: core.py Log Message: - Added support for configuration files (/etc/docutils.conf, ./docutils.conf, ~/.docutils). - Added ``Publisher.setup_option_parser()``. Index: core.py =================================================================== RCS file: /cvsroot/docutils/docutils/docutils/core.py,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** core.py 19 Jul 2002 02:27:04 -0000 1.12 --- core.py 20 Jul 2002 03:15:22 -0000 1.13 *************** *** 18,24 **** import sys from docutils import Component from docutils import readers, parsers, writers, io ! from docutils.frontend import OptionParser --- 18,25 ---- import sys + import os.path from docutils import Component from docutils import readers, parsers, writers, io ! from docutils.frontend import OptionParser, ConfigParser *************** *** 29,32 **** --- 30,39 ---- """ + config_files = ('/etc/docutils.conf', # system-wide + './docutils.conf', # project-specific + os.path.expanduser('~/.docutils')) # user-specific + """Docutils configuration files, using ConfigParser syntax (section + 'options'). Later files override earlier ones.""" + def __init__(self, reader=None, parser=None, writer=None, source=None, source_class=io.FileIO, *************** *** 75,79 **** self.writer = writer_class() ! def set_options(self, option_spec=None, **defaults): """ Set and return default option values (keyword arguments). --- 82,100 ---- self.writer = writer_class() ! def setup_option_parser(self, usage=None, description=None, ! option_spec=None, **defaults): ! config = ConfigParser() ! config.read(self.config_files) ! if config.has_section('options'): ! for option in config.options('options'): ! defaults[option] = config.get('options', option) ! option_parser = OptionParser( ! components=(option_spec, self.reader, self.parser, self.writer), ! usage=usage, description=description) ! option_parser.set_defaults(**defaults) ! return option_parser ! ! def set_options(self, usage=None, description=None, ! option_spec=None, **defaults): """ Set and return default option values (keyword arguments). *************** *** 83,94 **** from `self.publish()`. """ ! option_parser = OptionParser( ! components=(option_spec, self.reader, self.parser, self.writer)) ! option_parser.set_defaults(**defaults) self.options = option_parser.get_default_values() return self.options def process_command_line(self, argv=None, usage=None, description=None, ! option_spec=None): """ Pass an empty list to `argv` to avoid reading `sys.argv` (the --- 104,114 ---- from `self.publish()`. """ ! option_parser = self.setup_option_parser(usage, description, ! option_spec, **defaults) self.options = option_parser.get_default_values() return self.options def process_command_line(self, argv=None, usage=None, description=None, ! option_spec=None, **defaults): """ Pass an empty list to `argv` to avoid reading `sys.argv` (the *************** *** 97,103 **** Set components first (`self.set_reader` & `self.set_writer`). """ ! option_parser = OptionParser( ! components=(option_spec, self.reader, self.parser, self.writer), ! usage=usage, description=description) if argv is None: argv = sys.argv[1:] --- 117,122 ---- Set components first (`self.set_reader` & `self.set_writer`). """ ! option_parser = self.setup_option_parser(usage, description, ! option_spec, **defaults) if argv is None: argv = sys.argv[1:] |