diff --git a/Lib/__future__.py b/Lib/__future__.py index ebb44a71f6d..32cdbc12656 100644 --- a/Lib/__future__.py +++ b/Lib/__future__.py @@ -55,13 +55,13 @@ all_feature_names = [ __all__ = ["all_feature_names"] + all_feature_names -try: - import new as _new # for CO_xxx symbols -except ImportError: # May happen during build - class _new: - CO_NESTED = 0x0010 - CO_GENERATOR_ALLOWED = 0x1000 - CO_FUTURE_DIVISION = 0x2000 +# The CO_xxx symbols are defined here under the same names used by +# compile.h, so that an editor search will find them here. However, +# they're not exported in __all__, because they don't really belong to +# this module. +CO_NESTED = 0x0010 # nested_scopes +CO_GENERATOR_ALLOWED = 0x1000 # generators +CO_FUTURE_DIVISION = 0x2000 # division class _Feature: def __init__(self, optionalRelease, mandatoryRelease, compiler_flag): @@ -92,12 +92,12 @@ class _Feature: nested_scopes = _Feature((2, 1, 0, "beta", 1), (2, 2, 0, "alpha", 0), - _new.CO_NESTED) + CO_NESTED) generators = _Feature((2, 2, 0, "alpha", 1), (2, 3, 0, "final", 0), - _new.CO_GENERATOR_ALLOWED) + CO_GENERATOR_ALLOWED) division = _Feature((2, 2, 0, "alpha", 2), (3, 0, 0, "alpha", 0), - _new.CO_FUTURE_DIVISION) + CO_FUTURE_DIVISION) diff --git a/Modules/newmodule.c b/Modules/newmodule.c index d1869e5a550..7b91fb8bc3e 100644 --- a/Modules/newmodule.c +++ b/Modules/newmodule.c @@ -220,38 +220,9 @@ char new_doc[] = \n\ You need to know a great deal about the interpreter to use this!"; -static void -insertint(PyObject *d, char *name, int value) -{ - PyObject *v = PyInt_FromLong((long) value); - if (v == NULL) { - /* Don't bother reporting this error */ - PyErr_Clear(); - } - else { - PyDict_SetItemString(d, name, v); - Py_DECREF(v); - } -} - DL_EXPORT(void) initnew(void) { - PyObject *m; - PyObject *d; - - m = Py_InitModule4("new", new_methods, new_doc, (PyObject *)NULL, - PYTHON_API_VERSION); - d = PyModule_GetDict(m); - -#define ADDSYM(TOKEN) insertint(d, #TOKEN, TOKEN) - ADDSYM(CO_OPTIMIZED); - ADDSYM(CO_NEWLOCALS); - ADDSYM(CO_VARARGS); - ADDSYM(CO_VARKEYWORDS); - ADDSYM(CO_NESTED); - ADDSYM(CO_GENERATOR); - ADDSYM(CO_GENERATOR_ALLOWED); - ADDSYM(CO_FUTURE_DIVISION); -#undef ADDSYM + Py_InitModule4("new", new_methods, new_doc, (PyObject *)NULL, + PYTHON_API_VERSION); }