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]
