[Distutils] extended options not overriding user-specified values
Steven Knight
knight@baldmt.com
Fri Jan 31 23:31:15 2003
I'm trying to extend the install, install_lib and install_scripts
commands in distutils to support some extra options that, when
specified, will let me select some intelligent defaults for attributes
like install_lib and install_scripts.
I've figured out that I can extend the recognized options by subclassing
the command classes along the following lines:
class install(distutils.command.install.install):
boolean_options = _install.boolean_options + [ 'my-new-option' ]
def initialize_options(self):
_install.initialize_options(self)
self.my_new_option = 0
def finalize_options(self):
_install.finalize_options(self)
# manipulate attributes based on my_new_option
But here's the part that has me baffled: Since the point of
"my_new_option" above is to select intelligent defaults for install_lib
and install_scripts, I *don't* want to override the user who explicitly
specifies "--install-{lib,scripts}=/some/dir" on the command line.
So... is there any way can I tell, in my finalize_options(), whether
install_lib and install_scripts were set by the user or not?
I've picked my way through the code, but I don't see anything that
seems to support this directly. Perhaps there's a way I could use
parse_command_line() or _parse_command_opts() to figure this out? If
not, I suppose I could always do it by hand, too...
I'd rather not code up one solution only to find that I just didn't
grok that there was a better one staring me in the face. Any advice or
pointers would be appreciated. Thanks!
--SK