)]}'
{
  "commit": "03c4080c71f49df9c219354b7b38b738917fd2ed",
  "tree": "77e69accecd104ce8195741923605fa713a8bb5d",
  "parents": [
    "1796c191b43ed0787d83c07be7de8118fb10e8b0"
  ],
  "author": {
    "name": "Victor Stinner",
    "email": "vstinner@python.org",
    "time": "Sun Sep 03 16:54:27 2023"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sun Sep 03 16:54:27 2023"
  },
  "message": "gh-108765: Python.h no longer includes \u003cctype.h\u003e (#108831)\n\nRemove \u003cctype.h\u003e in C files which don\u0027t use it; only sre.c and\r\n_decimal.c still use it.\r\n\r\nRemove _PY_PORT_CTYPE_UTF8_ISSUE code from pyport.h:\r\n\r\n* Code added by commit b5047fd01948ab108edcc1b3c2c901d915814cfd\r\n  in 2004 for MacOSX and FreeBSD.\r\n* Test removed by commit 52ddaefb6bab1a74ecffe8519c02735794ebfbe1\r\n  in 2007, since Python str type now uses locale independent\r\n  functions like Py_ISALPHA() and Py_TOLOWER() and the Unicode\r\n  database.\r\n\r\nModules/_sre/sre.c replaces _PY_PORT_CTYPE_UTF8_ISSUE with new\r\nfunctions: sre_isalnum(), sre_tolower(), sre_toupper().\r\n\r\nRemove unused includes:\r\n\r\n* _localemodule.c: remove \u003cstdio.h\u003e.\r\n* getargs.c: remove \u003cfloat.h\u003e.\r\n* dynload_win.c: remove \u003cdirect.h\u003e, it no longer calls _getcwd()\r\n  since commit fb1f68ed7cc1536482d1debd70a53c5442135fe2 (in 2001).",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1c91a1dadb899f0e1452c3fa0a6c69b1c47b88fb",
      "old_mode": 33188,
      "old_path": "Doc/whatsnew/3.13.rst",
      "new_id": "5d8ecbb193f157471ff1c50e9d9addd85c6dc62b",
      "new_mode": 33188,
      "new_path": "Doc/whatsnew/3.13.rst"
    },
    {
      "type": "modify",
      "old_id": "4cc72bb23ce7a3d80e4e38d88a23626e5390d2c6",
      "old_mode": 33188,
      "old_path": "Include/Python.h",
      "new_id": "8b28200000ab560f5320106350413c259f14dfa8",
      "new_mode": 33188,
      "new_path": "Include/Python.h"
    },
    {
      "type": "modify",
      "old_id": "c4168d10f5815133e2df3e79e52671674c407d0a",
      "old_mode": 33188,
      "old_path": "Include/pyport.h",
      "new_id": "4d9b9c026b31d46fb56944b03eeb1912e463b068",
      "new_mode": 33188,
      "new_path": "Include/pyport.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c13b6d9db053fc0284a44aedccf79d9b2151b32b",
      "new_mode": 33188,
      "new_path": "Misc/NEWS.d/next/C API/2023-09-02-22-35-55.gh-issue-108765.4TOdBT.rst"
    },
    {
      "type": "modify",
      "old_id": "1847a4811e8ee930edf4cfd4d152959b95ec4236",
      "old_mode": 33188,
      "old_path": "Modules/_localemodule.c",
      "new_id": "fe8e4c5e30035b369d195cd37356a95c52bc46b5",
      "new_mode": 33188,
      "new_path": "Modules/_localemodule.c"
    },
    {
      "type": "modify",
      "old_id": "3872c3663c7294c51f2a3622ba105a442696d3d7",
      "old_mode": 33188,
      "old_path": "Modules/_sre/sre.c",
      "new_id": "07da5da13f70d3981ce81c19772dd39a50e401d2",
      "new_mode": 33188,
      "new_path": "Modules/_sre/sre.c"
    },
    {
      "type": "modify",
      "old_id": "be4c23af384bb980effd76ef5810078fb069390b",
      "old_mode": 33188,
      "old_path": "Modules/_struct.c",
      "new_id": "1f8f9c44dd69aa2a9ab3780dc8ceacb4134dcfb6",
      "new_mode": 33188,
      "new_path": "Modules/_struct.c"
    },
    {
      "type": "modify",
      "old_id": "663b4117683629528030ba3c29cd9fbaa6c6e03e",
      "old_mode": 33188,
      "old_path": "Modules/_tkinter.c",
      "new_id": "f9a18644945c653479e24d54dab63fe45f321462",
      "new_mode": 33188,
      "new_path": "Modules/_tkinter.c"
    },
    {
      "type": "modify",
      "old_id": "3f7b2851c5b7942a6dab2704762d49cdff5d0d20",
      "old_mode": 33188,
      "old_path": "Modules/_zoneinfo.c",
      "new_id": "eb4e522465181fed78f5f60bd9f1f60cb7654b4a",
      "new_mode": 33188,
      "new_path": "Modules/_zoneinfo.c"
    },
    {
      "type": "modify",
      "old_id": "52dd06cd3c818190772e1b622c796c85ec62dd8c",
      "old_mode": 33188,
      "old_path": "Modules/pyexpat.c",
      "new_id": "bd24523eac830b39716d9670472f660d616e8dbe",
      "new_mode": 33188,
      "new_path": "Modules/pyexpat.c"
    },
    {
      "type": "modify",
      "old_id": "4e55da71b117caf04c39183bbb8ca045bc004604",
      "old_mode": 33188,
      "old_path": "Modules/timemodule.c",
      "new_id": "a2b66520ee885d3b9a5f840cee6c2d2dae1f3b01",
      "new_mode": 33188,
      "new_path": "Modules/timemodule.c"
    },
    {
      "type": "modify",
      "old_id": "c113364a88a26a264da6995e4e691371246d7934",
      "old_mode": 33188,
      "old_path": "Objects/abstract.c",
      "new_id": "6713926b86d218eb76fd73d99719d5eda0488fd2",
      "new_mode": 33188,
      "new_path": "Objects/abstract.c"
    },
    {
      "type": "modify",
      "old_id": "1c5078bdda687194925272f179aa12d6158f1f89",
      "old_mode": 33188,
      "old_path": "Objects/floatobject.c",
      "new_id": "776c7092edd057b6b5e6aeed60b3115b752aaedd",
      "new_mode": 33188,
      "new_path": "Objects/floatobject.c"
    },
    {
      "type": "modify",
      "old_id": "d20ef412367bb75b73b0fc2e250a4db389584c05",
      "old_mode": 33188,
      "old_path": "Objects/longobject.c",
      "new_id": "e73de742229005684ea26e75e1d02560c0aa9102",
      "new_mode": 33188,
      "new_path": "Objects/longobject.c"
    },
    {
      "type": "modify",
      "old_id": "67e059c3f74b776836d542a385b86977f2f619a7",
      "old_mode": 33188,
      "old_path": "Objects/typeobject.c",
      "new_id": "84c50507691cbe497e9a489a92a20a52b4c3184f",
      "new_mode": 33188,
      "new_path": "Objects/typeobject.c"
    },
    {
      "type": "modify",
      "old_id": "971067e2d4fcc1aef57f75391ec4a8d327687a4d",
      "old_mode": 33188,
      "old_path": "Python/bltinmodule.c",
      "new_id": "8e234e085f16c91b636965dd7008ad2e54739113",
      "new_mode": 33188,
      "new_path": "Python/bltinmodule.c"
    },
    {
      "type": "modify",
      "old_id": "a22852ec13ea99bdfb10c9efe11f59014fe1bbfc",
      "old_mode": 33188,
      "old_path": "Python/ceval.c",
      "new_id": "6f90d8e6fd064b4550e152c72182340c425210ca",
      "new_mode": 33188,
      "new_path": "Python/ceval.c"
    },
    {
      "type": "modify",
      "old_id": "87ae896b8e771842d4da7c6ef9ebccf9137b3cf3",
      "old_mode": 33188,
      "old_path": "Python/codecs.c",
      "new_id": "b79bf555f2f22aaa412086373bae5b0ccd18a9e5",
      "new_mode": 33188,
      "new_path": "Python/codecs.c"
    },
    {
      "type": "modify",
      "old_id": "acab05e2c6def3a64eed0e677bc71b072d3af7aa",
      "old_mode": 33188,
      "old_path": "Python/dynload_win.c",
      "new_id": "f69995b8f9e3a12fcddcff5d7b522efa2018a327",
      "new_mode": 33188,
      "new_path": "Python/dynload_win.c"
    },
    {
      "type": "modify",
      "old_id": "fb5b3ff2c7ba517aaaae98dc26b75a6d717da949",
      "old_mode": 33188,
      "old_path": "Python/errors.c",
      "new_id": "f670b78c1f14efdee292b1b281eac9b68bce8c22",
      "new_mode": 33188,
      "new_path": "Python/errors.c"
    },
    {
      "type": "modify",
      "old_id": "fdc144488c9627cabfd4a26cb9dabb48f17e3467",
      "old_mode": 33188,
      "old_path": "Python/getargs.c",
      "new_id": "cbfe561111176cc915a2c4053066d0021bdd4b71",
      "new_mode": 33188,
      "new_path": "Python/getargs.c"
    },
    {
      "type": "modify",
      "old_id": "e6fe154eed611ac93bfb8a5c40667c82397b5c14",
      "old_mode": 33188,
      "old_path": "Python/mystrtoul.c",
      "new_id": "fcd3e27f17f4e926fb0b3df457ffab5dd16cc9e9",
      "new_mode": 33188,
      "new_path": "Python/mystrtoul.c"
    }
  ]
}
