gh-111201: A new Python REPL (GH-111567)

Co-authored-by: Łukasz Langa <lukasz@langa.pl>
Co-authored-by: Marta Gómez Macías <mgmacias@google.com>
Co-authored-by: Lysandros Nikolaou <lisandrosnik@gmail.com>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
This commit is contained in:
Pablo Galindo Salgado 2024-05-05 21:32:23 +02:00 committed by GitHub
parent 40cc809902
commit f27f8c790a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
41 changed files with 5328 additions and 170 deletions

View file

@ -1485,6 +1485,24 @@ exit:
return return_value;
}
PyDoc_STRVAR(sys__baserepl__doc__,
"_baserepl($module, /)\n"
"--\n"
"\n"
"Private function for getting the base REPL");
#define SYS__BASEREPL_METHODDEF \
{"_baserepl", (PyCFunction)sys__baserepl, METH_NOARGS, sys__baserepl__doc__},
static PyObject *
sys__baserepl_impl(PyObject *module);
static PyObject *
sys__baserepl(PyObject *module, PyObject *Py_UNUSED(ignored))
{
return sys__baserepl_impl(module);
}
PyDoc_STRVAR(sys__is_gil_enabled__doc__,
"_is_gil_enabled($module, /)\n"
"--\n"
@ -1556,4 +1574,4 @@ exit:
#ifndef SYS_GETANDROIDAPILEVEL_METHODDEF
#define SYS_GETANDROIDAPILEVEL_METHODDEF
#endif /* !defined(SYS_GETANDROIDAPILEVEL_METHODDEF) */
/*[clinic end generated code: output=352ac7a0085e8a1f input=a9049054013a1b77]*/
/*[clinic end generated code: output=ef7c35945443d300 input=a9049054013a1b77]*/

View file

@ -83,8 +83,6 @@ _PyRun_AnyFileObject(FILE *fp, PyObject *filename, int closeit,
return res;
}
/* Parse input from a file and execute it */
int
PyRun_AnyFileExFlags(FILE *fp, const char *filename, int closeit,
PyCompilerFlags *flags)

View file

@ -65,6 +65,7 @@ static const char* _Py_stdlib_module_names[] = {
"_pydecimal",
"_pyio",
"_pylong",
"_pyrepl",
"_queue",
"_random",
"_scproxy",

View file

@ -2395,6 +2395,21 @@ sys__get_cpu_count_config_impl(PyObject *module)
return config->cpu_count;
}
/*[clinic input]
sys._baserepl
Private function for getting the base REPL
[clinic start generated code]*/
static PyObject *
sys__baserepl_impl(PyObject *module)
/*[clinic end generated code: output=f19a36375ebe0a45 input=ade0ebb9fab56f3c]*/
{
PyCompilerFlags cf = _PyCompilerFlags_INIT;
PyRun_AnyFileExFlags(stdin, "<stdin>", 0, &cf);
Py_RETURN_NONE;
}
/*[clinic input]
sys._is_gil_enabled -> bool
@ -2579,6 +2594,7 @@ static PyMethodDef sys_methods[] = {
SYS_UNRAISABLEHOOK_METHODDEF
SYS_GET_INT_MAX_STR_DIGITS_METHODDEF
SYS_SET_INT_MAX_STR_DIGITS_METHODDEF
SYS__BASEREPL_METHODDEF
#ifdef Py_STATS
SYS__STATS_ON_METHODDEF
SYS__STATS_OFF_METHODDEF