[Python-checkins] bpo-45482: Rename namespaceobject.h to pycore_namespace.h (GH-28975)
vstinner
webhook-mailer at python.org
Fri Oct 15 09:21:26 EDT 2021
https://github.com/python/cpython/commit/354c35220d25a893e502014478f6739dad6897f3
commit: 354c35220d25a893e502014478f6739dad6897f3
branch: main
author: Victor Stinner <vstinner at python.org>
committer: vstinner <vstinner at python.org>
date: 2021-10-15T15:21:21+02:00
summary:
bpo-45482: Rename namespaceobject.h to pycore_namespace.h (GH-28975)
Rename Include/namespaceobject.h to
Include/internal/pycore_namespace.h.
The _testmultiphase extension is now built with the
Py_BUILD_CORE_MODULE macro defined to access _PyNamespace_Type.
object.c: remove unused "pycore_context.h" include.
files:
A Include/internal/pycore_namespace.h
D Include/namespaceobject.h
M Include/Python.h
M Makefile.pre.in
M Modules/_testcapimodule.c
M Modules/_testmultiphase.c
M Modules/timemodule.c
M Objects/namespaceobject.c
M Objects/object.c
M PCbuild/pythoncore.vcxproj
M PCbuild/pythoncore.vcxproj.filters
M Python/import.c
M Python/sysmodule.c
M setup.py
diff --git a/Include/Python.h b/Include/Python.h
index a2de514702f2f..c0a621ad44afd 100644
--- a/Include/Python.h
+++ b/Include/Python.h
@@ -77,7 +77,6 @@
#include "warnings.h"
#include "weakrefobject.h"
#include "structseq.h"
-#include "namespaceobject.h"
#include "cpython/picklebufobject.h"
#include "cpython/pytime.h"
#include "codecs.h"
diff --git a/Include/internal/pycore_namespace.h b/Include/internal/pycore_namespace.h
new file mode 100644
index 0000000000000..cb76f040693d1
--- /dev/null
+++ b/Include/internal/pycore_namespace.h
@@ -0,0 +1,20 @@
+// Simple namespace object interface
+
+#ifndef Py_INTERNAL_NAMESPACE_H
+#define Py_INTERNAL_NAMESPACE_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef Py_BUILD_CORE
+# error "this header requires Py_BUILD_CORE define"
+#endif
+
+PyAPI_DATA(PyTypeObject) _PyNamespace_Type;
+
+PyAPI_FUNC(PyObject *) _PyNamespace_New(PyObject *kwds);
+
+#ifdef __cplusplus
+}
+#endif
+#endif // !Py_INTERNAL_NAMESPACE_H
diff --git a/Include/namespaceobject.h b/Include/namespaceobject.h
deleted file mode 100644
index 0c8d95c0f137c..0000000000000
--- a/Include/namespaceobject.h
+++ /dev/null
@@ -1,19 +0,0 @@
-
-/* simple namespace object interface */
-
-#ifndef NAMESPACEOBJECT_H
-#define NAMESPACEOBJECT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_LIMITED_API
-PyAPI_DATA(PyTypeObject) _PyNamespace_Type;
-
-PyAPI_FUNC(PyObject *) _PyNamespace_New(PyObject *kwds);
-#endif /* !Py_LIMITED_API */
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !NAMESPACEOBJECT_H */
diff --git a/Makefile.pre.in b/Makefile.pre.in
index b79b71f59b145..9de51711ac4c5 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -1151,7 +1151,6 @@ PYTHON_HEADERS= \
$(srcdir)/Include/methodobject.h \
$(srcdir)/Include/modsupport.h \
$(srcdir)/Include/moduleobject.h \
- $(srcdir)/Include/namespaceobject.h \
$(srcdir)/Include/object.h \
$(srcdir)/Include/objimpl.h \
$(srcdir)/Include/opcode.h \
@@ -1261,6 +1260,7 @@ PYTHON_HEADERS= \
$(srcdir)/Include/internal/pycore_list.h \
$(srcdir)/Include/internal/pycore_long.h \
$(srcdir)/Include/internal/pycore_moduleobject.h \
+ $(srcdir)/Include/internal/pycore_namespace.h \
$(srcdir)/Include/internal/pycore_object.h \
$(srcdir)/Include/internal/pycore_pathconfig.h \
$(srcdir)/Include/internal/pycore_pyarena.h \
diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c
index 7cbd2dc3b6a51..82cfc04c41096 100644
--- a/Modules/_testcapimodule.c
+++ b/Modules/_testcapimodule.c
@@ -1167,8 +1167,8 @@ test_get_type_qualname(PyObject *self, PyObject *Py_UNUSED(ignored))
assert(strcmp(PyUnicode_AsUTF8(tp_qualname), "int") == 0);
Py_DECREF(tp_qualname);
- tp_qualname = PyType_GetQualName(&_PyNamespace_Type);
- assert(strcmp(PyUnicode_AsUTF8(tp_qualname), "SimpleNamespace") == 0);
+ tp_qualname = PyType_GetQualName(&PyODict_Type);
+ assert(strcmp(PyUnicode_AsUTF8(tp_qualname), "OrderedDict") == 0);
Py_DECREF(tp_qualname);
PyObject *HeapTypeNameType = PyType_FromSpec(&HeapTypeNameType_Spec);
diff --git a/Modules/_testmultiphase.c b/Modules/_testmultiphase.c
index e0ed77d265cdc..2d25e16bd4d39 100644
--- a/Modules/_testmultiphase.c
+++ b/Modules/_testmultiphase.c
@@ -3,6 +3,7 @@
*/
#include "Python.h"
+#include "pycore_namespace.h" // _PyNamespace_New()
/* State for testing module state access from methods */
diff --git a/Modules/timemodule.c b/Modules/timemodule.c
index ca8d62d5cc938..0ef3b2ffaa898 100644
--- a/Modules/timemodule.c
+++ b/Modules/timemodule.c
@@ -2,6 +2,7 @@
#include "Python.h"
#include "pycore_fileutils.h" // _Py_BEGIN_SUPPRESS_IPH
+#include "pycore_namespace.h" // _PyNamespace_New()
#include <ctype.h>
diff --git a/Objects/namespaceobject.c b/Objects/namespaceobject.c
index fa37ed250d30a..7875e7cafecb6 100644
--- a/Objects/namespaceobject.c
+++ b/Objects/namespaceobject.c
@@ -1,6 +1,7 @@
// namespace object implementation
#include "Python.h"
+#include "pycore_namespace.h" // _PyNamespace_Type
#include "structmember.h" // PyMemberDef
diff --git a/Objects/object.c b/Objects/object.c
index 5e719d45b60a6..25f5a2133d574 100644
--- a/Objects/object.c
+++ b/Objects/object.c
@@ -4,10 +4,10 @@
#include "Python.h"
#include "pycore_call.h" // _PyObject_CallNoArgs()
#include "pycore_ceval.h" // _Py_EnterRecursiveCall()
-#include "pycore_context.h"
-#include "pycore_dict.h"
+#include "pycore_dict.h" // _PyObject_MakeDictFromInstanceAttributes()
#include "pycore_floatobject.h" // _PyFloat_DebugMallocStats()
#include "pycore_initconfig.h" // _PyStatus_EXCEPTION()
+#include "pycore_namespace.h" // _PyNamespace_Type
#include "pycore_object.h" // _PyType_CheckConsistency()
#include "pycore_pyerrors.h" // _PyErr_Occurred()
#include "pycore_pylifecycle.h" // _PyTypes_InitSlotDefs()
diff --git a/PCbuild/pythoncore.vcxproj b/PCbuild/pythoncore.vcxproj
index 357d0a7071031..015d783c89a83 100644
--- a/PCbuild/pythoncore.vcxproj
+++ b/PCbuild/pythoncore.vcxproj
@@ -202,6 +202,7 @@
<ClInclude Include="..\Include\internal\pycore_list.h" />
<ClInclude Include="..\Include\internal\pycore_long.h" />
<ClInclude Include="..\Include\internal\pycore_moduleobject.h" />
+ <ClInclude Include="..\Include\internal\pycore_namespace.h" />
<ClInclude Include="..\Include\internal\pycore_object.h" />
<ClInclude Include="..\Include\internal\pycore_pathconfig.h" />
<ClInclude Include="..\Include\internal\pycore_pyarena.h" />
@@ -229,7 +230,6 @@
<ClInclude Include="..\Include\methodobject.h" />
<ClInclude Include="..\Include\modsupport.h" />
<ClInclude Include="..\Include\moduleobject.h" />
- <ClInclude Include="..\Include\namespaceobject.h" />
<ClInclude Include="..\Include\object.h" />
<ClInclude Include="..\Include\objimpl.h" />
<ClInclude Include="..\Include\opcode.h" />
diff --git a/PCbuild/pythoncore.vcxproj.filters b/PCbuild/pythoncore.vcxproj.filters
index 1a3ad884d4ac3..94528b9261fa6 100644
--- a/PCbuild/pythoncore.vcxproj.filters
+++ b/PCbuild/pythoncore.vcxproj.filters
@@ -327,9 +327,6 @@
<ClInclude Include="..\Include\pyhash.h">
<Filter>Include</Filter>
</ClInclude>
- <ClInclude Include="..\Include\namespaceobject.h">
- <Filter>Include</Filter>
- </ClInclude>
<ClInclude Include="..\Modules\hashtable.h">
<Filter>Modules</Filter>
</ClInclude>
@@ -558,6 +555,9 @@
<ClInclude Include="..\Include\internal\pycore_moduleobject.h">
<Filter>Include\internal</Filter>
</ClInclude>
+ <ClInclude Include="..\Include\internal\pycore_namespace.h">
+ <Filter>Include</Filter>
+ </ClInclude>
<ClInclude Include="..\Include\internal\pycore_object.h">
<Filter>Include\internal</Filter>
</ClInclude>
diff --git a/Python/import.c b/Python/import.c
index f2160928c4fa7..fe4686cd56b3b 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -3,19 +3,19 @@
#include "Python.h"
#include "pycore_import.h" // _PyImport_BootstrapImp()
-#include "pycore_initconfig.h"
-#include "pycore_pyerrors.h"
-#include "pycore_pyhash.h"
+#include "pycore_initconfig.h" // _PyStatus_OK()
+#include "pycore_interp.h" // _PyInterpreterState_ClearModules()
+#include "pycore_namespace.h" // _PyNamespace_Type
+#include "pycore_pyerrors.h" // _PyErr_SetString()
+#include "pycore_pyhash.h" // _Py_KeyedHash()
#include "pycore_pylifecycle.h"
#include "pycore_pymem.h" // _PyMem_SetDefaultAllocator()
-#include "pycore_interp.h" // _PyInterpreterState_ClearModules()
#include "pycore_pystate.h" // _PyInterpreterState_GET()
-#include "pycore_sysmodule.h"
-#include "marshal.h"
-#include "code.h"
-#include "importdl.h"
-#include "pydtrace.h"
-#include <stdbool.h>
+#include "pycore_sysmodule.h" // _PySys_Audit()
+#include "marshal.h" // PyMarshal_ReadObjectFromString()
+#include "importdl.h" // _PyImport_DynLoadFiletab
+#include "pydtrace.h" // PyDTrace_IMPORT_FIND_LOAD_START_ENABLED()
+#include <stdbool.h> // bool
#ifdef HAVE_FCNTL_H
#include <fcntl.h>
diff --git a/Python/sysmodule.c b/Python/sysmodule.c
index ae3cbf1954e09..ad9be714c021a 100644
--- a/Python/sysmodule.c
+++ b/Python/sysmodule.c
@@ -20,6 +20,7 @@ Data members:
#include "pycore_code.h" // _Py_QuickenedCount
#include "pycore_frame.h" // InterpreterFrame
#include "pycore_initconfig.h" // _PyStatus_EXCEPTION()
+#include "pycore_namespace.h" // _PyNamespace_New()
#include "pycore_object.h" // _PyObject_IS_GC()
#include "pycore_pathconfig.h" // _PyPathConfig_ComputeSysPath0()
#include "pycore_pyerrors.h" // _PyErr_Fetch()
diff --git a/setup.py b/setup.py
index 56c06cbddaf21..24365ef3d927b 100644
--- a/setup.py
+++ b/setup.py
@@ -1043,7 +1043,8 @@ def detect_test_extensions(self):
self.add(Extension('_testimportmultiple', ['_testimportmultiple.c']))
# Test multi-phase extension module init (PEP 489)
- self.add(Extension('_testmultiphase', ['_testmultiphase.c']))
+ self.add(Extension('_testmultiphase', ['_testmultiphase.c'],
+ extra_compile_args=['-DPy_BUILD_CORE_MODULE']))
# Fuzz tests.
self.add(Extension('_xxtestfuzz',
More information about the Python-checkins
mailing list