diff --git a/Doc/using/cmdline.rst b/Doc/using/cmdline.rst index 6f3cfbe2949..d1f47eba897 100644 --- a/Doc/using/cmdline.rst +++ b/Doc/using/cmdline.rst @@ -220,6 +220,13 @@ Miscellaneous options Discard docstrings in addition to the :option:`-O` optimizations. +.. cmdoption:: -q + + Don't display the copyright and version messages even in interactive mode. + + .. versionadded:: 3.2 + + .. cmdoption:: -s Don't add user site directory to sys.path diff --git a/Misc/NEWS b/Misc/NEWS index c2f288d6dfa..8463367e24d 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -10,6 +10,9 @@ What's New in Python 3.2 Beta 1? Core and Builtins ----------------- +- Issue #1772833: Add the -q command-line option to suppress copyright + and version output in interactive mode. + - Provide an *optimize* parameter in the built-in compile() function. - Fixed several corner case issues on os.stat/os.lstat related to reparse diff --git a/Misc/python.man b/Misc/python.man index 428ef4dc51d..2d15d5d3368 100644 --- a/Misc/python.man +++ b/Misc/python.man @@ -26,6 +26,9 @@ python \- an interpreted, interactive, object-oriented programming language .B \-m .I module-name ] +[ +.B \-q +] .br [ .B \-O @@ -145,6 +148,10 @@ to \fI.pyo\fP. Given twice, causes docstrings to be discarded. .B \-O0 Discard docstrings in addition to the \fB-O\fP optimizations. .TP +.B \-q +Do not print the version and copyright messages. These messages are +also suppressed in non-interactive mode. +.TP .BI "\-Q " argument Division control; see PEP 238. The argument must be one of "old" (the default, int/int and long/long return an int or long), "new" (new diff --git a/Modules/main.c b/Modules/main.c index eeb94c8ea4e..3803eee7383 100644 --- a/Modules/main.c +++ b/Modules/main.c @@ -46,7 +46,7 @@ static wchar_t **orig_argv; static int orig_argc; /* command line options */ -#define BASE_OPTS L"bBc:dEhiJm:OsStuvVW:xX:?" +#define BASE_OPTS L"bBc:dEhiJm:OqsStuvVW:xX:?" #define PROGRAM_OPTS BASE_OPTS @@ -71,6 +71,7 @@ static char *usage_2 = "\ -m mod : run library module as a script (terminates option list)\n\ -O : optimize generated bytecode slightly; also PYTHONOPTIMIZE=x\n\ -OO : remove doc-strings in addition to the -O optimizations\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\ "; @@ -318,6 +319,7 @@ Py_Main(int argc, wchar_t **argv) int stdin_is_interactive = 0; int help = 0; int version = 0; + int quiet = 0; int saw_unbuffered_flag = 0; PyCompilerFlags cf; @@ -424,6 +426,10 @@ Py_Main(int argc, wchar_t **argv) PySys_AddXOption(_PyOS_optarg); break; + case 'q': + quiet++; + break; + /* This space reserved for other options */ default: @@ -588,8 +594,9 @@ Py_Main(int argc, wchar_t **argv) #endif Py_Initialize(); - if (Py_VerboseFlag || - (command == NULL && filename == NULL && module == NULL && stdin_is_interactive)) { + if (!quiet && (Py_VerboseFlag || + (command == NULL && filename == NULL && + module == NULL && stdin_is_interactive))) { fprintf(stderr, "Python %s on %s\n", Py_GetVersion(), Py_GetPlatform()); if (!Py_NoSiteFlag)