mirror of
https://github.com/python/cpython.git
synced 2026-01-04 14:32:21 +00:00
Simplified tuple returned by string._formatter_parser to only have
4 elements. No need for old is_markup element, the same information is indicated by literal_string being None. Factored string.Formatter class to make subclasses easier to write.
This commit is contained in:
parent
79710cdea1
commit
9e7c8da61c
2 changed files with 59 additions and 32 deletions
|
|
@ -979,17 +979,12 @@ formatteriter_next(formatteriterobject *it)
|
|||
/* if 0, error has already been set, if 1, iterator is empty */
|
||||
return NULL;
|
||||
else {
|
||||
PyObject *is_markup_bool = NULL;
|
||||
PyObject *literal_str = NULL;
|
||||
PyObject *field_name_str = NULL;
|
||||
PyObject *format_spec_str = NULL;
|
||||
PyObject *conversion_str = NULL;
|
||||
PyObject *tuple = NULL;
|
||||
|
||||
is_markup_bool = PyBool_FromLong(is_markup);
|
||||
if (!is_markup_bool)
|
||||
return NULL;
|
||||
|
||||
if (is_markup) {
|
||||
/* field_name, format_spec, and conversion are returned */
|
||||
literal_str = Py_None;
|
||||
|
|
@ -1030,11 +1025,9 @@ formatteriter_next(formatteriterobject *it)
|
|||
Py_INCREF(format_spec_str);
|
||||
Py_INCREF(conversion_str);
|
||||
}
|
||||
tuple = PyTuple_Pack(5, is_markup_bool, literal_str,
|
||||
field_name_str, format_spec_str,
|
||||
tuple = PyTuple_Pack(4, literal_str, field_name_str, format_spec_str,
|
||||
conversion_str);
|
||||
error:
|
||||
Py_XDECREF(is_markup_bool);
|
||||
Py_XDECREF(literal_str);
|
||||
Py_XDECREF(field_name_str);
|
||||
Py_XDECREF(format_spec_str);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue