Skip to content

Commit dc46fb7

Browse files
cchung100msrowen
authored andcommitted
[SPARK-26822] Upgrade the deprecated module 'optparse'
Follow the [official document](https://docs.python.org/2/library/argparse.html#upgrading-optparse-code) to upgrade the deprecated module 'optparse' to 'argparse'. ## What changes were proposed in this pull request? This PR proposes to replace 'optparse' module with 'argparse' module. ## How was this patch tested? Follow the [previous testing](7e3eb3c), manually tested and negative tests were also done. My [test results](https://gist.github.com/cchung100m/1661e7df6e8b66940a6e52a20861f61d) Closes #23730 from cchung100m/solve_deprecated_module_optparse. Authored-by: cchung100m <cchung100m@cs.ccu.edu.tw> Signed-off-by: Sean Owen <sean.owen@databricks.com>
1 parent b8d6669 commit dc46fb7

File tree

2 files changed

+31
-31
lines changed

2 files changed

+31
-31
lines changed

dev/run-tests.py

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
from __future__ import print_function
2121
import itertools
22-
from optparse import OptionParser
22+
from argparse import ArgumentParser
2323
import os
2424
import random
2525
import re
@@ -484,20 +484,20 @@ def run_sparkr_tests():
484484

485485

486486
def parse_opts():
487-
parser = OptionParser(
487+
parser = ArgumentParser(
488488
prog="run-tests"
489489
)
490-
parser.add_option(
491-
"-p", "--parallelism", type="int", default=8,
492-
help="The number of suites to test in parallel (default %default)"
490+
parser.add_argument(
491+
"-p", "--parallelism", type=int, default=8,
492+
help="The number of suites to test in parallel (default %(default)d)"
493493
)
494494

495-
(opts, args) = parser.parse_args()
496-
if args:
497-
parser.error("Unsupported arguments: %s" % ' '.join(args))
498-
if opts.parallelism < 1:
495+
args, unknown = parser.parse_known_args()
496+
if unknown:
497+
parser.error("Unsupported arguments: %s" % ' '.join(unknown))
498+
if args.parallelism < 1:
499499
parser.error("Parallelism cannot be less than 1")
500-
return opts
500+
return args
501501

502502

503503
def main():
@@ -636,6 +636,7 @@ def _test():
636636
if failure_count:
637637
sys.exit(-1)
638638

639+
639640
if __name__ == "__main__":
640641
_test()
641642
main()

python/run-tests.py

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
from __future__ import print_function
2121
import logging
22-
from optparse import OptionParser, OptionGroup
22+
from argparse import ArgumentParser
2323
import os
2424
import re
2525
import shutil
@@ -168,30 +168,30 @@ def get_default_python_executables():
168168

169169

170170
def parse_opts():
171-
parser = OptionParser(
171+
parser = ArgumentParser(
172172
prog="run-tests"
173173
)
174-
parser.add_option(
175-
"--python-executables", type="string", default=','.join(get_default_python_executables()),
176-
help="A comma-separated list of Python executables to test against (default: %default)"
174+
parser.add_argument(
175+
"--python-executables", type=str, default=','.join(get_default_python_executables()),
176+
help="A comma-separated list of Python executables to test against (default: %(default)s)"
177177
)
178-
parser.add_option(
179-
"--modules", type="string",
178+
parser.add_argument(
179+
"--modules", type=str,
180180
default=",".join(sorted(python_modules.keys())),
181-
help="A comma-separated list of Python modules to test (default: %default)"
181+
help="A comma-separated list of Python modules to test (default: %(default)s)"
182182
)
183-
parser.add_option(
184-
"-p", "--parallelism", type="int", default=4,
185-
help="The number of suites to test in parallel (default %default)"
183+
parser.add_argument(
184+
"-p", "--parallelism", type=int, default=4,
185+
help="The number of suites to test in parallel (default %(default)d)"
186186
)
187-
parser.add_option(
187+
parser.add_argument(
188188
"--verbose", action="store_true",
189189
help="Enable additional debug logging"
190190
)
191191

192-
group = OptionGroup(parser, "Developer Options")
193-
group.add_option(
194-
"--testnames", type="string",
192+
group = parser.add_argument_group("Developer Options")
193+
group.add_argument(
194+
"--testnames", type=str,
195195
default=None,
196196
help=(
197197
"A comma-separated list of specific modules, classes and functions of doctest "
@@ -201,14 +201,13 @@ def parse_opts():
201201
"'pyspark.sql.tests FooTests.test_foo' to run the specific unittest in the class. "
202202
"'--modules' option is ignored if they are given.")
203203
)
204-
parser.add_option_group(group)
205204

206-
(opts, args) = parser.parse_args()
207-
if args:
208-
parser.error("Unsupported arguments: %s" % ' '.join(args))
209-
if opts.parallelism < 1:
205+
args, unknown = parser.parse_known_args()
206+
if unknown:
207+
parser.error("Unsupported arguments: %s" % ' '.join(unknown))
208+
if args.parallelism < 1:
210209
parser.error("Parallelism cannot be less than 1")
211-
return opts
210+
return args
212211

213212

214213
def _check_coverage(python_exec):

0 commit comments

Comments
 (0)