[Python-checkins] bpo-36101: remove non-ascii characters in docstring (GH-12018)

Inada Naoki webhook-mailer at python.org
Sun Feb 24 18:18:53 EST 2019


https://github.com/python/cpython/commit/463572c8beb59fd9d6850440af48a5c5f4c0c0c9
commit: 463572c8beb59fd9d6850440af48a5c5f4c0c0c9
branch: master
author: animalize <animalize at users.noreply.github.com>
committer: Inada Naoki <methane at users.noreply.github.com>
date: 2019-02-25T08:18:48+09:00
summary:

bpo-36101: remove non-ascii characters in docstring (GH-12018)

* remove non-ascii characters in docstring
* clinic.py emits a warning when docstring has non-ascii character

files:
M Modules/_curses_panel.c
M Modules/clinic/_curses_panel.c.h
M Python/clinic/context.c.h
M Python/context.c
M Tools/clinic/clinic.py

diff --git a/Modules/_curses_panel.c b/Modules/_curses_panel.c
index 609718f65f15..e7bbefd50fdf 100644
--- a/Modules/_curses_panel.c
+++ b/Modules/_curses_panel.c
@@ -412,12 +412,12 @@ _curses_panel.panel.set_userptr
     obj: object
     /
 
-Set the panel’s user pointer to obj.
+Set the panel's user pointer to obj.
 [clinic start generated code]*/
 
 static PyObject *
 _curses_panel_panel_set_userptr(PyCursesPanelObject *self, PyObject *obj)
-/*[clinic end generated code: output=6fb145b3af88cf4a input=2056be1cd148b05c]*/
+/*[clinic end generated code: output=6fb145b3af88cf4a input=d2c6a9dbefabbf39]*/
 {
     PyObject *oldobj;
     int rc;
@@ -587,12 +587,12 @@ _curses_panel.update_panels
 
 Updates the virtual screen after changes in the panel stack.
 
-This does not call curses.doupdate(), so you’ll have to do this yourself.
+This does not call curses.doupdate(), so you'll have to do this yourself.
 [clinic start generated code]*/
 
 static PyObject *
 _curses_panel_update_panels_impl(PyObject *module)
-/*[clinic end generated code: output=2f3b4c2e03d90ded input=a127069202b0a097]*/
+/*[clinic end generated code: output=2f3b4c2e03d90ded input=5299624c9a708621]*/
 {
     PyCursesInitialised;
     update_panels();
diff --git a/Modules/clinic/_curses_panel.c.h b/Modules/clinic/_curses_panel.c.h
index ed59c3ba3984..0df442056ea9 100644
--- a/Modules/clinic/_curses_panel.c.h
+++ b/Modules/clinic/_curses_panel.c.h
@@ -228,7 +228,7 @@ PyDoc_STRVAR(_curses_panel_panel_set_userptr__doc__,
 "set_userptr($self, obj, /)\n"
 "--\n"
 "\n"
-"Set the panel’s user pointer to obj.");
+"Set the panel\'s user pointer to obj.");
 
 #define _CURSES_PANEL_PANEL_SET_USERPTR_METHODDEF    \
     {"set_userptr", (PyCFunction)_curses_panel_panel_set_userptr, METH_O, _curses_panel_panel_set_userptr__doc__},
@@ -322,7 +322,7 @@ PyDoc_STRVAR(_curses_panel_update_panels__doc__,
 "\n"
 "Updates the virtual screen after changes in the panel stack.\n"
 "\n"
-"This does not call curses.doupdate(), so you’ll have to do this yourself.");
+"This does not call curses.doupdate(), so you\'ll have to do this yourself.");
 
 #define _CURSES_PANEL_UPDATE_PANELS_METHODDEF    \
     {"update_panels", (PyCFunction)_curses_panel_update_panels, METH_NOARGS, _curses_panel_update_panels__doc__},
@@ -335,4 +335,4 @@ _curses_panel_update_panels(PyObject *module, PyObject *Py_UNUSED(ignored))
 {
     return _curses_panel_update_panels_impl(module);
 }
-/*[clinic end generated code: output=ac1f56e6c3d4cc57 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=3cc16062281b7e07 input=a9049054013a1b77]*/
diff --git a/Python/clinic/context.c.h b/Python/clinic/context.c.h
index bbe19db1bd93..eedfc88654b6 100644
--- a/Python/clinic/context.c.h
+++ b/Python/clinic/context.c.h
@@ -82,7 +82,7 @@ PyDoc_STRVAR(_contextvars_Context_values__doc__,
 "values($self, /)\n"
 "--\n"
 "\n"
-"Return a list of all variables’ values in the context object.");
+"Return a list of all variables\' values in the context object.");
 
 #define _CONTEXTVARS_CONTEXT_VALUES_METHODDEF    \
     {"values", (PyCFunction)_contextvars_Context_values, METH_NOARGS, _contextvars_Context_values__doc__},
@@ -177,4 +177,4 @@ PyDoc_STRVAR(_contextvars_ContextVar_reset__doc__,
 
 #define _CONTEXTVARS_CONTEXTVAR_RESET_METHODDEF    \
     {"reset", (PyCFunction)_contextvars_ContextVar_reset, METH_O, _contextvars_ContextVar_reset__doc__},
-/*[clinic end generated code: output=67c3a8f76b6cf4e7 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=a86b66e1516c25d4 input=a9049054013a1b77]*/
diff --git a/Python/context.c b/Python/context.c
index 7531f1440bce..9a50ea91a77e 100644
--- a/Python/context.c
+++ b/Python/context.c
@@ -592,12 +592,12 @@ _contextvars_Context_keys_impl(PyContext *self)
 /*[clinic input]
 _contextvars.Context.values
 
-Return a list of all variables’ values in the context object.
+Return a list 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=6c3d08639ba3bf67]*/
+/*[clinic end generated code: output=d286dabfc8db6dde input=ce8075d04a6ea526]*/
 {
     return _PyHamt_NewIterValues(self->ctx_vars);
 }
diff --git a/Tools/clinic/clinic.py b/Tools/clinic/clinic.py
index 7f435f154692..f4f0017c2924 100755
--- a/Tools/clinic/clinic.py
+++ b/Tools/clinic/clinic.py
@@ -615,6 +615,9 @@ def render(self, clinic, signatures):
         return self.render_function(clinic, function)
 
     def docstring_for_c_string(self, f):
+        if re.search(r'[^\x00-\x7F]', f.docstring):
+            warn("Non-ascii character appear in docstring.")
+
         text, add, output = _text_accumulator()
         # turn docstring into a properly quoted C string
         for line in f.docstring.split('\n'):



More information about the Python-checkins mailing list