summaryrefslogtreecommitdiffstats
path: root/Python/initconfig.c
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2024-02-23 09:27:07 (GMT)
committerGitHub <noreply@github.com>2024-02-23 09:27:07 (GMT)
commit2e92ffd7fa89e3bd33ee2f31541d3dc53aaa2d12 (patch)
tree53df7e88bb7d4911ab07abb2afd80c27699038d1 /Python/initconfig.c
parente3f462c9a73d2a6e79aacce7f25aaac361c2d743 (diff)
downloadcpython-2e92ffd7fa89e3bd33ee2f31541d3dc53aaa2d12.zip
cpython-2e92ffd7fa89e3bd33ee2f31541d3dc53aaa2d12.tar.gz
cpython-2e92ffd7fa89e3bd33ee2f31541d3dc53aaa2d12.tar.bz2
gh-90300: Reformat the Python CLI help output (GH-93415)
Diffstat (limited to 'Python/initconfig.c')
-rw-r--r--Python/initconfig.c214
1 files changed, 106 insertions, 108 deletions
diff --git a/Python/initconfig.c b/Python/initconfig.c
index a6d8c17..74f28f3 100644
--- a/Python/initconfig.c
+++ b/Python/initconfig.c
@@ -153,7 +153,8 @@ Options (and corresponding environment variables):\n\
.pyc extension; also PYTHONOPTIMIZE=x\n\
-OO : do -O changes and also discard docstrings; add .opt-2 before\n\
.pyc extension\n\
--P : don't prepend a potentially unsafe path to sys.path; also PYTHONSAFEPATH\n\
+-P : don't prepend a potentially unsafe path to sys.path; also\n\
+ PYTHONSAFEPATH\n\
-q : don't print version and copyright messages on interactive startup\n\
-s : don't add user site directory to sys.path; also PYTHONNOUSERSITE\n\
-S : don't imply 'import site' on initialization\n\
@@ -169,9 +170,10 @@ Options (and corresponding environment variables):\n\
-X opt : set implementation-specific option\n\
--check-hash-based-pycs always|default|never:\n\
control how Python invalidates hash-based .pyc files\n\
---help-env : print help about Python environment variables and exit\n\
---help-xoptions : print help about implementation-specific -X options and exit\n\
---help-all : print complete help information and exit\n\
+--help-env: print help about Python environment variables and exit\n\
+--help-xoptions: print help about implementation-specific -X options and exit\n\
+--help-all: print complete help information and exit\n\
+\n\
Arguments:\n\
file : program read from script file\n\
- : program read from stdin (default; interactive mode if a tty)\n\
@@ -180,73 +182,61 @@ arg ...: arguments passed to program in sys.argv[1:]\n\
static const char usage_xoptions[] = "\
The following implementation-specific options are available:\n\
-\n\
-X faulthandler: enable faulthandler\n\
-\n\
-X showrefcount: output the total reference count and number of used\n\
- memory blocks when the program finishes or after each statement in the\n\
- interactive interpreter. This only works on debug builds\n\
-\n\
+ memory blocks when the program finishes or after each statement in\n\
+ the interactive interpreter. This only works on debug builds\n\
-X tracemalloc: start tracing Python memory allocations using the\n\
- tracemalloc module. By default, only the most recent frame is stored in a\n\
- traceback of a trace. Use -X tracemalloc=NFRAME to start tracing with a\n\
- traceback limit of NFRAME frames\n\
-\n\
--X importtime: show how long each import takes. It shows module name,\n\
- cumulative time (including nested imports) and self time (excluding\n\
- nested imports). Note that its output may be broken in multi-threaded\n\
- application. Typical usage is python3 -X importtime -c 'import asyncio'\n\
-\n\
--X dev: enable CPython's \"development mode\", introducing additional runtime\n\
- checks which are too expensive to be enabled by default. Effect of the\n\
- developer mode:\n\
- * Add default warning filter, as -W default\n\
- * Install debug hooks on memory allocators: see the PyMem_SetupDebugHooks()\n\
- C function\n\
- * Enable the faulthandler module to dump the Python traceback on a crash\n\
- * Enable asyncio debug mode\n\
- * Set the dev_mode attribute of sys.flags to True\n\
- * io.IOBase destructor logs close() exceptions\n\
-\n\
--X utf8: enable UTF-8 mode for operating system interfaces, overriding the default\n\
- locale-aware mode. -X utf8=0 explicitly disables UTF-8 mode (even when it would\n\
- otherwise activate automatically)\n\
-\n\
--X pycache_prefix=PATH: enable writing .pyc files to a parallel tree rooted at the\n\
- given directory instead of to the code tree\n\
-\n\
+ tracemalloc module. By default, only the most recent frame is stored\n\
+ in a traceback of a trace. Use -X tracemalloc=NFRAME to start\n\
+ tracing with a traceback limit of NFRAME frames\n\
+-X importtime: show how long each import takes. It shows module name,\n\
+ cumulative time (including nested imports) and self time (excluding\n\
+ nested imports). Note that its output may be broken in\n\
+ multi-threaded application.\n\
+ Typical usage is python3 -X importtime -c 'import asyncio'\n\
+-X dev : enable CPython's \"development mode\", introducing additional runtime\n\
+ checks which are too expensive to be enabled by default. Effect of\n\
+ the developer mode:\n\
+ * Add default warning filter, as -W default\n\
+ * Install debug hooks on memory allocators: see the\n\
+ PyMem_SetupDebugHooks() C function\n\
+ * Enable the faulthandler module to dump the Python traceback on\n\
+ a crash\n\
+ * Enable asyncio debug mode\n\
+ * Set the dev_mode attribute of sys.flags to True\n\
+ * io.IOBase destructor logs close() exceptions\n\
+-X utf8: enable UTF-8 mode for operating system interfaces, overriding the\n\
+ default locale-aware mode. -X utf8=0 explicitly disables UTF-8 mode\n\
+ (even when it would otherwise activate automatically)\n\
+-X pycache_prefix=PATH: enable writing .pyc files to a parallel tree rooted\n\
+ at the given directory instead of to the code tree\n\
-X warn_default_encoding: enable opt-in EncodingWarning for 'encoding=None'\n\
-\n\
--X no_debug_ranges: disable the inclusion of the tables mapping extra location \n\
- information (end line, start column offset and end column offset) to every \n\
- instruction in code objects. This is useful when smaller code objects and pyc \n\
- files are desired as well as suppressing the extra visual location indicators \n\
- when the interpreter displays tracebacks.\n\
-\n\
--X perf: activate support for the Linux \"perf\" profiler by activating the \"perf\"\n\
- trampoline. When this option is activated, the Linux \"perf\" profiler will be \n\
- able to report Python calls. This option is only available on some platforms and will \n\
- do nothing if is not supported on the current system. The default value is \"off\".\n\
-\n\
+-X no_debug_ranges: disable the inclusion of the tables mapping extra location\n\
+ information (end line, start column offset and end column offset) to\n\
+ every instruction in code objects. This is useful when smaller code\n\
+ objects and pyc files are desired as well as suppressing the extra\n\
+ visual location indicators when the interpreter displays tracebacks.\n\
+-X perf: activate support for the Linux \"perf\" profiler by activating the\n\
+ \"perf\" trampoline. When this option is activated, the Linux \"perf\"\n\
+ profiler will be able to report Python calls. This option is only\n\
+ available on some platforms and will do nothing if is not supported\n\
+ on the current system. The default value is \"off\".\n\
-X frozen_modules=[on|off]: whether or not frozen modules should be used.\n\
- The default is \"on\" (or \"off\" if you are running a local build).\n\
-\n\
+ The default is \"on\" (or \"off\" if you are running a local build).\n\
-X int_max_str_digits=number: limit the size of int<->str conversions.\n\
- This helps avoid denial of service attacks when parsing untrusted data.\n\
- The default is sys.int_info.default_max_str_digits. 0 disables.\n\
-\n\
+ This helps avoid denial of service attacks when parsing untrusted\n\
+ data. The default is sys.int_info.default_max_str_digits.\n\
+ 0 disables.\n\
-X cpu_count=[n|default]: Override the return value of os.cpu_count(),\n\
- os.process_cpu_count(), and multiprocessing.cpu_count(). This can help users who need\n\
- to limit resources in a container."
-
+ os.process_cpu_count(), and multiprocessing.cpu_count(). This can\n\
+ help users who need to limit resources in a container."
#ifdef Py_STATS
"\n\
-\n\
-X pystats: Enable pystats collection at startup."
#endif
#ifdef Py_DEBUG
"\n\
-\n\
-X presite=package.module: import this module before site.py is run."
#endif
;
@@ -254,65 +244,73 @@ The following implementation-specific options are available:\n\
/* Envvars that don't have equivalent command-line options are listed first */
static const char usage_envvars[] =
"Environment variables that change behavior:\n"
-"PYTHONSTARTUP: file executed on interactive startup (no default)\n"
-"PYTHONPATH : '%lc'-separated list of directories prefixed to the\n"
-" default module search path. The result is sys.path.\n"
-"PYTHONHOME : alternate <prefix> directory (or <prefix>%lc<exec_prefix>).\n"
-" The default module search path uses %s.\n"
-"PYTHONPLATLIBDIR : override sys.platlibdir.\n"
-"PYTHONCASEOK : ignore case in 'import' statements (Windows).\n"
-"PYTHONUTF8: if set to 1, enable the UTF-8 mode.\n"
+"PYTHONSTARTUP : file executed on interactive startup (no default)\n"
+"PYTHONPATH : '%lc'-separated list of directories prefixed to the\n"
+" default module search path. The result is sys.path.\n"
+"PYTHONHOME : alternate <prefix> directory (or <prefix>%lc<exec_prefix>).\n"
+" The default module search path uses %s.\n"
+"PYTHONPLATLIBDIR: override sys.platlibdir.\n"
+"PYTHONCASEOK : ignore case in 'import' statements (Windows).\n"
+"PYTHONUTF8 : if set to 1, enable the UTF-8 mode.\n"
"PYTHONIOENCODING: Encoding[:errors] used for stdin/stdout/stderr.\n"
"PYTHONFAULTHANDLER: dump the Python traceback on fatal errors.\n"
-"PYTHONHASHSEED: if this variable is set to 'random', a random value is used\n"
-" to seed the hashes of str and bytes objects. It can also be set to an\n"
-" integer in the range [0,4294967295] to get hash values with a\n"
-" predictable seed.\n"
+"PYTHONHASHSEED : if this variable is set to 'random', a random value is used\n"
+" to seed the hashes of str and bytes objects. It can also be\n"
+" set to an integer in the range [0,4294967295] to get hash\n"
+" values with a predictable seed.\n"
"PYTHONINTMAXSTRDIGITS: limits the maximum digit characters in an int value\n"
-" when converting from a string and when converting an int back to a str.\n"
-" A value of 0 disables the limit. Conversions to or from bases 2, 4, 8,\n"
-" 16, and 32 are never limited.\n"
-"PYTHONMALLOC: set the Python memory allocators and/or install debug hooks\n"
-" on Python memory allocators. Use PYTHONMALLOC=debug to install debug\n"
-" hooks.\n"
+" when converting from a string and when converting an int\n"
+" back to a str. A value of 0 disables the limit.\n"
+" Conversions to or from bases 2, 4, 8, 16, and 32 are never\n"
+" limited.\n"
+"PYTHONMALLOC : set the Python memory allocators and/or install debug hooks\n"
+" on Python memory allocators. Use PYTHONMALLOC=debug to\n"
+" install debug hooks.\n"
"PYTHONCOERCECLOCALE: if this variable is set to 0, it disables the locale\n"
-" coercion behavior. Use PYTHONCOERCECLOCALE=warn to request display of\n"
-" locale coercion and locale compatibility warnings on stderr.\n"
+" coercion behavior. Use PYTHONCOERCECLOCALE=warn to request\n"
+" display of locale coercion and locale compatibility warnings\n"
+" on stderr.\n"
"PYTHONBREAKPOINT: if this variable is set to 0, it disables the default\n"
-" debugger. It can be set to the callable of your debugger of choice.\n"
+" debugger. It can be set to the callable of your debugger of\n"
+" choice.\n"
"PYTHON_CPU_COUNT: Overrides the return value of os.process_cpu_count(),\n"
-" os.cpu_count(), and multiprocessing.cpu_count() if set to a positive integer.\n"
-"PYTHONDEVMODE: enable the development mode.\n"
+" os.cpu_count(), and multiprocessing.cpu_count() if set to\n"
+" a positive integer.\n"
+"PYTHONDEVMODE : enable the development mode.\n"
"PYTHONPYCACHEPREFIX: root directory for bytecode cache (pyc) files.\n"
"PYTHONWARNDEFAULTENCODING: enable opt-in EncodingWarning for 'encoding=None'.\n"
-"PYTHONNODEBUGRANGES: if this variable is set, it disables the inclusion of the \n"
-" tables mapping extra location information (end line, start column offset \n"
-" and end column offset) to every instruction in code objects. This is useful \n"
-" when smaller code objects and pyc files are desired as well as suppressing the \n"
-" extra visual location indicators when the interpreter displays tracebacks.\n"
-"PYTHON_FROZEN_MODULES : if this variable is set, it determines whether or not \n"
-" frozen modules should be used. The default is \"on\" (or \"off\" if you are \n"
-" running a local build).\n"
-"PYTHON_COLORS : If this variable is set to 1, the interpreter will"
-" colorize various kinds of output. Setting it to 0 deactivates this behavior.\n"
-"PYTHON_HISTORY : the location of a .python_history file.\n"
-"These variables have equivalent command-line parameters (see --help for details):\n"
-"PYTHONDEBUG : enable parser debug mode (-d)\n"
-"PYTHONDONTWRITEBYTECODE : don't write .pyc files (-B)\n"
-"PYTHONINSPECT : inspect interactively after running script (-i)\n"
-"PYTHONINTMAXSTRDIGITS : limit max digit characters in an int value\n"
-" (-X int_max_str_digits=number)\n"
-"PYTHONNOUSERSITE : disable user site directory (-s)\n"
-"PYTHONOPTIMIZE : enable level 1 optimizations (-O)\n"
-"PYTHONSAFEPATH : don't prepend a potentially unsafe path to sys.path (-P)\n"
-"PYTHONUNBUFFERED : disable stdout/stderr buffering (-u)\n"
-"PYTHONVERBOSE : trace import statements (-v)\n"
-"PYTHONWARNINGS=arg : warning control (-W arg)\n"
+"PYTHONNODEBUGRANGES: if this variable is set, it disables the inclusion of\n"
+" the tables mapping extra location information (end line,\n"
+" start column offset and end column offset) to every\n"
+" instruction in code objects. This is useful when smaller\n"
+" code objects and pyc files are desired as well as\n"
+" suppressing the extra visual location indicators when the\n"
+" interpreter displays tracebacks.\n"
+"PYTHON_FROZEN_MODULES: if this variable is set, it determines whether or not\n"
+" frozen modules should be used. The default is \"on\" (or\n"
+" \"off\" if you are running a local build).\n"
+"PYTHON_COLORS : if this variable is set to 1, the interpreter will colorize\n"
+" various kinds of output. Setting it to 0 deactivates\n"
+" this behavior.\n"
+"PYTHON_HISTORY : the location of a .python_history file.\n"
+"\n"
+"These variables have equivalent command-line options (see --help for details):\n"
+"PYTHONDEBUG : enable parser debug mode (-d)\n"
+"PYTHONDONTWRITEBYTECODE: don't write .pyc files (-B)\n"
+"PYTHONINSPECT : inspect interactively after running script (-i)\n"
+"PYTHONINTMAXSTRDIGITS: limit max digit characters in an int value\n"
+" (-X int_max_str_digits=number)\n"
+"PYTHONNOUSERSITE: disable user site directory (-s)\n"
+"PYTHONOPTIMIZE : enable level 1 optimizations (-O)\n"
+"PYTHONSAFEPATH : don't prepend a potentially unsafe path to sys.path.\n"
+"PYTHONUNBUFFERED: disable stdout/stderr buffering (-u)\n"
+"PYTHONVERBOSE : trace import statements (-v)\n"
+"PYTHONWARNINGS=arg: warning control (-W arg)\n"
#ifdef Py_STATS
-"PYTHONSTATS : turns on statistics gathering\n"
+"PYTHONSTATS : turns on statistics gathering\n"
#endif
#ifdef Py_DEBUG
-"PYTHON_PRESITE=pkg.mod : import this module before site.py is run\n"
+"PYTHON_PRESITE=pkg.mod: import this module before site.py is run\n"
#endif
;
@@ -2387,9 +2385,9 @@ static void
config_complete_usage(const wchar_t* program)
{
config_usage(0, program);
- puts("\n");
+ putchar('\n');
config_envvars_usage();
- puts("\n");
+ putchar('\n');
config_xoptions_usage();
}