8000 devguide/exploring.rst at aef9ede1509ec1d59aa9de09ab74e38f3d5331f7 · python/devguide · GitHub
[go: up one dir, main page]

Skip to content
{"payload":{"allShortcutsEnabled":false,"fileTree":{"":{"items":[{"name":".github","path":".github","contentType":"directory"},{"name":"images","path":"images","contentType":"directory"},{"name":"tools","path":"tools","contentType":"directory"},{"name":".gitignore","path":".gitignore","contentType":"file"},{"name":".hgignore","path":".hgignore","contentType":"file"},{"name":".travis.yml","path":".travis.yml","contentType":"file"},{"name":"LICENSE","path":"LICENSE","contentType":"file"},{"name":"Makefile","path":"Makefile","contentType":"file"},{"name":"README.rst","path":"README.rst","contentType":"file"},{"name":"appendix.rst","path":"appendix.rst","contentType":"file"},{"name":"buildbots.rst","path":"buildbots.rst","contentType":"file"},{"name":"buildworker.rst","path":"buildworker.rst","contentType":"file"},{"name":"c-api.rst","path":"c-api.rst","contentType":"file"},{"name":"clang.rst","path":"clang.rst","contentType":"file"},{"name":"committing.rst","path":"committing.rst","contentType":"file"},{"name":"communication.rst","path":"communication.rst","contentType":"file"},{"name":"compiler.rst","path":"compiler.rst","contentType":"file"},{"name":"conf.py","path":"conf.py","contentType":"file"},{"name":"coredev.rst","path":"coredev.rst","contentType":"file"},{"name":"coverage.rst","path":"coverage.rst","contentType":"file"},{"name":"coverity.rst","path":"coverity.rst","contentType":"file"},{"name":"devcycle.rst","path":"devcycle.rst","contentType":"file"},{"name":"developers.csv","path":"developers.csv","contentType":"file"},{"name":"developers.rst","path":"developers.rst","contentType":"file"},{"name":"docquality.rst","path":"docquality.rst","contentType":"file"},{"name":"documenting.rst","path":"documenting.rst","contentType":"file"},{"name":"experts.rst","path":"experts.rst","contentType":"file"},{"name":"exploring.rst","path":"exploring.rst","contentType":"file"},{"name":"extensions.rst","path":"extensions.rst","contentType":"file"},{"name":"fixingissues.rst","path":"fixingissues.rst","contentType":"file"},{"name":"garbage_collector.rst","path":"garbage_collector.rst","contentType":"file"},{"name":"gdb.rst","path":"gdb.rst","contentType":"file"},{"name":"gitbootcamp.rst","path":"gitbootcamp.rst","contentType":"file"},{"name":"grammar.rst","path":"grammar.rst","contentType":"file"},{"name":"help.rst","path":"help.rst","contentType":"file"},{"name":"index.rst","path":"index.rst","contentType":"file"},{"name":"langchanges.rst","path":"langchanges.rst","contentType":"file"},{"name":"make.bat","path":"make.bat","contentType":"file"},{"name":"motivations.rst","path":"motivations.rst","contentType":"file"},{"name":"porting.rst","path":"porting.rst","contentType":"file"},{"name":"pullrequest.rst","path":"pullrequest.rst","contentType":"file"},{"name":"requirements.txt","path":"requirements.txt","contentType":"file"},{"name":"runtests.rst","path":"runtests.rst","contentType":"file"},{"name":"setup.rst","path":"setup.rst","contentType":"file"},{"name":"silencewarnings.rst","path":"silencewarnings.rst","contentType":"file"},{"name":"stdlibchanges.rst","path":"stdlibchanges.rst","contentType":"file"},{"name":"tracker.rst","path":"tracker.rst","contentType":"file"},{"name":"triaging.rst","path":"triaging.rst","contentType":"file"}],"totalCount":48}},"fileTreeProcessingTime":13.431588,"foldersToFetch":[],"incompleteFileTree":false,"repo":{"id":63972479,"defaultBranch":"main","name":"devguide","ownerLogin":"python","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2016-07-22T17:48:56.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/1525981?v=4","public":true,"private":false,"isOrgOwned":true},"codeLineWrapEnabled":false,"symbolsExpanded":false,"treeExpanded":true,"refInfo":{"name":"aef9ede1509ec1d59aa9de09ab74e38f3d5331f7","listCacheKey":"v0:1743482989.0","canEdit":false,"refType":"tree","currentOid":"aef9ede1509ec1d59aa9de09ab74e38f3d5331f7"},"path":"exploring.rst","currentUser":null,"blob":{"rawLines":null,"stylingDirectives":null,"colorizedLines":null,"csv":null,"csvError":null,"dependabotInfo":{"showConfigurationBanner":false,"configFilePath":null,"networkDependabotPath":"/python/devguide/network/updates","dismissConfigurationNoticePath":"/settings/dismiss-notice/dependabot_configuration_notice","configurationNoticeDismissed":null},"displayName":"exploring.rst","displayUrl":"https://github.com/python/devguide/blob/aef9ede1509ec1d59aa9de09ab74e38f3d5331f7/exploring.rst?raw=true","headerInfo":{"blobSize":"4.09 KB","deleteTooltip":"You must be signed in to make or propose changes","editTooltip":"You must be signed in to make or propose changes","ghDesktopPath":null,"isGitLfs":false,"onBranch":false,"shortPath":"0aae5c4","siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fdevguide%2Fblob%2Faef9ede1509ec1d59aa9de09ab74e38f3d5331f7%2Fexploring.rst","isCSV":false,"isRichtext":true,"toc":[{"level":1,"text":"Exploring CPython's Internals","anchor":"exploring-cpythons-internals","htmlText":"Exploring CPython's Internals"},{"level":2,"text":"CPython Source Code Layout","anchor":"cpython-source-code-layout","htmlText":"CPython Source Code Layout"},{"level":2,"text":"Additional References","anchor":"additional-references","htmlText":"Additional References"}],"lineInfo":{"truncatedLoc":"98","truncatedSloc":"64"},"mode":"file"},"image":false,"isCodeownersFile":null,"isPlain":false,"isValidLegacyIssueTemplate":false,"issueTemplate":null,"discussionTemplate":null,"language":"reStructuredText","languageID":419,"large":false,"planSupportInfo":{"repoIsFork":null,"repoOwnedByCurrentUser":null,"requestFullPath":"/python/devguide/blob/aef9ede1509ec1d59aa9de09ab74e38f3d5331f7/exploring.rst","showFreeOrgGatedFeatureMessage":null,"showPlanSupportBanner":null,"upgradeDataAttributes":null,"upgradePath":null},"publishBannersInfo":{"dismissActionNoticePath":"/settings/dismiss-notice/publish_action_from_dockerfile","releasePath":"/python/devguide/releases/new?marketplace=true","showPublishActionBanner":false},"rawBlobUrl":"https://github.com/python/devguide/raw/aef9ede1509ec1d59aa9de09ab74e38f3d5331f7/exploring.rst","renderImageOrRaw":false,"richText":"\u003carticle class=\"markdown-body entry-content container-lg\" itemprop=\"text\"\u003e\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch1 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eExploring CPython's Internals\u003c/h1\u003e\u003ca id=\"user-content-exploring-cpythons-internals\" class=\"anchor\" aria-label=\"Permalink: Exploring CPython's Internals\" href=\"#exploring-cpythons-internals\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eThis is a quick guide for people who are interested in learning more about\nCPython's internals. It provides a summary of the source code structure\nand contains references to resources providing a more in-depth view.\u003c/p\u003e\n\u003ca name=\"user-content-cpython-source-code-layout\"\u003e\u003c/a\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eCPython Source Code Layout\u003c/h2\u003e\u003ca id=\"user-content-cpython-source-code-layout\" class=\"anchor\" aria-label=\"Permalink: CPython Source Code Layout\" href=\"#cpython-source-code-layout\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eThis guide gives an overview of CPython's code structure.\nIt serves as a summary of file locations for modules and builtins.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eFor Python modules, the typical layout is:\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003ca href=\"#id1\"\u003e\u003cspan id=\"user-content-id2\"\u003e:file:`Lib/{\u0026lt;module\u0026gt;}.py`\u003c/span\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#id3\"\u003e\u003cspan id=\"user-content-id4\"\u003e:file:`Modules/_{\u0026lt;module\u0026gt;}.c`\u003c/span\u003e\u003c/a\u003e (if there's also a C accelerator module)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#id5\"\u003e\u003cspan id=\"user-content-id6\"\u003e:file:`Lib/test/test_{\u0026lt;module\u0026gt;}.py`\u003c/span\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#id7\"\u003e\u003cspan id=\"user-content-id8\"\u003e:file:`Doc/library/{\u0026lt;module\u0026gt;}.rst`\u003c/span\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp dir=\"auto\"\u003eFor extension-only modules, the typical layout is:\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003ca href=\"#id9\"\u003e\u003cspan id=\"user-content-id10\"\u003e:file:`Modules/{\u0026lt;module\u0026gt;}module.c`\u003c/span\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#id11\"\u003e\u003cspan id=\"user-content-id12\"\u003e:file:`Lib/test/test_{\u0026lt;module\u0026gt;}.py`\u003c/span\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#id13\"\u003e\u003cspan id=\"user-content-id14\"\u003e:file:`Doc/library/{\u0026lt;module\u0026gt;}.rst`\u003c/span\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp dir=\"auto\"\u003eFor builtin types, the typical layout is:\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003ca href=\"#id15\"\u003e\u003cspan id=\"user-content-id16\"\u003e:file:`Objects/{\u0026lt;builtin\u0026gt;}object.c`\u003c/span\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#id17\"\u003e\u003cspan id=\"user-content-id18\"\u003e:file:`Lib/test/test_{\u0026lt;builtin\u0026gt;}.py`\u003c/span\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#id19\"\u003e\u003cspan id=\"user-content-id20\"\u003e:file:`Doc/library/stdtypes.rst`\u003c/span\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp dir=\"auto\"\u003eFor builtin functions, the typical layout is:\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003ca href=\"#id21\"\u003e\u003cspan id=\"user-content-id22\"\u003e:file:`Python/bltinmodule.c`\u003c/span\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#id23\"\u003e\u003cspan id=\"user-content-id24\"\u003e:file:`Lib/test/test_builtin.py`\u003c/span\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#id25\"\u003e\u003cspan id=\"user-content-id26\"\u003e:file:`Doc/library/functions.rst`\u003c/span\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp dir=\"auto\"\u003eSome exceptions:\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003ebuiltin type \u003ccode\u003eint\u003c/code\u003e is at \u003ca href=\"#id27\"\u003e\u003cspan id=\"user-content-id28\"\u003e:file:`Objects/longobject.c`\u003c/span\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuiltin type \u003ccode\u003estr\u003c/code\u003e is at \u003ca href=\"#id29\"\u003e\u003cspan id=\"user-content-id30\"\u003e:file:`Objects/unicodeobject.c`\u003c/span\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuiltin module \u003ccode\u003esys\u003c/code\u003e is at \u003ca href=\"#id31\"\u003e\u003cspan id=\"user-content-id32\"\u003e:file:`Python/sysmodule.c`\u003c/span\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuiltin module \u003ccode\u003emarshal\u003c/code\u003e is at \u003ca href=\"#id33\"\u003e\u003cspan id=\"user-content-id34\"\u003e:file:`Python/marshal.c`\u003c/span\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWindows-only module \u003ccode\u003ewinreg\u003c/code\u003e is at \u003ca href=\"#id35\"\u003e\u003cspan id=\"user-content-id36\"\u003e:file:`PC/winreg.c`\u003c/span\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ca name=\"user-content-additional-references\"\u003e\u003c/a\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eAdditional References\u003c/h2\u003e\u003ca id=\"user-content-additional-references\" class=\"anchor\" aria-label=\"Permalink: Additional References\" href=\"#additional-references\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eFor over 20 years the CPython code base has been changing and evolving.\nHere's a sample of resources about the architecture of CPython aimed at\nbuilding your understanding of both the 2.x and 3.x versions of CPython:\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003cstrong\u003eCurrent references\u003c/strong\u003e\u003ctable\u003e\n\n\n\n\n\n\n\n\u003cthead valign=\"bottom\"\u003e\n\u003ctr\u003e\u003cth\u003eTitle\u003c/th\u003e\n\u003cth\u003eBrief\u003c/th\u003e\n\u003cth\u003eAuthor\u003c/th\u003e\n\u003cth\u003eVersion\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody valign=\"top\"\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://hackmd.io/s/ByMHBMjFe\" rel=\"nofollow\"\u003eA guide from parser to objects, observed using GDB\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eCode walk from Parser, AST, Sym Table and Objects\u003c/td\u003e\n\u003ctd\u003eLouie Lu\u003c/td\u003e\n\u003ctd\u003e3.7.a0\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://greentreesnakes.readthedocs.io/en/latest/\" rel=\"nofollow\"\u003eGreen Tree Snakes\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eThe missing Python AST docs\u003c/td\u003e\n\u003ctd\u003eThomas Kluyver\u003c/td\u003e\n\u003ctd\u003e3.6\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://paper.dropbox.com/doc/Yet-another-guided-tour-of-CPython-XY7KgFGn88zMNivGJ4Jzv\" rel=\"nofollow\"\u003eYet another guided tour of CPython\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eA guide for how CPython REPL works\u003c/td\u003e\n\u003ctd\u003eGuido van Rossum\u003c/td\u003e\n\u003ctd\u003e3.5\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"http://pgbovine.net/python-async-io-walkthrough.htm\" rel=\"nofollow\"\u003ePython Asynchronous I/O Walkthrough\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eHow CPython async I/O, generator and coroutine works\u003c/td\u003e\n\u003ctd\u003ePhilip Guo\u003c/td\u003e\n\u003ctd\u003e3.5\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://pythonextensionpatterns.readthedocs.io/en/latest/\" rel=\"nofollow\"\u003eCoding Patterns for Python Extensions\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eReliable patterns of coding Python Extensions in C\u003c/td\u003e\n\u003ctd\u003ePaul Ross\u003c/td\u003e\n\u003ctd\u003e3.4\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://realpython.com/cpython-source-code-guide/\" rel=\"nofollow\"\u003eYour Guide to the CPython Source Code\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eYour Guide to the CPython Source Code\u003c/td\u003e\n\u003ctd\u003eAnthony Shaw\u003c/td\u003e\n\u003ctd\u003e3.8\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003cstrong\u003eHistorical references\u003c/strong\u003e\u003ctable\u003e\n\n\n\n\n\n\n\n\u003cthead valign=\"bottom\"\u003e\n\u003ctr\u003e\u003cth\u003eTitle\u003c/th\u003e\n\u003cth\u003eBrief\u003c/th\u003e\n\u003cth\u003eAuthor\u003c/th\u003e\n\u003cth\u003eVersion\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody valign=\"top\"\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://tech.blog.aknin.name/category/my-projects/pythons-innards/\" rel=\"nofollow\"\u003ePython's Innards Series\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eceval, objects, pystate and miscellaneous topics\u003c/td\u003e\n\u003ctd\u003eYaniv Aknin\u003c/td\u003e\n\u003ctd\u003e3.1\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://eli.thegreenplace.net/tag/python-internals\" rel=\"nofollow\"\u003eEli Bendersky's Python Internals\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eObjects, Symbol tables and miscellaneous topics\u003c/td\u003e\n\u003ctd\u003eEli Bendersky\u003c/td\u003e\n\u003ctd\u003e3.x\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://docs.google.com/document/d/1nzNN1jeNCC_bg1LADCvtTuGKvcyMskV1w8Ad2iLlwoI/\" rel=\"nofollow\"\u003eA guide from parser to objects, observed using Eclipse\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eCode walk from Parser, AST, Sym Table and Objects\u003c/td\u003e\n\u003ctd\u003ePrashanth Raghu\u003c/td\u003e\n\u003ctd\u003e2.7.12\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"http://pgbovine.net/cpython-internals.htm\" rel=\"nofollow\"\u003eCPython internals: A ten-hour codewalk through the Python interpreter source code\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eCode walk from source code to generators\u003c/td\u003e\n\u003ctd\u003ePhilip Guo\u003c/td\u003e\n\u003ctd\u003e2.7.8\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\n\u003c/article\u003e","renderedFileInfo":null,"shortPath":null,"symbolsEnabled":true,"tabSize":8,"topBannersInfo":{"overridingGlobalFundingFile":false,"globalPreferredFundingPath":"/python/.github/blob/5a0a7cb55767fb3667fe2391bcb66bda638edcb4/FUNDING.yml","showInvalidCitationWarning":false,"citationHelpUrl":"https://docs.github.com/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files","actionsOnboardingTip":null},"truncated":false,"viewable":true,"workflowRedirectUrl":null,"symbols":{"timed_out":false,"not_analyzed":true,"symbols":[]}},"copilotInfo":null,"copilotAccessAllowed":false,"modelsAccessAllowed":false,"modelsRepoIntegrationEnabled":false,"csrf_tokens":{"/python/devguide/branches":{"post":"F2vN1MzxapRWzwDd0iroX2-njMeTVRZSalXeR02Z0fNOkEaFgTS8LdbILvNVdRAAExdZI31PG-9KJHF55kretw"},"/repos/preferences":{"post":"JtJszH1vkMc5pJb0ts-cMfcaAh9Jrh5r1LsfN9N0gWXavMUCXMeIxH69Tr5Kkz61xooQC5J1nq87sx377bTzSg"}}},"title":"devguide/exploring.rst at aef9ede1509ec1d59aa9de09ab74e38f3d5331f7 · python/devguide","appPayload":{"helpUrl":"https://docs.github.com","findFileWorkerPath":"/assets-cdn/worker/find-file-worker-7d7eb7c71814.js","findInFileWorkerPath":"/assets-cdn/worker/find-in-file-worker-1ae9fa256942.js","githubDevUrl":null,"enabled_features":{"code_nav_ui_events":false,"react_blob_overlay":false,"accessible_code_button":true,"github_models_repo_integration":false}}}
0