aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/tools/python3/Python/initconfig.c
diff options
context:
space:
mode:
authorAlexander Smirnov <alex@ydb.tech>2024-05-06 12:56:16 +0000
committerAlexander Smirnov <alex@ydb.tech>2024-05-06 12:56:16 +0000
commitf92674dbdb92b9e717f952166ffa8307beec4251 (patch)
tree90180e24c75a6be69d35b81d2ec58395a8380c78 /contrib/tools/python3/Python/initconfig.c
parentda52d326c570ca0b3284ba4bb5f1a380360afaf5 (diff)
parent86fa90c3f199cb8af7bb07188a11da49f5e8e984 (diff)
downloadydb-f92674dbdb92b9e717f952166ffa8307beec4251.tar.gz
Merge branch 'rightlib' into mergelibs-240506-1255
Diffstat (limited to 'contrib/tools/python3/Python/initconfig.c')
-rw-r--r--contrib/tools/python3/Python/initconfig.c199
1 files changed, 87 insertions, 112 deletions
diff --git a/contrib/tools/python3/Python/initconfig.c b/contrib/tools/python3/Python/initconfig.c
index a1256a542a..4cf56864fe 100644
--- a/contrib/tools/python3/Python/initconfig.c
+++ b/contrib/tools/python3/Python/initconfig.c
@@ -33,8 +33,8 @@ static const char usage_line[] =
/* Lines sorted by option name; keep in sync with usage_envvars* below */
static const char usage_help[] = "\
Options (and corresponding environment variables):\n\
--b : issue warnings about str(bytes_instance), str(bytearray_instance)\n\
- and comparing bytes/bytearray with str. (-bb: issue errors)\n\
+-b : issue warnings about converting bytes/bytearray to str and comparing\n\
+ bytes/bytearray with str or bytes with int. (-bb: issue errors)\n\
-B : don't write .pyc files on import; also PYTHONDONTWRITEBYTECODE=x\n\
-c cmd : program passed in as string (terminates option list)\n\
-d : turn on parser debugging output (for experts only, only works on\n\
@@ -49,9 +49,10 @@ 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 add user site directory to sys.path; also PYTHONNOUSERSITE=x\n\
-S : don't imply 'import site' on initialization\n\
-u : force the stdout and stderr streams to be unbuffered;\n\
this option has no effect on stdin; also PYTHONUNBUFFERED=x\n\
@@ -65,9 +66,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\
@@ -76,117 +78,90 @@ 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\
--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\
--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 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\
--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."
-
+-X dev : enable Python Development Mode; also PYTHONDEVMODE\n\
+-X faulthandler: dump the Python traceback on fatal errors;\n\
+ also PYTHONFAULTHANDLER\n\
+-X frozen_modules=[on|off]: whether to use frozen modules; the default is \"on\"\n\
+ for installed Python and \"off\" for a local build\n\
+-X importtime: show how long each import takes; also PYTHONPROFILEIMPORTTIME\n\
+-X int_max_str_digits=N: limit the size of int<->str conversions;\n\
+ 0 disables the limit; also PYTHONINTMAXSTRDIGITS\n\
+-X no_debug_ranges: don't include extra location information in code objects;\n\
+ also PYTHONNODEBUGRANGES\n\
+-X perf: support the Linux \"perf\" profiler; also PYTHONPERFSUPPORT=1\n\
+"
+#ifdef Py_DEBUG
+"-X presite=MOD: import this module before site; also PYTHON_PRESITE\n"
+#endif
+"\
+-X pycache_prefix=PATH: write .pyc files to a parallel tree instead of to the\n\
+ code tree; also PYTHONPYCACHEPREFIX\n\
+"
#ifdef Py_STATS
-"\n\
-\n\
--X pystats: Enable pystats collection at startup."
+"-X pystats: enable pystats collection at startup; also PYTHONSTATS\n"
#endif
-;
+"\
+-X showrefcount: output the total reference count and number of used\n\
+ memory blocks when the program finishes or after each statement in\n\
+ the interactive interpreter; only works on debug builds\n\
+-X tracemalloc[=N]: trace Python memory allocations; N sets a traceback limit\n\
+ of N frames (default: 1); also PYTHONTRACEMALLOC=N\n\
+-X utf8[=0|1]: enable (1) or disable (0) UTF-8 mode; also PYTHONUTF8\n\
+-X warn_default_encoding: enable opt-in EncodingWarning for 'encoding=None';\n\
+ also PYTHONWARNDEFAULTENCODING\
+";
/* 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"
-"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"
-"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"
+"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"
+"PYTHONIOENCODING: encoding[:errors] used for stdin/stdout/stderr\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"
+"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"
-"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"
-"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";
+" debugger. It can be set to the callable of your debugger of\n"
+" choice.\n"
+"\n"
+"These variables have equivalent command-line options (see --help for details):\n"
+"PYTHONDEBUG : enable parser debug mode (-d)\n"
+"PYTHONDEVMODE : enable Python Development Mode (-X dev)\n"
+"PYTHONDONTWRITEBYTECODE: don't write .pyc files (-B)\n"
+"PYTHONFAULTHANDLER: dump the Python traceback on fatal errors (-X faulthandler)\n"
+"PYTHONINSPECT : inspect interactively after running script (-i)\n"
+"PYTHONINTMAXSTRDIGITS: limit the size of int<->str conversions;\n"
+" 0 disables the limit (-X int_max_str_digits=N)\n"
+"PYTHONNODEBUGRANGES: don't include extra location information in code objects\n"
+" (-X no_debug_ranges)\n"
+"PYTHONNOUSERSITE: disable user site directory (-s)\n"
+"PYTHONOPTIMIZE : enable level 1 optimizations (-O)\n"
+"PYTHONPERFSUPPORT: support the Linux \"perf\" profiler (-X perf)\n"
+"PYTHONPROFILEIMPORTTIME: show how long each import takes (-X importtime)\n"
+"PYTHONPYCACHEPREFIX: root directory for bytecode cache (pyc) files\n"
+" (-X pycache_prefix)\n"
+"PYTHONSAFEPATH : don't prepend a potentially unsafe path to sys.path.\n"
+"PYTHONTRACEMALLOC: trace Python memory allocations (-X tracemalloc)\n"
+"PYTHONUNBUFFERED: disable stdout/stderr buffering (-u)\n"
+"PYTHONUTF8 : control the UTF-8 mode (-X utf8)\n"
+"PYTHONVERBOSE : trace import statements (-v)\n"
+"PYTHONWARNDEFAULTENCODING: enable opt-in EncodingWarning for 'encoding=None'\n"
+" (-X warn_default_encoding)\n"
+"PYTHONWARNINGS : warning control (-W)\n"
+;
#if defined(MS_WINDOWS)
# define PYTHONHOMEHELP "<prefix>\\python{major}{minor}"
@@ -2370,9 +2345,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();
}