Skip to content

Instantly share code, notes, and snippets.

View AlexWaygood's full-sized avatar

Alex Waygood AlexWaygood

View GitHub Profile
{"version": 1, "file_mapping": {"main.py": "main.py", "pyproject.toml": "pyproject.toml"}}
@AlexWaygood
AlexWaygood / metaclass_keyword_handling.md
Created April 14, 2026 10:44
Claude walkthrough of `metaclass=` handling

How CPython handles metaclass= in class statements

This walks through the full lifecycle of a metaclass= keyword argument, from the bytecode the compiler emits for a class statement down to the metaclass resolution logic in builtins.__build_class__ and _PyType_CalculateMetaclass. All permalinks pin to commit d931725bc850cd096f6703bc285e885f1e015f05.

1. The compiler lowers class to a call to __build_class__

{"version": 1, "file_mapping": {"main.py": "main.py", "pyproject.toml": "pyproject.toml"}}
{"version": 1, "file_mapping": {"main.py": "main.py", "pyproject.toml": "pyproject.toml"}}
{"version": 1, "file_mapping": {"main.py": "main.py", "pyproject.toml": "pyproject.toml"}}
{"version": 1, "file_mapping": {"main.py": "main.py", "pyproject.toml": "pyproject.toml"}}
{"version": 1, "file_mapping": {"main.py": "main.py", "pyproject.toml": "pyproject.toml"}}
{"version": 1, "file_mapping": {"main.py": "main.py", "pyproject.toml": "pyproject.toml"}}
{"version": 1, "file_mapping": {"main.py": "main.py", "pyproject.toml": "pyproject.toml"}}
{"version": 1, "file_mapping": {"main.py": "main.py", "pyproject.toml": "pyproject.toml"}}