diff -r aea58e1cae75 Lib/cProfile.py
--- a/Lib/cProfile.py Sun Sep 08 14:14:38 2013 +0200
+++ b/Lib/cProfile.py Sun Sep 08 17:47:48 2013 +0300
@@ -121,38 +121,28 @@
# ____________________________________________________________
def main():
- import os, sys
- from optparse import OptionParser
- usage = "cProfile.py [-o output_file_path] [-s sort] scriptfile [arg] ..."
- parser = OptionParser(usage=usage)
- parser.allow_interspersed_args = False
- parser.add_option('-o', '--outfile', dest="outfile",
- help="Save stats to ", default=None)
- parser.add_option('-s', '--sort', dest="sort",
- help="Sort order when printing to stdout, based on pstats.Stats class",
- default=-1)
+ import argparse, os.path, sys
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-o', '--outfile', dest="outfile",
+ help="Save stats to OUTFILE")
+ parser.add_argument('-s', '--sort', dest="sort", default=-1,
+ help="Sort order when printing to stdout, based on pstats.Stats class")
+ parser.add_argument('scriptfile')
+ parser.add_argument('args', nargs=argparse.REMAINDER)
- if not sys.argv[1:]:
- parser.print_usage()
- sys.exit(2)
-
- (options, args) = parser.parse_args()
- sys.argv[:] = args
-
- if len(args) > 0:
- progname = args[0]
- sys.path.insert(0, os.path.dirname(progname))
- with open(progname, 'rb') as fp:
- code = compile(fp.read(), progname, 'exec')
- globs = {
- '__file__': progname,
- '__name__': '__main__',
- '__package__': None,
- '__cached__': None,
- }
- runctx(code, globs, None, options.outfile, options.sort)
- else:
- parser.print_usage()
+ options = parser.parse_args()
+ sys.argv[:] = [options.scriptfile] + options.args
+ progname = options.scriptfile
+ sys.path.insert(0, os.path.dirname(progname))
+ with open(progname, 'rb') as fp:
+ code = compile(fp.read(), progname, 'exec')
+ globs = {
+ '__file__': progname,
+ '__name__': '__main__',
+ '__package__': None,
+ '__cached__': None,
+ }
+ runctx(code, globs, None, options.outfile, options.sort)
return parser
# When invoked as main program, invoke the profiler on a script
diff -r aea58e1cae75 Lib/profile.py
--- a/Lib/profile.py Sun Sep 08 14:14:38 2013 +0200
+++ b/Lib/profile.py Sun Sep 08 17:47:48 2013 +0300
@@ -25,10 +25,8 @@
import sys
-import os
import time
import marshal
-from optparse import OptionParser
__all__ = ["run", "runctx", "Profile"]
@@ -552,36 +550,28 @@
#****************************************************************************
def main():
- usage = "profile.py [-o output_file_path] [-s sort] scriptfile [arg] ..."
- parser = OptionParser(usage=usage)
- parser.allow_interspersed_args = False
- parser.add_option('-o', '--outfile', dest="outfile",
- help="Save stats to ", default=None)
- parser.add_option('-s', '--sort', dest="sort",
- help="Sort order when printing to stdout, based on pstats.Stats class",
- default=-1)
+ import argparse, os.path
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-o', '--outfile', dest="outfile",
+ help="Save stats to OUTFILE")
+ parser.add_argument('-s', '--sort', dest="sort", default=-1,
+ help="Sort order when printing to stdout, based on pstats.Stats class")
+ parser.add_argument('scriptfile')
+ parser.add_argument('args', nargs=argparse.REMAINDER)
- if not sys.argv[1:]:
- parser.print_usage()
- sys.exit(2)
-
- (options, args) = parser.parse_args()
- sys.argv[:] = args
-
- if len(args) > 0:
- progname = args[0]
- sys.path.insert(0, os.path.dirname(progname))
- with open(progname, 'rb') as fp:
- code = compile(fp.read(), progname, 'exec')
- globs = {
- '__file__': progname,
- '__name__': '__main__',
- '__package__': None,
- '__cached__': None,
- }
- runctx(code, globs, None, options.outfile, options.sort)
- else:
- parser.print_usage()
+ options = parser.parse_args()
+ sys.argv[:] = [options.scriptfile] + options.args
+ progname = options.scriptfile
+ sys.path.insert(0, os.path.dirname(progname))
+ with open(progname, 'rb') as fp:
+ code = compile(fp.read(), progname, 'exec')
+ globs = {
+ '__file__': progname,
+ '__name__': '__main__',
+ '__package__': None,
+ '__cached__': None,
+ }
+ runctx(code, globs, None, options.outfile, options.sort)
return parser
# When invoked as main program, invoke the profiler on a script