* [PATCH] perf test: Replace optparse with argparse in attr.py
@ 2026-10-01 15:52 Leo Yan
2026-10-01 16:20 ` Ian Rogers
0 siblings, 1 reply; 3+ messages in thread
From: Leo Yan @ 2026-10-01 15:52 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo, Namhyung Kim, Jiri Olsa, Ian Rogers,
Adrian Hunter, James Clark
Cc: linux-perf-users, linux-kernel, Leo Yan
Depending on the Python and pylint versions, pylint can report that
optparse is deprecated and fail the lint check. Use argparse to avoid
this potential warning.
Preserve the existing options and defaults, and let argparse handle
help and unexpected positional arguments.
Tested with:
# ./perf test -v 'Perf attribute expectations test'
78: Perf attribute expectations test : Ok
Suggested-by: Ian Rogers <irogers@google.com>
Signed-off-by: Leo Yan <leo.yan@arm.com>
---
tools/perf/tests/shell/lib/attr.py | 37 ++++++++++++++-----------------------
1 file changed, 14 insertions(+), 23 deletions(-)
diff --git a/tools/perf/tests/shell/lib/attr.py b/tools/perf/tests/shell/lib/attr.py
index 7f3d5b64b00dd7de45baff4f7d9baff89e003147..68f06df9565a081174c788b964a5b051fdedf626 100644
--- a/tools/perf/tests/shell/lib/attr.py
+++ b/tools/perf/tests/shell/lib/attr.py
@@ -4,7 +4,7 @@ import configparser
import os
import sys
import glob
-import optparse
+import argparse
import platform
import tempfile
import logging
@@ -426,29 +426,20 @@ def setup_log(verbose):
ch.setFormatter(formatter)
log.addHandler(ch)
-USAGE = '''%s [OPTIONS]
- -d dir # tests dir
- -p path # perf binary
- -t test # single test
- -v # verbose level
-''' % sys.argv[0]
-
def main():
- parser = optparse.OptionParser(usage=USAGE)
-
- parser.add_option("-t", "--test",
- action="store", type="string", dest="test")
- parser.add_option("-d", "--test-dir",
- action="store", type="string", dest="test_dir")
- parser.add_option("-p", "--perf",
- action="store", type="string", dest="perf")
- parser.add_option("-v", "--verbose",
- default=0, action="count", dest="verbose")
-
- options, args = parser.parse_args()
- if args:
- parser.error('FAILED wrong arguments %s' % ' '.join(args))
- return -1
+ parser = argparse.ArgumentParser()
+
+ parser.add_argument("-t", "--test",
+ action="store", dest="test", help="single test")
+ parser.add_argument("-d", "--test-dir",
+ action="store", dest="test_dir", help="tests dir")
+ parser.add_argument("-p", "--perf",
+ action="store", dest="perf", help="perf binary")
+ parser.add_argument("-v", "--verbose",
+ default=0, action="count", dest="verbose",
+ help="verbose level")
+
+ options = parser.parse_args()
setup_log(options.verbose)
---
base-commit: 705da5b15ab89ba97b11eedbe507c2fd83d31cb9
change-id: 20261001-perf_replace_optparse_with_argparse-e7f51849a08c
Best regards,
--
Leo Yan <leo.yan@arm.com>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] perf test: Replace optparse with argparse in attr.py
2026-10-01 15:52 [PATCH] perf test: Replace optparse with argparse in attr.py Leo Yan
@ 2026-10-01 16:20 ` Ian Rogers
2026-10-02 7:52 ` Leo Yan
0 siblings, 1 reply; 3+ messages in thread
From: Ian Rogers @ 2026-10-01 16:20 UTC (permalink / raw)
To: Leo Yan
Cc: Arnaldo Carvalho de Melo, Namhyung Kim, Jiri Olsa, Adrian Hunter,
James Clark, linux-perf-users, linux-kernel
On Thu, Oct 1, 2026 at 8:52 AM Leo Yan <leo.yan@arm.com> wrote:
>
> Depending on the Python and pylint versions, pylint can report that
> optparse is deprecated and fail the lint check. Use argparse to avoid
> this potential warning.
>
> Preserve the existing options and defaults, and let argparse handle
> help and unexpected positional arguments.
>
> Tested with:
>
> # ./perf test -v 'Perf attribute expectations test'
> 78: Perf attribute expectations test : Ok
>
> Suggested-by: Ian Rogers <irogers@google.com>
> Signed-off-by: Leo Yan <leo.yan@arm.com>
Hi Leo, thanks for the fix! I see Arnaldo already took this equivalent change:
https://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next.git/commit/?h=tmp.perf-tools-next&id=cd116fcbc0bec7340a659e62210b963c49f93c1e
Sorry for the extra work, but again thanks!
Ian
> ---
> tools/perf/tests/shell/lib/attr.py | 37 ++++++++++++++-----------------------
> 1 file changed, 14 insertions(+), 23 deletions(-)
>
> diff --git a/tools/perf/tests/shell/lib/attr.py b/tools/perf/tests/shell/lib/attr.py
> index 7f3d5b64b00dd7de45baff4f7d9baff89e003147..68f06df9565a081174c788b964a5b051fdedf626 100644
> --- a/tools/perf/tests/shell/lib/attr.py
> +++ b/tools/perf/tests/shell/lib/attr.py
> @@ -4,7 +4,7 @@ import configparser
> import os
> import sys
> import glob
> -import optparse
> +import argparse
> import platform
> import tempfile
> import logging
> @@ -426,29 +426,20 @@ def setup_log(verbose):
> ch.setFormatter(formatter)
> log.addHandler(ch)
>
> -USAGE = '''%s [OPTIONS]
> - -d dir # tests dir
> - -p path # perf binary
> - -t test # single test
> - -v # verbose level
> -''' % sys.argv[0]
> -
> def main():
> - parser = optparse.OptionParser(usage=USAGE)
> -
> - parser.add_option("-t", "--test",
> - action="store", type="string", dest="test")
> - parser.add_option("-d", "--test-dir",
> - action="store", type="string", dest="test_dir")
> - parser.add_option("-p", "--perf",
> - action="store", type="string", dest="perf")
> - parser.add_option("-v", "--verbose",
> - default=0, action="count", dest="verbose")
> -
> - options, args = parser.parse_args()
> - if args:
> - parser.error('FAILED wrong arguments %s' % ' '.join(args))
> - return -1
> + parser = argparse.ArgumentParser()
> +
> + parser.add_argument("-t", "--test",
> + action="store", dest="test", help="single test")
> + parser.add_argument("-d", "--test-dir",
> + action="store", dest="test_dir", help="tests dir")
> + parser.add_argument("-p", "--perf",
> + action="store", dest="perf", help="perf binary")
> + parser.add_argument("-v", "--verbose",
> + default=0, action="count", dest="verbose",
> + help="verbose level")
> +
> + options = parser.parse_args()
>
> setup_log(options.verbose)
>
>
> ---
> base-commit: 705da5b15ab89ba97b11eedbe507c2fd83d31cb9
> change-id: 20261001-perf_replace_optparse_with_argparse-e7f51849a08c
>
> Best regards,
> --
> Leo Yan <leo.yan@arm.com>
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] perf test: Replace optparse with argparse in attr.py
2026-10-01 16:20 ` Ian Rogers
@ 2026-10-02 7:52 ` Leo Yan
0 siblings, 0 replies; 3+ messages in thread
From: Leo Yan @ 2026-10-02 7:52 UTC (permalink / raw)
To: Ian Rogers
Cc: Arnaldo Carvalho de Melo, Namhyung Kim, Jiri Olsa, Adrian Hunter,
James Clark, linux-perf-users, linux-kernel
On Thu, Oct 01, 2026 at 09:20:20AM -0700, Ian Rogers wrote:
> On Thu, Oct 1, 2026 at 8:52 AM Leo Yan <leo.yan@arm.com> wrote:
> >
> > Depending on the Python and pylint versions, pylint can report that
> > optparse is deprecated and fail the lint check. Use argparse to avoid
> > this potential warning.
> >
> > Preserve the existing options and defaults, and let argparse handle
> > help and unexpected positional arguments.
> >
> > Tested with:
> >
> > # ./perf test -v 'Perf attribute expectations test'
> > 78: Perf attribute expectations test : Ok
> >
> > Suggested-by: Ian Rogers <irogers@google.com>
> > Signed-off-by: Leo Yan <leo.yan@arm.com>
>
> Hi Leo, thanks for the fix! I see Arnaldo already took this equivalent change:
> https://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next.git/commit/?h=tmp.perf-tools-next&id=cd116fcbc0bec7340a659e62210b963c49f93c1e
>
> Sorry for the extra work, but again thanks!
It is fine, thanks let me know.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-10-02 7:52 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-01 15:52 [PATCH] perf test: Replace optparse with argparse in attr.py Leo Yan
2026-10-01 16:20 ` Ian Rogers
2026-10-02 7:52 ` Leo Yan
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®