mirror of
https://github.com/python/cpython.git
synced 2025-08-03 16:39:00 +00:00
Factored out code for extracting-or-creating one of the option
dictionaries in 'self.command_options' to 'get_option_dict()'. Simplified code in 'parse_config_files()' and 'parse_command_line()' accordingly. Fixed code in constructor that processes the 'options' dictionary from the setup script so it actually works: uses the new 'self.command_options' dictionary rather than creating command objects and calling 'set_option()' on them.
This commit is contained in:
parent
37af1c3807
commit
0e48cfd2c5
1 changed files with 20 additions and 13 deletions
|
@ -185,11 +185,9 @@ class Distribution:
|
|||
if options:
|
||||
del attrs['options']
|
||||
for (command, cmd_options) in options.items():
|
||||
cmd_obj = self.get_command_obj (command)
|
||||
for (key, val) in cmd_options.items():
|
||||
cmd_obj.set_option (key, val)
|
||||
# loop over commands
|
||||
# if any command options
|
||||
opt_dict = self.get_option_dict(command)
|
||||
for (opt, val) in cmd_options.items():
|
||||
opt_dict[opt] = ("setup script", val)
|
||||
|
||||
# Now work on the rest of the attributes. Any attribute that's
|
||||
# not already defined is invalid!
|
||||
|
@ -205,6 +203,19 @@ class Distribution:
|
|||
# __init__ ()
|
||||
|
||||
|
||||
def get_option_dict (self, command):
|
||||
"""Get the option dictionary for a given command. If that
|
||||
command's option dictionary hasn't been created yet, then create it
|
||||
and return the new dictionary; otherwise, return the existing
|
||||
option dictionary.
|
||||
"""
|
||||
|
||||
dict = self.command_options.get(command)
|
||||
if dict is None:
|
||||
dict = self.command_options[command] = {}
|
||||
return dict
|
||||
|
||||
|
||||
# -- Config file finding/parsing methods ---------------------------
|
||||
|
||||
def find_config_files (self):
|
||||
|
@ -266,13 +277,11 @@ class Distribution:
|
|||
parser.read(filename)
|
||||
for section in parser.sections():
|
||||
options = parser.options(section)
|
||||
if not self.command_options.has_key(section):
|
||||
self.command_options[section] = {}
|
||||
opts = self.command_options[section]
|
||||
opt_dict = self.get_option_dict(section)
|
||||
|
||||
for opt in options:
|
||||
if opt != '__name__':
|
||||
opts[opt] = (filename, parser.get(section,opt))
|
||||
opt_dict[opt] = (filename, parser.get(section,opt))
|
||||
|
||||
# Make the ConfigParser forget everything (so we retain
|
||||
# the original filenames that options come from) -- gag,
|
||||
|
@ -409,11 +418,9 @@ class Distribution:
|
|||
|
||||
# Put the options from the command-line into their official
|
||||
# holding pen, the 'command_options' dictionary.
|
||||
if not self.command_options.has_key(command):
|
||||
self.command_options[command] = {}
|
||||
cmd_opts = self.command_options[command]
|
||||
opt_dict = self.get_option_dict(command)
|
||||
for (name, value) in vars(opts).items():
|
||||
cmd_opts[name] = ("command line", value)
|
||||
opt_dict[name] = ("command line", value)
|
||||
|
||||
return args
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue