mirror of
https://github.com/python/cpython.git
synced 2025-07-24 11:44:31 +00:00
Cleaned up/simplified error-handling:
- DistutilsOptionError is now documented as it's actually used, ie. to indicate bogus option values (usually user options, eg. from the command-line) - added DistutilsSetupError to indicate errors that definitely arise in the setup script - got rid of DistutilsValueError, and changed all usage of it to either DistutilsSetupError or ValueError as appropriate - simplified a bunch of option get/set methods in Command and Distribution classes -- just pass on AttributeError most of the time, rather than turning it into something else
This commit is contained in:
parent
4a3dd2dcc2
commit
02a1a2b077
7 changed files with 52 additions and 79 deletions
|
@ -115,33 +115,33 @@ class build_clib (Command):
|
|||
"""Ensure that the list of libraries (presumably provided as a
|
||||
command option 'libraries') is valid, i.e. it is a list of
|
||||
2-tuples, where the tuples are (library_name, build_info_dict).
|
||||
Raise DistutilsValueError if the structure is invalid anywhere;
|
||||
Raise DistutilsSetupError if the structure is invalid anywhere;
|
||||
just returns otherwise."""
|
||||
|
||||
# Yechh, blecch, ackk: this is ripped straight out of build_ext.py,
|
||||
# with only names changed to protect the innocent!
|
||||
|
||||
if type (libraries) is not ListType:
|
||||
raise DistutilsValueError, \
|
||||
raise DistutilsSetupError, \
|
||||
"'libraries' option must be a list of tuples"
|
||||
|
||||
for lib in libraries:
|
||||
if type (lib) is not TupleType and len (lib) != 2:
|
||||
raise DistutilsValueError, \
|
||||
raise DistutilsSetupError, \
|
||||
"each element of 'libraries' must a 2-tuple"
|
||||
|
||||
if type (lib[0]) is not StringType:
|
||||
raise DistutilsValueError, \
|
||||
raise DistutilsSetupError, \
|
||||
"first element of each tuple in 'libraries' " + \
|
||||
"must be a string (the library name)"
|
||||
if '/' in lib[0] or (os.sep != '/' and os.sep in lib[0]):
|
||||
raise DistutilsValueError, \
|
||||
raise DistutilsSetupError, \
|
||||
("bad library name '%s': " +
|
||||
"may not contain directory separators") % \
|
||||
lib[0]
|
||||
|
||||
if type (lib[1]) is not DictionaryType:
|
||||
raise DistutilsValueError, \
|
||||
raise DistutilsSetupError, \
|
||||
"second element of each tuple in 'libraries' " + \
|
||||
"must be a dictionary (build info)"
|
||||
# for lib
|
||||
|
@ -171,7 +171,7 @@ class build_clib (Command):
|
|||
for (lib_name, build_info) in libraries:
|
||||
sources = build_info.get ('sources')
|
||||
if sources is None or type (sources) not in (ListType, TupleType):
|
||||
raise DistutilsValueError, \
|
||||
raise DistutilsSetupError, \
|
||||
("in 'libraries' option (library '%s'), " +
|
||||
"'sources' must be present and must be " +
|
||||
"a list of source filenames") % lib_name
|
||||
|
|
|
@ -205,26 +205,26 @@ class build_ext (Command):
|
|||
"""Ensure that the list of extensions (presumably provided as a
|
||||
command option 'extensions') is valid, i.e. it is a list of
|
||||
2-tuples, where the tuples are (extension_name, build_info_dict).
|
||||
Raise DistutilsValueError if the structure is invalid anywhere;
|
||||
Raise DistutilsSetupError if the structure is invalid anywhere;
|
||||
just returns otherwise."""
|
||||
|
||||
if type (extensions) is not ListType:
|
||||
raise DistutilsValueError, \
|
||||
raise DistutilsSetupError, \
|
||||
"'ext_modules' option must be a list of tuples"
|
||||
|
||||
for ext in extensions:
|
||||
if type (ext) is not TupleType and len (ext) != 2:
|
||||
raise DistutilsValueError, \
|
||||
raise DistutilsSetupError, \
|
||||
"each element of 'ext_modules' option must be a 2-tuple"
|
||||
|
||||
if not (type (ext[0]) is StringType and
|
||||
extension_name_re.match (ext[0])):
|
||||
raise DistutilsValueError, \
|
||||
raise DistutilsSetupError, \
|
||||
"first element of each tuple in 'ext_modules' " + \
|
||||
"must be the extension name (a string)"
|
||||
|
||||
if type (ext[1]) is not DictionaryType:
|
||||
raise DistutilsValueError, \
|
||||
raise DistutilsSetupError, \
|
||||
"second element of each tuple in 'ext_modules' " + \
|
||||
"must be a dictionary (build info)"
|
||||
|
||||
|
@ -274,7 +274,7 @@ class build_ext (Command):
|
|||
for (extension_name, build_info) in self.extensions:
|
||||
sources = build_info.get ('sources')
|
||||
if sources is None or type (sources) not in (ListType, TupleType):
|
||||
raise DistutilsValueError, \
|
||||
raise DistutilsSetupError, \
|
||||
("in 'ext_modules' option (extension '%s'), " +
|
||||
"'sources' must be present and must be " +
|
||||
"a list of source filenames") % extension_name
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue