mirror of
https://github.com/python/cpython.git
synced 2025-08-27 20:25:18 +00:00
bpo-35766: compile(): rename feature_version parameter (GH-13994)
Rename compile() feature_version parameter to _feature_version and convert it to a keyword-only parameter. Update also test_type_comments to pass feature_version as a tuple.
This commit is contained in:
parent
10b55c1643
commit
efdf6ca90f
4 changed files with 16 additions and 10 deletions
|
@ -45,7 +45,7 @@ def parse(source, filename='<unknown>', mode='exec', *,
|
||||||
feature_version = -1
|
feature_version = -1
|
||||||
# Else it should be an int giving the minor version for 3.x.
|
# Else it should be an int giving the minor version for 3.x.
|
||||||
return compile(source, filename, mode, flags,
|
return compile(source, filename, mode, flags,
|
||||||
feature_version=feature_version)
|
_feature_version=feature_version)
|
||||||
|
|
||||||
|
|
||||||
def literal_eval(node_or_string):
|
def literal_eval(node_or_string):
|
||||||
|
|
|
@ -228,8 +228,9 @@ class TypeCommentTests(unittest.TestCase):
|
||||||
feature_version=feature_version)
|
feature_version=feature_version)
|
||||||
|
|
||||||
def parse_all(self, source, minver=lowest, maxver=highest, expected_regex=""):
|
def parse_all(self, source, minver=lowest, maxver=highest, expected_regex=""):
|
||||||
for feature_version in range(self.lowest, self.highest + 1):
|
for version in range(self.lowest, self.highest + 1):
|
||||||
if minver <= feature_version <= maxver:
|
feature_version = (3, version)
|
||||||
|
if minver <= version <= maxver:
|
||||||
try:
|
try:
|
||||||
yield self.parse(source, feature_version)
|
yield self.parse(source, feature_version)
|
||||||
except SyntaxError as err:
|
except SyntaxError as err:
|
||||||
|
|
|
@ -696,7 +696,8 @@ compile as builtin_compile
|
||||||
flags: int = 0
|
flags: int = 0
|
||||||
dont_inherit: bool(accept={int}) = False
|
dont_inherit: bool(accept={int}) = False
|
||||||
optimize: int = -1
|
optimize: int = -1
|
||||||
feature_version: int = -1
|
*
|
||||||
|
_feature_version as feature_version: int = -1
|
||||||
|
|
||||||
Compile source into a code object that can be executed by exec() or eval().
|
Compile source into a code object that can be executed by exec() or eval().
|
||||||
|
|
||||||
|
@ -716,7 +717,7 @@ static PyObject *
|
||||||
builtin_compile_impl(PyObject *module, PyObject *source, PyObject *filename,
|
builtin_compile_impl(PyObject *module, PyObject *source, PyObject *filename,
|
||||||
const char *mode, int flags, int dont_inherit,
|
const char *mode, int flags, int dont_inherit,
|
||||||
int optimize, int feature_version)
|
int optimize, int feature_version)
|
||||||
/*[clinic end generated code: output=b0c09c84f116d3d7 input=5fcc30651a6acaa9]*/
|
/*[clinic end generated code: output=b0c09c84f116d3d7 input=40171fb92c1d580d]*/
|
||||||
{
|
{
|
||||||
PyObject *source_copy;
|
PyObject *source_copy;
|
||||||
const char *str;
|
const char *str;
|
||||||
|
|
14
Python/clinic/bltinmodule.c.h
generated
14
Python/clinic/bltinmodule.c.h
generated
|
@ -151,7 +151,7 @@ exit:
|
||||||
|
|
||||||
PyDoc_STRVAR(builtin_compile__doc__,
|
PyDoc_STRVAR(builtin_compile__doc__,
|
||||||
"compile($module, /, source, filename, mode, flags=0,\n"
|
"compile($module, /, source, filename, mode, flags=0,\n"
|
||||||
" dont_inherit=False, optimize=-1, feature_version=-1)\n"
|
" dont_inherit=False, optimize=-1, *, _feature_version=-1)\n"
|
||||||
"--\n"
|
"--\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Compile source into a code object that can be executed by exec() or eval().\n"
|
"Compile source into a code object that can be executed by exec() or eval().\n"
|
||||||
|
@ -179,7 +179,7 @@ static PyObject *
|
||||||
builtin_compile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
|
builtin_compile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
|
||||||
{
|
{
|
||||||
PyObject *return_value = NULL;
|
PyObject *return_value = NULL;
|
||||||
static const char * const _keywords[] = {"source", "filename", "mode", "flags", "dont_inherit", "optimize", "feature_version", NULL};
|
static const char * const _keywords[] = {"source", "filename", "mode", "flags", "dont_inherit", "optimize", "_feature_version", NULL};
|
||||||
static _PyArg_Parser _parser = {NULL, _keywords, "compile", 0};
|
static _PyArg_Parser _parser = {NULL, _keywords, "compile", 0};
|
||||||
PyObject *argsbuf[7];
|
PyObject *argsbuf[7];
|
||||||
Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3;
|
Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3;
|
||||||
|
@ -191,7 +191,7 @@ builtin_compile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj
|
||||||
int optimize = -1;
|
int optimize = -1;
|
||||||
int feature_version = -1;
|
int feature_version = -1;
|
||||||
|
|
||||||
args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 3, 7, 0, argsbuf);
|
args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 3, 6, 0, argsbuf);
|
||||||
if (!args) {
|
if (!args) {
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
|
@ -257,6 +257,10 @@ builtin_compile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj
|
||||||
goto skip_optional_pos;
|
goto skip_optional_pos;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
skip_optional_pos:
|
||||||
|
if (!noptargs) {
|
||||||
|
goto skip_optional_kwonly;
|
||||||
|
}
|
||||||
if (PyFloat_Check(args[6])) {
|
if (PyFloat_Check(args[6])) {
|
||||||
PyErr_SetString(PyExc_TypeError,
|
PyErr_SetString(PyExc_TypeError,
|
||||||
"integer argument expected, got float" );
|
"integer argument expected, got float" );
|
||||||
|
@ -266,7 +270,7 @@ builtin_compile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj
|
||||||
if (feature_version == -1 && PyErr_Occurred()) {
|
if (feature_version == -1 && PyErr_Occurred()) {
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
skip_optional_pos:
|
skip_optional_kwonly:
|
||||||
return_value = builtin_compile_impl(module, source, filename, mode, flags, dont_inherit, optimize, feature_version);
|
return_value = builtin_compile_impl(module, source, filename, mode, flags, dont_inherit, optimize, feature_version);
|
||||||
|
|
||||||
exit:
|
exit:
|
||||||
|
@ -845,4 +849,4 @@ builtin_issubclass(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
|
||||||
exit:
|
exit:
|
||||||
return return_value;
|
return return_value;
|
||||||
}
|
}
|
||||||
/*[clinic end generated code: output=3f690311ac556c31 input=a9049054013a1b77]*/
|
/*[clinic end generated code: output=e173df340a9e4516 input=a9049054013a1b77]*/
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue