This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2015年07月16日 22:43 by Antony.Lee, last changed 2022年04月11日 14:58 by admin. This issue is now closed.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| issue24649.patch | Evan Hubinger, 2015年08月04日 20:55 | review | ||
| Messages (4) | |||
|---|---|---|---|
| msg246834 - (view) | Author: Antony Lee (Antony.Lee) * | Date: 2015年07月16日 22:43 | |
While working on #24644, I noticed that the help for python -mtrace is quite wrong. $ python -mtrace --help Usage: /usr/lib/python3.4/trace.py [OPTIONS] <file> [ARGS] Meta-options: --help Display this help then exit. --version Output version information then exit. Otherwise, exactly one of the following three options must be given: -t, --trace Print each line to sys.stdout before it is executed. -c, --count Count the number of times each line is executed and write the counts to <module>.cover for each module executed, in the module's directory. See also `--coverdir', `--file', `--no-report' below. -l, --listfuncs Keep track of which functions are executed at least once and write the results to sys.stdout after the program exits. -T, --trackcalls Keep track of caller/called pairs and write the results to sys.stdout after the program exits. -r, --report Generate a report from a counts file; do not execute any code. `--file' must specify the results file to read, which must have been created in a previous run with `--count --file=FILE'. <elided modifier flags> 1. Obviously, there are more than 3 options there. 2. Simple testing suggests that it is at least possible to pass both -t and -c simultaneously. I haven't tested other combinations. |
|||
| msg246952 - (view) | Author: Alexander Belopolsky (belopolsky) * (Python committer) | Date: 2015年07月20日 01:39 | |
Maybe it is time to rewrite trace module argument parser using argparse and get an "always correct" auto-generated help for free? |
|||
| msg248003 - (view) | Author: Evan Hubinger (Evan Hubinger) * | Date: 2015年08月04日 20:55 | |
Added a patch that clears up the incorrect help. It now accurately reflects the only constraints that the code actually puts on the arguments:
if listfuncs and (count or trace):
_err_exit("cannot specify both --listfuncs and (--trace or --count)")
if not (count or trace or report or listfuncs or countcallers):
_err_exit("must specify one of --trace, --count, --report, "
"--listfuncs, or --trackcalls")
To reflect both of those constraints, and only those constraints, the part of the help message in question now reads:
Otherwise, at least one of the following options must be given:
-t, --trace Print each line to sys.stdout before it is executed.
-c, --count Count the number of times each line is executed
and write the counts to <module>.cover for each
module executed, in the module's directory.
See also `--coverdir', `--file', `--no-report' below.
-l, --listfuncs Keep track of which functions are executed at least
once and write the results to sys.stdout after the
program exits. Cannot be specified alongside `--trace`
or `--count`.
-T, --trackcalls Keep track of caller/called pairs and write the
results to sys.stdout after the program exits.
-r, --report Generate a report from a counts file; do not execute
any code. `--file' must specify the results file to
read, which must have been created in a previous run
with `--count --file=FILE'.
|
|||
| msg258098 - (view) | Author: SilentGhost (SilentGhost) * (Python triager) | Date: 2016年01月12日 10:17 | |
A re-write using argparse is submitted in the issue22642, that's why I'm closing this issue. Changes from Evan's patch were incorporated in the submitted patch there. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:58:18 | admin | set | github: 68837 |
| 2016年01月12日 10:17:07 | SilentGhost | set | status: open -> closed superseder: trace module: convert to argparse nosy: + SilentGhost messages: + msg258098 type: behavior resolution: out of date stage: needs patch -> resolved |
| 2015年08月04日 20:55:27 | Evan Hubinger | set | files:
+ issue24649.patch nosy: + Evan Hubinger messages: + msg248003 keywords: + patch |
| 2015年07月20日 01:39:08 | belopolsky | set | keywords:
+ easy stage: needs patch messages: + msg246952 versions: + Python 3.6, - Python 3.5 |
| 2015年07月17日 18:09:16 | terry.reedy | set | nosy:
+ belopolsky |
| 2015年07月16日 22:43:05 | Antony.Lee | create | |