)]}'
{
  "commit": "99e2c5eccd2b83ac955125522a952a4ff5c7eb43",
  "tree": "1329a5e44f1f96d68f323218ca3281e19b8511b0",
  "parents": [
    "4f5e79805ebcaa0d3ba1677694d4120a9e8f4513"
  ],
  "author": {
    "name": "Serhiy Storchaka",
    "email": "storchaka@gmail.com",
    "time": "Tue Mar 17 10:16:35 2026"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Mar 17 10:16:35 2026"
  },
  "message": "gh-144545: Improve handling of default values in Argument Clinic (GH-146016)\n\n* Add the c_init_default attribute which is used to initialize the C variable\n  if the default is not explicitly provided.\n* Add the c_default_init() method which is used to derive c_default from\n  default if c_default is not explicitly provided.\n* Explicit c_default and py_default are now almost always have precedence\n  over the generated value.\n* Add support for bytes literals as default values.\n* Improve support for str literals as default values (support non-ASCII\n  and non-printable characters and special characters like backslash or quotes).\n* Fix support for str and bytes literals containing trigraphs, \"/*\" and \"*/\".\n* Improve support for default values in converters \"char\" and \"int(accept\u003d{str})\".\n* Converter \"int(accept\u003d{str})\" now requires 1-character string instead of\n  integer as default value.\n* Add support for non-None default values in converter \"Py_buffer\": NULL,\n  str and bytes literals.\n* Improve error handling for invalid default values.\n* Rename Null to NullType for consistency.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4729708efd3acbe191ae78c05521ab5c110cbdeb",
      "old_mode": 33188,
      "old_path": "Lib/test/clinic.test.c",
      "new_id": "171570588e7a2b55231c6fe0e7bfbc62da53fb2e",
      "new_mode": 33188,
      "new_path": "Lib/test/clinic.test.c"
    },
    {
      "type": "modify",
      "old_id": "e71f9fc181bb43eba366180647b6288d569fdb05",
      "old_mode": 33188,
      "old_path": "Lib/test/test_clinic.py",
      "new_id": "93c284e58764f46daea561997d6fd3a6bceef653",
      "new_mode": 33188,
      "new_path": "Lib/test/test_clinic.py"
    },
    {
      "type": "modify",
      "old_id": "6b23a5c637a3084bfbea0edac3e60e9da614aa32",
      "old_mode": 33188,
      "old_path": "Modules/_datetimemodule.c",
      "new_id": "9d803dc94b64c71a7b945fdde7d41dafc34fe83d",
      "new_mode": 33188,
      "new_path": "Modules/_datetimemodule.c"
    },
    {
      "type": "modify",
      "old_id": "890f2201b46bc06b6a8629e8f4d44150e7f13670",
      "old_mode": 33188,
      "old_path": "Modules/_testclinic.c",
      "new_id": "66a375589ba38e5e66bc748862fb91bb229b35a5",
      "new_mode": 33188,
      "new_path": "Modules/_testclinic.c"
    },
    {
      "type": "modify",
      "old_id": "c076b12fb149b21a460adf969b11f0ad58993f78",
      "old_mode": 33188,
      "old_path": "Modules/binascii.c",
      "new_id": "2d1d0445ef958ad3674d9d8309fb71483235e5c0",
      "new_mode": 33188,
      "new_path": "Modules/binascii.c"
    },
    {
      "type": "modify",
      "old_id": "89b0ebd516f693259362fa8a313e2932c9f7dda5",
      "old_mode": 33188,
      "old_path": "Modules/blake2module.c",
      "new_id": "bb3b934be69dd7d3c0d4e85a7c50a8fe92913f14",
      "new_mode": 33188,
      "new_path": "Modules/blake2module.c"
    },
    {
      "type": "modify",
      "old_id": "9bcd0eeb008142e94ce2229cd58ca75638bd8116",
      "old_mode": 33188,
      "old_path": "Modules/clinic/_testclinic.c.h",
      "new_id": "05615c1fdd81b9ca9d42ff83547a419e7ab10411",
      "new_mode": 33188,
      "new_path": "Modules/clinic/_testclinic.c.h"
    },
    {
      "type": "modify",
      "old_id": "68ab9c999b28942bf6986a0ca2970c711da339a1",
      "old_mode": 33188,
      "old_path": "Modules/clinic/binascii.c.h",
      "new_id": "513e54b71a0065acfabe892d01d9bbbb5131e757",
      "new_mode": 33188,
      "new_path": "Modules/clinic/binascii.c.h"
    },
    {
      "type": "modify",
      "old_id": "97d010d03a4b23b1d4fbca05141364638e2877b5",
      "old_mode": 33188,
      "old_path": "Modules/clinic/blake2module.c.h",
      "new_id": "dc70abfaf0554329cbc7f10428193b3a504a35b1",
      "new_mode": 33188,
      "new_path": "Modules/clinic/blake2module.c.h"
    },
    {
      "type": "modify",
      "old_id": "6fba75339b3206885177e3dc9042cb69d89331d5",
      "old_mode": 33188,
      "old_path": "Modules/clinic/zlibmodule.c.h",
      "new_id": "f8fd111754a894a23603a602fc210e81a12ebc0a",
      "new_mode": 33188,
      "new_path": "Modules/clinic/zlibmodule.c.h"
    },
    {
      "type": "modify",
      "old_id": "8c360ce3b79b8aaa4b9dd049a2e7273c82931475",
      "old_mode": 33188,
      "old_path": "Modules/posixmodule.c",
      "new_id": "157965195e1fa00a0783f7f93541f86eebe0324b",
      "new_mode": 33188,
      "new_path": "Modules/posixmodule.c"
    },
    {
      "type": "modify",
      "old_id": "f546f3ff1cb864f7815d58a07c54d616d8a055a0",
      "old_mode": 33188,
      "old_path": "Modules/zlibmodule.c",
      "new_id": "7a8ed979bbe65daf23d3dc493dd1af1a7883534f",
      "new_mode": 33188,
      "new_path": "Modules/zlibmodule.c"
    },
    {
      "type": "modify",
      "old_id": "a65c43874e876c4dd87bbdd53d2032bea1f65fab",
      "old_mode": 33188,
      "old_path": "Objects/unicodeobject.c",
      "new_id": "dd2482ca653fb16f52deeebecfb3740bba6d9209",
      "new_mode": 33188,
      "new_path": "Objects/unicodeobject.c"
    },
    {
      "type": "modify",
      "old_id": "f3f09107aefce6e39750d4963a612cfa2bcb9b15",
      "old_mode": 33188,
      "old_path": "Tools/c-analyzer/c_parser/parser/__init__.py",
      "new_id": "5b4b2b134584ad22df77e083bf8913dd24ce1f7a",
      "new_mode": 33188,
      "new_path": "Tools/c-analyzer/c_parser/parser/__init__.py"
    },
    {
      "type": "modify",
      "old_id": "890b0eb0bd70794c9a2b92e946af3f0aae0c938b",
      "old_mode": 33188,
      "old_path": "Tools/c-analyzer/cpython/_parser.py",
      "new_id": "a251a045b91144bb1f9feda3bac83b29e0032cf5",
      "new_mode": 33188,
      "new_path": "Tools/c-analyzer/cpython/_parser.py"
    },
    {
      "type": "modify",
      "old_id": "9e9bdeadcc0fe1299704cc0b04138ef99a064031",
      "old_mode": 33188,
      "old_path": "Tools/clinic/libclinic/__init__.py",
      "new_id": "5ee165d0c138a85e792e55a6eadff51091a52d6c",
      "new_mode": 33188,
      "new_path": "Tools/clinic/libclinic/__init__.py"
    },
    {
      "type": "modify",
      "old_id": "341667d2f0bff9e4f98a806f3cce6da06a3be97b",
      "old_mode": 33188,
      "old_path": "Tools/clinic/libclinic/clanguage.py",
      "new_id": "7f02c7790f015aafab3200f294b060f0a32afd2b",
      "new_mode": 33188,
      "new_path": "Tools/clinic/libclinic/clanguage.py"
    },
    {
      "type": "modify",
      "old_id": "ac66e79f93b73543e037d1b5d3e11509495cf947",
      "old_mode": 33188,
      "old_path": "Tools/clinic/libclinic/converter.py",
      "new_id": "c10235237d4b7163b94b06d90527151f92e95c87",
      "new_mode": 33188,
      "new_path": "Tools/clinic/libclinic/converter.py"
    },
    {
      "type": "modify",
      "old_id": "bc21ae84e1c332b1474f3628bb366b788fef2c21",
      "old_mode": 33188,
      "old_path": "Tools/clinic/libclinic/converters.py",
      "new_id": "76091a9eedc1bffd9de45e734e654ac24cebcbc8",
      "new_mode": 33188,
      "new_path": "Tools/clinic/libclinic/converters.py"
    },
    {
      "type": "modify",
      "old_id": "0d83baeba9e50802d45aecd7977779a7c9c221a7",
      "old_mode": 33188,
      "old_path": "Tools/clinic/libclinic/dsl_parser.py",
      "new_id": "90e2e0d3d9c928cfc419faa524339b27e854adea",
      "new_mode": 33188,
      "new_path": "Tools/clinic/libclinic/dsl_parser.py"
    },
    {
      "type": "modify",
      "old_id": "873ece6210017a877972bb72274275ec509f056e",
      "old_mode": 33188,
      "old_path": "Tools/clinic/libclinic/formatting.py",
      "new_id": "264327818c1d193cbf2e2a3b14eda081ccad4755",
      "new_mode": 33188,
      "new_path": "Tools/clinic/libclinic/formatting.py"
    },
    {
      "type": "modify",
      "old_id": "17e8f35be73bf421bef0fb57f49bf311266b761c",
      "old_mode": 33188,
      "old_path": "Tools/clinic/libclinic/utils.py",
      "new_id": "3df64f270dd074a19f99473535081cfb30dff1b3",
      "new_mode": 33188,
      "new_path": "Tools/clinic/libclinic/utils.py"
    }
  ]
}
