)]}'
{
  "commit": "508b49845d23404c6d13f9d75cf84a9c936fb0ce",
  "tree": "1d2b7f1b231f4645485662f8fe7a7486a22aa299",
  "parents": [
    "5dd21617164cf69e848a70e3d7e32faf0bc3f279"
  ],
  "author": {
    "name": "Petr Viktorin",
    "email": "encukou@gmail.com",
    "time": "Tue May 05 07:18:04 2026"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue May 05 07:18:04 2026"
  },
  "message": "gh-149044: Implement PEP 820 – PySlot: Unified slot system for the C API (GH-149055)\n\n\nCo-authored-by: Peter Bierma \u003czintensitydev@gmail.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f4d65dfd1dfbd3bba0c37bd4ab3d589443894757",
      "old_mode": 33188,
      "old_path": ".gitattributes",
      "new_id": "4d52f900b93179e3fb5e3ef641fe9dec8773f18a",
      "new_mode": 33188,
      "new_path": ".gitattributes"
    },
    {
      "type": "modify",
      "old_id": "7bc04970b19503cb28943865d819151ec51ade87",
      "old_mode": 33188,
      "old_path": "Doc/c-api/extension-modules.rst",
      "new_id": "34ee86c7876ae742d682c3278ac4eff7e437b951",
      "new_mode": 33188,
      "new_path": "Doc/c-api/extension-modules.rst"
    },
    {
      "type": "modify",
      "old_id": "eabe00f4004001f3c9848037a17080926d141177",
      "old_mode": 33188,
      "old_path": "Doc/c-api/index.rst",
      "new_id": "051f6fd765e8506cc9b73af93e91fe8bcecb5500",
      "new_mode": 33188,
      "new_path": "Doc/c-api/index.rst"
    },
    {
      "type": "modify",
      "old_id": "b67ca671a2a11852628a8f48bc5a3f2d5bad71e1",
      "old_mode": 33188,
      "old_path": "Doc/c-api/module.rst",
      "new_id": "7229ea6c69ee4615835dc7ccfbc61203cad5eee9",
      "new_mode": 33188,
      "new_path": "Doc/c-api/module.rst"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "66fb6cd1298de260ff98c9aee3756b7adae053c2",
      "new_mode": 33188,
      "new_path": "Doc/c-api/slots.rst"
    },
    {
      "type": "modify",
      "old_id": "c9bb5c3f09ac18631a2ded6d2dccc32c3c8be8cf",
      "old_mode": 33188,
      "old_path": "Doc/c-api/type.rst",
      "new_id": "1794427a19ee6b431eb87c4cce681d83fc65f9e4",
      "new_mode": 33188,
      "new_path": "Doc/c-api/type.rst"
    },
    {
      "type": "modify",
      "old_id": "d3d8239365f9bf99054d60da38e5d43fe9f065e6",
      "old_mode": 33188,
      "old_path": "Doc/c-api/typeobj.rst",
      "new_id": "38db69e5c6db96da2dd9e683d71d484ca0666a5e",
      "new_mode": 33188,
      "new_path": "Doc/c-api/typeobj.rst"
    },
    {
      "type": "modify",
      "old_id": "49277b57b877d40602326fdc4aef43ce55c4d41c",
      "old_mode": 33188,
      "old_path": "Doc/data/stable_abi.dat",
      "new_id": "804e9c82e7818b308c2532e9ae210426c541d75b",
      "new_mode": 33188,
      "new_path": "Doc/data/stable_abi.dat"
    },
    {
      "type": "modify",
      "old_id": "cd755a98f7f5f4ca215f015b1c2faa739650b810",
      "old_mode": 33188,
      "old_path": "Doc/extending/first-extension-module.rst",
      "new_id": "894f5bdbb8f09c220b4ae00f87ca183724c2fa0f",
      "new_mode": 33188,
      "new_path": "Doc/extending/first-extension-module.rst"
    },
    {
      "type": "modify",
      "old_id": "0bc34ef57445cb9ffc0f51c7754bddd816184d13",
      "old_mode": 33188,
      "old_path": "Doc/includes/capi-extension/spammodule-01.c",
      "new_id": "8ddb416e7d6cd08755213fe8c2264c156fd962ae",
      "new_mode": 33188,
      "new_path": "Doc/includes/capi-extension/spammodule-01.c"
    },
    {
      "type": "modify",
      "old_id": "7c4ff0d8775168c8a934263ea6cb180fcf09dba6",
      "old_mode": 33188,
      "old_path": "Doc/whatsnew/3.15.rst",
      "new_id": "90954e06e6c1e9934c37e93bad846a8bfec182b2",
      "new_mode": 33188,
      "new_path": "Doc/whatsnew/3.15.rst"
    },
    {
      "type": "modify",
      "old_id": "d5e38b8b0201eec62a6ac724e7f7dcb465773610",
      "old_mode": 33188,
      "old_path": "Include/Python.h",
      "new_id": "337119c15fe8b6f6c055f8bc0575740b877ff1af",
      "new_mode": 33188,
      "new_path": "Include/Python.h"
    },
    {
      "type": "modify",
      "old_id": "a863ecb33078aba2369f860a9e8f0ea39a672f75",
      "old_mode": 33188,
      "old_path": "Include/exports.h",
      "new_id": "18692283005e59686fbafaba78933f3052444b15",
      "new_mode": 33188,
      "new_path": "Include/exports.h"
    },
    {
      "type": "modify",
      "old_id": "f60c5510d2007529199c50e0d4380e3b2c521835",
      "old_mode": 33188,
      "old_path": "Include/internal/pycore_importdl.h",
      "new_id": "9ed87a544234c596b8aec457da8d9a0f6bb540f4",
      "new_mode": 33188,
      "new_path": "Include/internal/pycore_importdl.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "960a632aea17eea41a5e8c9c26d21e70e422bd78",
      "new_mode": 33188,
      "new_path": "Include/internal/pycore_slots.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "73a77070038cef4be05a1523c5af9057bb442aaa",
      "new_mode": 33188,
      "new_path": "Include/internal/pycore_slots_generated.h"
    },
    {
      "type": "modify",
      "old_id": "c2fb1f85165f7d2dd04ae08856f47638ffe6a717",
      "old_mode": 33188,
      "old_path": "Include/moduleobject.h",
      "new_id": "88c66672ff164a8adbb844e387a88ceaf917e240",
      "new_mode": 33188,
      "new_path": "Include/moduleobject.h"
    },
    {
      "type": "modify",
      "old_id": "043be0260b1aec4ade77dfb06ffcba1f4d2eb18a",
      "old_mode": 33188,
      "old_path": "Include/object.h",
      "new_id": "20c2dab4401fef04de8800657e85e02fadb9e408",
      "new_mode": 33188,
      "new_path": "Include/object.h"
    },
    {
      "type": "modify",
      "old_id": "e78ed56a3b67cd19a6fbce550cb9b145c719ed31",
      "old_mode": 33188,
      "old_path": "Include/pytypedefs.h",
      "new_id": "1d0b4e3e85ef74a4061178a2297cfd9c5b6bac49",
      "new_mode": 33188,
      "new_path": "Include/pytypedefs.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4bf7bda0208a8df81523f27a4b1628999373165b",
      "new_mode": 33188,
      "new_path": "Include/slots.h"
    },
    {
      "type": "rename",
      "old_id": "a7f3017ec02e92f69f8194b11f51d2ceee172a6c",
      "old_mode": 33188,
      "old_path": "Include/typeslots.h",
      "new_id": "42edd3ad4c69ffd5062f0fd5087c4ee2e0811d39",
      "new_mode": 33188,
      "new_path": "Include/slots_generated.h",
      "score": 60
    },
    {
      "type": "modify",
      "old_id": "4c16bbd4cb0acf16948249f7afa48aa0baf49877",
      "old_mode": 33188,
      "old_path": "Lib/test/test_capi/test_misc.py",
      "new_id": "3debc6369e89fb4c5d4ff3b99885479f86392ba8",
      "new_mode": 33188,
      "new_path": "Lib/test/test_capi/test_misc.py"
    },
    {
      "type": "modify",
      "old_id": "c32ca1098edc56b4691e1b94a06e0a338f579b55",
      "old_mode": 33188,
      "old_path": "Lib/test/test_capi/test_module.py",
      "new_id": "29e1ce5b9af87f54fb332bd06c440c1d7d7985ef",
      "new_mode": 33188,
      "new_path": "Lib/test/test_capi/test_module.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c78b118712b11d5bc930a5a18000ee89721a5651",
      "new_mode": 33188,
      "new_path": "Lib/test/test_capi/test_slots.py"
    },
    {
      "type": "modify",
      "old_id": "46d00f3845eaa62665cb0e1a0bbf6aabc2d6c1b7",
      "old_mode": 33188,
      "old_path": "Lib/test/test_cext/extension.c",
      "new_id": "895eca50f03b9850aea1037ca48994d1004db6d4",
      "new_mode": 33188,
      "new_path": "Lib/test/test_cext/extension.c"
    },
    {
      "type": "modify",
      "old_id": "7b348ff298a4b25adedac6ab9f1d52e8999eaf5e",
      "old_mode": 33188,
      "old_path": "Lib/test/test_stable_abi_ctypes.py",
      "new_id": "a7b864c701be772c0c403814791e6e793a60130a",
      "new_mode": 33188,
      "new_path": "Lib/test/test_stable_abi_ctypes.py"
    },
    {
      "type": "modify",
      "old_id": "5789d33e7f4456ff1b2d6e42898fda7b358660e7",
      "old_mode": 33188,
      "old_path": "Makefile.pre.in",
      "new_id": "2834226ff0c31f4535b40683c2d0362e4f00df04",
      "new_mode": 33188,
      "new_path": "Makefile.pre.in"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d7bb38f7cd7366a227cbbe089a21011bed3a4b94",
      "new_mode": 33188,
      "new_path": "Misc/NEWS.d/next/C_API/2026-04-27-10-56-22.gh-issue-149044.TbOcUS.rst"
    },
    {
      "type": "modify",
      "old_id": "bd3ea54582580997206f7cc41ca7cef560e949ee",
      "old_mode": 33188,
      "old_path": "Misc/stable_abi.toml",
      "new_id": "6d63a6796b173996ab42bf6ab2611aa7e4d34f45",
      "new_mode": 33188,
      "new_path": "Misc/stable_abi.toml"
    },
    {
      "type": "modify",
      "old_id": "a274c312d99313e2244ee8a2fda8e3be328157b5",
      "old_mode": 33188,
      "old_path": "Modules/Setup.stdlib.in",
      "new_id": "19765bc313555b711f7f74ec38058b1a9c6e153b",
      "new_mode": 33188,
      "new_path": "Modules/Setup.stdlib.in"
    },
    {
      "type": "modify",
      "old_id": "29eda7e008c6cb3812c841f84ef059be1d8d4c72",
      "old_mode": 33188,
      "old_path": "Modules/_testcapi/module.c",
      "new_id": "b0b4a4f4c39d8f9d9e6943720ed29661791581e0",
      "new_mode": 33188,
      "new_path": "Modules/_testcapi/module.c"
    },
    {
      "type": "modify",
      "old_id": "9bef58d1f836687f7e6e41b038fadde822fa906f",
      "old_mode": 33188,
      "old_path": "Modules/_testcapi/type.c",
      "new_id": "f566efa0ca15ae64893ae0752da8bfcde8885cdf",
      "new_mode": 33188,
      "new_path": "Modules/_testcapi/type.c"
    },
    {
      "type": "modify",
      "old_id": "d3eb02d47273474b082b69e5f289ebc12968dc34",
      "old_mode": 33188,
      "old_path": "Modules/_testlimitedcapi.c",
      "new_id": "5f2be0dd43954e327a3cbb2a81312fd6aac52412",
      "new_mode": 33188,
      "new_path": "Modules/_testlimitedcapi.c"
    },
    {
      "type": "modify",
      "old_id": "1cbb4f5659af0f59fadc1cffffab2e53ea06ffb6",
      "old_mode": 33188,
      "old_path": "Modules/_testlimitedcapi/parts.h",
      "new_id": "1eea4f74d14416ce0006e3abf032ce117694b8ab",
      "new_mode": 33188,
      "new_path": "Modules/_testlimitedcapi/parts.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7a8d6466e53a0965cf0dd7f26d346670948cf0d1",
      "new_mode": 33188,
      "new_path": "Modules/_testlimitedcapi/slots.c"
    },
    {
      "type": "modify",
      "old_id": "b0668e32eb57f4b208c1eaa65e52da43f2e2a809",
      "old_mode": 33188,
      "old_path": "Modules/_testmultiphase.c",
      "new_id": "128e3f79ecd99c27b54bb1ca7e7751ee56429987",
      "new_mode": 33188,
      "new_path": "Modules/_testmultiphase.c"
    },
    {
      "type": "modify",
      "old_id": "19e5134d5cf26b77aac6e4ff965076fa58aa58b9",
      "old_mode": 33188,
      "old_path": "Objects/moduleobject.c",
      "new_id": "b7d2e5ffde4fe7d4e5e67bff1fbca381434db248",
      "new_mode": 33188,
      "new_path": "Objects/moduleobject.c"
    },
    {
      "type": "modify",
      "old_id": "fb3c7101410683561c5f317161c3b89cbcdaf26a",
      "old_mode": 33188,
      "old_path": "Objects/typeobject.c",
      "new_id": "041dfecccd323034baa45b809d7baa1477737390",
      "new_mode": 33188,
      "new_path": "Objects/typeobject.c"
    },
    {
      "type": "delete",
      "old_id": "642160fe0bd8bcc7a0b0edc14613186f2d760ff0",
      "old_mode": 33188,
      "old_path": "Objects/typeslots.inc",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "c7f8a33bb1e74ea44e529ad21889660871caf771",
      "old_mode": 33261,
      "old_path": "Objects/typeslots.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "3303fccf0261affdf59877817f45da6feda52f5a",
      "old_mode": 33261,
      "old_path": "PC/python3dll.c",
      "new_id": "3f29382f9b0b342303168e616241ae2dd0a94b8a",
      "new_mode": 33261,
      "new_path": "PC/python3dll.c"
    },
    {
      "type": "modify",
      "old_id": "953973a2ad32df7bce6ede5cf3ae9e75a7e68bbb",
      "old_mode": 33188,
      "old_path": "PCbuild/_freeze_module.vcxproj",
      "new_id": "aae8e59faad7557389e684d2dc23a470d959223d",
      "new_mode": 33188,
      "new_path": "PCbuild/_freeze_module.vcxproj"
    },
    {
      "type": "modify",
      "old_id": "13db4d93f54518db387af372b5962f571b99788a",
      "old_mode": 33188,
      "old_path": "PCbuild/_freeze_module.vcxproj.filters",
      "new_id": "e76acb5d32385808bd209aa2d2fe4e0bed647ce3",
      "new_mode": 33188,
      "new_path": "PCbuild/_freeze_module.vcxproj.filters"
    },
    {
      "type": "modify",
      "old_id": "3d70517fbe31e8c73110f2263d21ead0e427c8dd",
      "old_mode": 33188,
      "old_path": "PCbuild/_testlimitedcapi.vcxproj",
      "new_id": "34841ff9780a0111a448c873d7571ff3a44cc696",
      "new_mode": 33188,
      "new_path": "PCbuild/_testlimitedcapi.vcxproj"
    },
    {
      "type": "modify",
      "old_id": "5e0a0f65cfcc3d39d450224cdabe16107248b316",
      "old_mode": 33188,
      "old_path": "PCbuild/_testlimitedcapi.vcxproj.filters",
      "new_id": "a29973786c9485dbfcc7cb2d16a70a5b68f1c5bb",
      "new_mode": 33188,
      "new_path": "PCbuild/_testlimitedcapi.vcxproj.filters"
    },
    {
      "type": "modify",
      "old_id": "f820c3dd64f58c050b9fd658f507971df8c593ce",
      "old_mode": 33188,
      "old_path": "PCbuild/pythoncore.vcxproj",
      "new_id": "e306fe9a9615ad07699f9c8df3e97b6226f7a464",
      "new_mode": 33188,
      "new_path": "PCbuild/pythoncore.vcxproj"
    },
    {
      "type": "modify",
      "old_id": "04b6641ae30e7f8c06bddbabfd625de56e8327aa",
      "old_mode": 33188,
      "old_path": "PCbuild/pythoncore.vcxproj.filters",
      "new_id": "acabcdc8575d4803956e9997827d5534de89d905",
      "new_mode": 33188,
      "new_path": "PCbuild/pythoncore.vcxproj.filters"
    },
    {
      "type": "modify",
      "old_id": "7aa96196ec1e1055483a24327581a53cc9a3cc10",
      "old_mode": 33188,
      "old_path": "Python/import.c",
      "new_id": "60a5ee6e770f598a4c5d7ae518f2ac0ef29fbf9e",
      "new_mode": 33188,
      "new_path": "Python/import.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6bc74c727230e0ed674820ef698ac610a67abb9c",
      "new_mode": 33188,
      "new_path": "Python/slots.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "626a44d2f2c80e83ba47fa319348e184fe845a0e",
      "new_mode": 33188,
      "new_path": "Python/slots.toml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b8da8fb7890d8c585d527b4a88419657705a25b0",
      "new_mode": 33188,
      "new_path": "Python/slots_generated.c"
    },
    {
      "type": "modify",
      "old_id": "996f725fdcb9b57069c249cca7c7e932625b9c0a",
      "old_mode": 33188,
      "old_path": "Tools/build/.ruff.toml",
      "new_id": "4a3dd618f6559f83dbf8535f78d36b849abeca3f",
      "new_mode": 33188,
      "new_path": "Tools/build/.ruff.toml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1fdec6efa509339eb826953d8cc06668a841ab95",
      "new_mode": 33261,
      "new_path": "Tools/build/generate_slots.py"
    },
    {
      "type": "modify",
      "old_id": "aa89e312b624825f66ab90de67ef9a9513a9035b",
      "old_mode": 33188,
      "old_path": "Tools/c-analyzer/cpython/ignored.tsv",
      "new_id": "11d58460b3975d86b159d02457f1e99d3db37004",
      "new_mode": 33188,
      "new_path": "Tools/c-analyzer/cpython/ignored.tsv"
    },
    {
      "type": "modify",
      "old_id": "734aa3a6a721d1e400333881bc95b1433a742b51",
      "old_mode": 33261,
      "old_path": "configure",
      "new_id": "44ba9a211fefccd6547ea699b893ac92768aaf28",
      "new_mode": 33261,
      "new_path": "configure"
    },
    {
      "type": "modify",
      "old_id": "c8cb1686d55c07452e889d96027485f19c1c0771",
      "old_mode": 33188,
      "old_path": "configure.ac",
      "new_id": "b5a32d4b0901751f95a2dd0339d69d665b3fd9ce",
      "new_mode": 33188,
      "new_path": "configure.ac"
    }
  ]
}
