Index: Lib/getopt.py =================================================================== --- Lib/getopt.py (revision 87951) +++ Lib/getopt.py (working copy) @@ -34,6 +34,7 @@ __all__ = ["GetoptError","error","getopt","gnu_getopt"] import os +from warnings import warn as _warn class GetoptError(Exception): opt = '' @@ -85,9 +86,9 @@ args = args[1:] break if args[0].startswith('--'): - opts, args = do_longs(opts, args[0][2:], longopts, args[1:]) + opts, args = _do_longs(opts, args[0][2:], longopts, args[1:]) else: - opts, args = do_shorts(opts, args[0][1:], shortopts, args[1:]) + opts, args = _do_shorts(opts, args[0][1:], shortopts, args[1:]) return opts, args @@ -128,9 +129,9 @@ break if args[0][:2] == '--': - opts, args = do_longs(opts, args[0][2:], longopts, args[1:]) + opts, args = _do_longs(opts, args[0][2:], longopts, args[1:]) elif args[0][:1] == '-' and args[0] != '-': - opts, args = do_shorts(opts, args[0][1:], shortopts, args[1:]) + opts, args = _do_shorts(opts, args[0][1:], shortopts, args[1:]) else: if all_options_first: prog_args += args @@ -141,7 +142,7 @@ return opts, prog_args -def do_longs(opts, opt, longopts, args): +def _do_longs(opts, opt, longopts, args): try: i = opt.index('=') except ValueError: @@ -149,7 +150,7 @@ else: opt, optarg = opt[:i], opt[i+1:] - has_arg, opt = long_has_args(opt, longopts) + has_arg, opt = _long_has_args(opt, longopts) if has_arg: if optarg is None: if not args: @@ -163,7 +164,7 @@ # Return: # has_arg? # full option name -def long_has_args(opt, longopts): +def _long_has_args(opt, longopts): possibilities = [o for o in longopts if o.startswith(opt)] if not possibilities: raise GetoptError('option --%s not recognized' % opt, opt) @@ -184,10 +185,10 @@ unique_match = unique_match[:-1] return has_arg, unique_match -def do_shorts(opts, optstring, shortopts, args): +def _do_shorts(opts, optstring, shortopts, args): while optstring != '': opt, optstring = optstring[0], optstring[1:] - if short_has_arg(opt, shortopts): + if _short_has_args(opt, shortopts): if optstring == '': if not args: raise GetoptError('option -%s requires argument' % opt, @@ -199,12 +200,32 @@ opts.append(('-' + opt, optarg)) return opts, args -def short_has_arg(opt, shortopts): +def _short_has_args(opt, shortopts): for i in range(len(shortopts)): if opt == shortopts[i] != ':': return shortopts.startswith(':', i+1) raise GetoptError('option -%s not recognized' % opt, opt) +def do_longs(*args): + _warn("The getopt.do_long() function is deprecated", + DeprecationWarning, 2) + return _do_longs(*args) + +def long_has_args(*args): + _warn("The getopt.long_has_args() function is deprecated", + DeprecationWarning, 2) + return _long_has_args(*args) + +def do_shorts(*args): + _warn("The getopt.do_shorts() function is deprecated", + DeprecationWarning, 2) + return _do_shorts(*args) + +def short_has_args(*args): + _warn("The getopt.short_has_args() function is deprecated", + DeprecationWarning, 2) + return _short_has_args(*args) + if __name__ == '__main__': import sys print(getopt(sys.argv[1:], "a:b", ["alpha=", "beta"])) Index: Lib/test/test_getopt.py =================================================================== --- Lib/test/test_getopt.py (revision 87951) +++ Lib/test/test_getopt.py (working copy) @@ -6,8 +6,6 @@ import getopt -sentinel = object() - class GetoptTests(unittest.TestCase): def setUp(self): self.env = EnvironmentVarGuard() @@ -22,77 +20,77 @@ self.assertRaises(getopt.GetoptError, *args, **kwargs) def test_short_has_arg(self): - self.assertTrue(getopt.short_has_arg('a', 'a:')) - self.assertFalse(getopt.short_has_arg('a', 'a')) - self.assertError(getopt.short_has_arg, 'a', 'b') + self.assertTrue(getopt._short_has_arg('a', 'a:')) + self.assertFalse(getopt._short_has_arg('a', 'a')) + self.assertError(getopt._short_has_arg, 'a', 'b') def test_long_has_args(self): - has_arg, option = getopt.long_has_args('abc', ['abc=']) + has_arg, option = getopt._long_has_args('abc', ['abc=']) self.assertTrue(has_arg) self.assertEqual(option, 'abc') - has_arg, option = getopt.long_has_args('abc', ['abc']) + has_arg, option = getopt._long_has_args('abc', ['abc']) self.assertFalse(has_arg) self.assertEqual(option, 'abc') - has_arg, option = getopt.long_has_args('abc', ['abcd']) + has_arg, option = getopt._long_has_args('abc', ['abcd']) self.assertFalse(has_arg) self.assertEqual(option, 'abcd') - self.assertError(getopt.long_has_args, 'abc', ['def']) - self.assertError(getopt.long_has_args, 'abc', []) - self.assertError(getopt.long_has_args, 'abc', ['abcd','abcde']) + self.assertError(getopt._long_has_args, 'abc', ['def']) + self.assertError(getopt._long_has_args, 'abc', []) + self.assertError(getopt._long_has_args, 'abc', ['abcd','abcde']) def test_do_shorts(self): - opts, args = getopt.do_shorts([], 'a', 'a', []) + opts, args = getopt._do_shorts([], 'a', 'a', []) self.assertEqual(opts, [('-a', '')]) self.assertEqual(args, []) - opts, args = getopt.do_shorts([], 'a1', 'a:', []) + opts, args = getopt._do_shorts([], 'a1', 'a:', []) self.assertEqual(opts, [('-a', '1')]) self.assertEqual(args, []) - #opts, args = getopt.do_shorts([], 'a=1', 'a:', []) + #opts, args = getopt._do_shorts([], 'a=1', 'a:', []) #self.assertEqual(opts, [('-a', '1')]) #self.assertEqual(args, []) - opts, args = getopt.do_shorts([], 'a', 'a:', ['1']) + opts, args = getopt._do_shorts([], 'a', 'a:', ['1']) self.assertEqual(opts, [('-a', '1')]) self.assertEqual(args, []) - opts, args = getopt.do_shorts([], 'a', 'a:', ['1', '2']) + opts, args = getopt._do_shorts([], 'a', 'a:', ['1', '2']) self.assertEqual(opts, [('-a', '1')]) self.assertEqual(args, ['2']) - self.assertError(getopt.do_shorts, [], 'a1', 'a', []) - self.assertError(getopt.do_shorts, [], 'a', 'a:', []) + self.assertError(getopt._do_shorts, [], 'a1', 'a', []) + self.assertError(getopt._do_shorts, [], 'a', 'a:', []) def test_do_longs(self): - opts, args = getopt.do_longs([], 'abc', ['abc'], []) + opts, args = getopt._do_longs([], 'abc', ['abc'], []) self.assertEqual(opts, [('--abc', '')]) self.assertEqual(args, []) - opts, args = getopt.do_longs([], 'abc=1', ['abc='], []) + opts, args = getopt._do_longs([], 'abc=1', ['abc='], []) self.assertEqual(opts, [('--abc', '1')]) self.assertEqual(args, []) - opts, args = getopt.do_longs([], 'abc=1', ['abcd='], []) + opts, args = getopt._do_longs([], 'abc=1', ['abcd='], []) self.assertEqual(opts, [('--abcd', '1')]) self.assertEqual(args, []) - opts, args = getopt.do_longs([], 'abc', ['ab', 'abc', 'abcd'], []) + opts, args = getopt._do_longs([], 'abc', ['ab', 'abc', 'abcd'], []) self.assertEqual(opts, [('--abc', '')]) self.assertEqual(args, []) # Much like the preceding, except with a non-alpha character ("-") in # option name that precedes "="; failed in # http://python.org/sf/126863 - opts, args = getopt.do_longs([], 'foo=42', ['foo-bar', 'foo=',], []) + opts, args = getopt._do_longs([], 'foo=42', ['foo-bar', 'foo=',], []) self.assertEqual(opts, [('--foo', '42')]) self.assertEqual(args, []) - self.assertError(getopt.do_longs, [], 'abc=1', ['abc'], []) - self.assertError(getopt.do_longs, [], 'abc', ['abc='], []) + self.assertError(getopt._do_longs, [], 'abc=1', ['abc'], []) + self.assertError(getopt._do_longs, [], 'abc', ['abc='], []) def test_getopt(self): # note: the empty string between '-a' and '--beta' is significant: