diff options
-rw-r--r-- | Lib/distutils/fancy_getopt.py | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/Lib/distutils/fancy_getopt.py b/Lib/distutils/fancy_getopt.py index c63ce61b8e..125dceb3e1 100644 --- a/Lib/distutils/fancy_getopt.py +++ b/Lib/distutils/fancy_getopt.py @@ -47,16 +47,24 @@ def fancy_getopt (options, object, args): attr_name = {} takes_arg = {} - for (long, short, help) in options: + for option in options: + try: + (long, short, help) = option + except ValueError: + raise DistutilsGetoptError, \ + "invalid option tuple " + str (option) + # Type-check the option names if type (long) is not StringType or len (long) < 2: raise DistutilsGetoptError, \ - "long option must be a string of length >= 2" + "long option '%s' must be a string of length >= 2" % \ + long if (not ((short is None) or (type (short) is StringType and len (short) == 1))): raise DistutilsGetoptError, \ - "short option must be None or string of length 1" + "short option '%s' must be None or string of length 1" % \ + short long_opts.append (long) |