From 440042ff8754d03f1fbd1d714bc4f4fec987d125 Mon Sep 17 00:00:00 2001 From: Yongtao Huang Date: Thu, 18 Dec 2025 11:58:13 +0800 Subject: [PATCH 1/2] Fix Context.items/keys/values docstrings (return iterators, not lists) _contextvars.Context.items(), .keys(), and .values() return iterator objects, but their docstrings incorrectly claim they return lists. Signed-off-by: Yongtao Huang --- Python/context.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Python/context.c b/Python/context.c index 606ce4b1c8f60a..392e82b00c93bb 100644 --- a/Python/context.c +++ b/Python/context.c @@ -650,12 +650,12 @@ _contextvars.Context.items Return all variables and their values in the context object. -The result is returned as a list of 2-tuples (variable, value). +The result is returned as an iterator of 2-tuples (variable, value). [clinic start generated code]*/ static PyObject * _contextvars_Context_items_impl(PyContext *self) -/*[clinic end generated code: output=fa1655c8a08502af input=00db64ae379f9f42]*/ +/*[clinic end generated code: output=fa1655c8a08502af input=f9c1fe4d39962ea0]*/ { return _PyHamt_NewIterItems(self->ctx_vars); } @@ -664,12 +664,12 @@ _contextvars_Context_items_impl(PyContext *self) /*[clinic input] _contextvars.Context.keys -Return a list of all variables in the context object. +Return an iterator of all variables in the context object. [clinic start generated code]*/ static PyObject * _contextvars_Context_keys_impl(PyContext *self) -/*[clinic end generated code: output=177227c6b63ec0e2 input=114b53aebca3449c]*/ +/*[clinic end generated code: output=177227c6b63ec0e2 input=f806e4e5f77c7e7e]*/ { return _PyHamt_NewIterKeys(self->ctx_vars); } @@ -678,12 +678,12 @@ _contextvars_Context_keys_impl(PyContext *self) /*[clinic input] _contextvars.Context.values -Return a list of all variables' values in the context object. +Return an iterator of all variables' values in the context object. [clinic start generated code]*/ static PyObject * _contextvars_Context_values_impl(PyContext *self) -/*[clinic end generated code: output=d286dabfc8db6dde input=ce8075d04a6ea526]*/ +/*[clinic end generated code: output=d286dabfc8db6dde input=6f3cb30499d55021]*/ { return _PyHamt_NewIterValues(self->ctx_vars); } From cfe01fdda3785632fcf9093737cbbd9b7aa76e09 Mon Sep 17 00:00:00 2001 From: Yongtao Huang Date: Thu, 18 Dec 2025 11:59:18 +0800 Subject: [PATCH 2/2] run PCbuild\amd64\python_d.exe Tools\clinic\clinic.py Python\context.c Update the Argument Clinic docstrings in Python/context.c and regenerate Python/clinic/context.c.h. No behavior change. Signed-off-by: Yongtao Huang --- Python/clinic/context.c.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Python/clinic/context.c.h b/Python/clinic/context.c.h index 5ed74e6e6ddb6b..dafa799263ea09 100644 --- a/Python/clinic/context.c.h +++ b/Python/clinic/context.c.h @@ -48,7 +48,7 @@ PyDoc_STRVAR(_contextvars_Context_items__doc__, "\n" "Return all variables and their values in the context object.\n" "\n" -"The result is returned as a list of 2-tuples (variable, value)."); +"The result is returned as an iterator of 2-tuples (variable, value)."); #define _CONTEXTVARS_CONTEXT_ITEMS_METHODDEF \ {"items", (PyCFunction)_contextvars_Context_items, METH_NOARGS, _contextvars_Context_items__doc__}, @@ -66,7 +66,7 @@ PyDoc_STRVAR(_contextvars_Context_keys__doc__, "keys($self, /)\n" "--\n" "\n" -"Return a list of all variables in the context object."); +"Return an iterator of all variables in the context object."); #define _CONTEXTVARS_CONTEXT_KEYS_METHODDEF \ {"keys", (PyCFunction)_contextvars_Context_keys, METH_NOARGS, _contextvars_Context_keys__doc__}, @@ -84,7 +84,7 @@ PyDoc_STRVAR(_contextvars_Context_values__doc__, "values($self, /)\n" "--\n" "\n" -"Return a list of all variables\' values in the context object."); +"Return an iterator of all variables\' values in the context object."); #define _CONTEXTVARS_CONTEXT_VALUES_METHODDEF \ {"values", (PyCFunction)_contextvars_Context_values, METH_NOARGS, _contextvars_Context_values__doc__}, @@ -256,4 +256,4 @@ token_exit(PyObject *self, PyObject *const *args, Py_ssize_t nargs) exit: return return_value; } -/*[clinic end generated code: output=3a04b2fddf24c3e9 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=a6b96499985059cd input=a9049054013a1b77]*/