https://github.com/python/cpython/commit/a7501f07da98aadf5a29aa7a35da90409c59b212
commit: a7501f07da98aadf5a29aa7a35da90409c59b212
branch: main
author: Stan Ulbrych <[email protected]>
committer: encukou <[email protected]>
date: 2025-12-15T15:19:02+01:00
summary:

Move doc on structure from devguide to `InternalDocs` (GH-142237)


Co-Authored-By: Paul Ross <[email protected]>
Co-Authored-By: Carol Willing <[email protected]>
Co-Authored-By: Hugo van Kemenade <[email protected]>
Co-Authored-By: Ezio Melotti <[email protected]>
Co-Authored-By: Adam Turner <[email protected]>

files:
A InternalDocs/structure.md
M InternalDocs/README.md

diff --git a/InternalDocs/README.md b/InternalDocs/README.md
index 80744f30a5b591..3e8ab442315753 100644
--- a/InternalDocs/README.md
+++ b/InternalDocs/README.md
@@ -11,6 +11,11 @@ it is not, please report that through the
 [issue tracker](https://github.com/python/cpython/issues).
 
 
+General Resources
+---
+
+- [Source Code Structure](structure.md)
+
 Compiling Python Source Code
 ---
 
diff --git a/InternalDocs/structure.md b/InternalDocs/structure.md
new file mode 100644
index 00000000000000..75c8476aa0ad98
--- /dev/null
+++ b/InternalDocs/structure.md
@@ -0,0 +1,40 @@
+# CPython source code
+
+This section gives an overview of CPython's code structure and provides
+a summary of file locations for modules and built-ins.
+
+
+## Source code layout
+
+For a Python module, the typical layout is:
+
+* `Lib/<module>.py`
+* `Modules/_<module>.c` (if there's also a C accelerator module)
+* `Lib/test/test_<module>.py`
+* `Doc/library/<module>.rst`
+
+For an extension module, the typical layout is:
+
+* `Modules/<module>module.c`
+* `Lib/test/test_<module>.py`
+* `Doc/library/<module>.rst`
+
+For builtin types, the typical layout is:
+
+* `Objects/<builtin>object.c`
+* `Lib/test/test_<builtin>.py`
+* [`Doc/library/stdtypes.rst`](../Doc/library/stdtypes.rst)
+
+For builtin functions, the typical layout is:
+
+* [`Python/bltinmodule.c`](../Python/bltinmodule.c)
+* [`Lib/test/test_builtin.py`](../Lib/test/test_builtin.py)
+* [`Doc/library/functions.rst`](../Doc/library/functions.rst)
+
+Some exceptions to these layouts are:
+
+* built-in type `int` is at [`Objects/longobject.c`](../Objects/longobject.c)
+* built-in type `str` is at 
[`Objects/unicodeobject.c`](../Objects/unicodeobject.c)
+* built-in module `sys` is at [`Python/sysmodule.c`](../Python/sysmodule.c)
+* built-in module `marshal` is at [`Python/marshal.c`](../Python/marshal.c)
+* Windows-only module `winreg` is at [`PC/winreg.c`](../PC/winreg.c)

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]

Reply via email to