check by equality for __future__ not identity (closes #14378)
diff --git a/Python/future.c b/Python/future.c
index 96be757..1ab7a1a 100644
--- a/Python/future.c
+++ b/Python/future.c
@@ -59,13 +59,6 @@
{
int i, found_docstring = 0, done = 0, prev_line = 0;
- static PyObject *future;
- if (!future) {
- future = PyString_InternFromString("__future__");
- if (!future)
- return 0;
- }
-
if (!(mod->kind == Module_kind || mod->kind == Interactive_kind))
return 1;
@@ -92,7 +85,9 @@
*/
if (s->kind == ImportFrom_kind) {
- if (s->v.ImportFrom.module == future) {
+ PyObject *modname = s->v.ImportFrom.module;
+ if (PyString_GET_SIZE(modname) == 10 &&
+ !strcmp(PyString_AS_STRING(modname), "__future__")) {
if (done) {
PyErr_SetString(PyExc_SyntaxError,
ERR_LATE_FUTURE);