)]}'
{
  "commit": "24d8b88420b81fc60aeb0cbcacef1e72d633824a",
  "tree": "1b06e157ddc7d1066fd41a28d2c27270ccf2e278",
  "parents": [
    "fdafdc235e74f2f4fedc1f745bf8b90141daa162"
  ],
  "author": {
    "name": "Jelle Zijlstra",
    "email": "jelle.zijlstra@gmail.com",
    "time": "Tue May 16 03:36:23 2023"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue May 16 03:36:23 2023"
  },
  "message": "gh-103763: Implement PEP 695 (#103764)\n\nThis implements PEP 695, Type Parameter Syntax. It adds support for:\r\n\r\n- Generic functions (def func[T](): ...)\r\n- Generic classes (class X[T](): ...)\r\n- Type aliases (type X \u003d ...)\r\n- New scoping when the new syntax is used within a class body\r\n- Compiler and interpreter changes to support the new syntax and scoping rules \r\n\r\nCo-authored-by: Marc Mueller \u003c30130371+cdce8p@users.noreply.github.com\u003e\r\nCo-authored-by: Eric Traut \u003ceric@traut.com\u003e\r\nCo-authored-by: Larry Hastings \u003clarry@hastings.org\u003e\r\nCo-authored-by: Alex Waygood \u003cAlex.Waygood@Gmail.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0811b3fa0e7842ce25ac12cbb4731ad63afb1630",
      "old_mode": 33188,
      "old_path": "Doc/library/ast.rst",
      "new_id": "eb6a973cac62d2d86b3befc9634d8f87aeef6832",
      "new_mode": 33188,
      "new_path": "Doc/library/ast.rst"
    },
    {
      "type": "modify",
      "old_id": "6361dcd0985b99087d11a3d775e2e876e47f1d10",
      "old_mode": 33188,
      "old_path": "Grammar/python.gram",
      "new_id": "c79207b9cb51a4db5ddfc0a54adcb3d05b9ef665",
      "new_mode": 33188,
      "new_path": "Grammar/python.gram"
    },
    {
      "type": "modify",
      "old_id": "c716330cc3fbab977738609cbfb4abe1f2167712",
      "old_mode": 33188,
      "old_path": "Include/cpython/funcobject.h",
      "new_id": "6f78f5868d0166be3d475e6e78642f4025c2938b",
      "new_mode": 33188,
      "new_path": "Include/cpython/funcobject.h"
    },
    {
      "type": "modify",
      "old_id": "36277efe9c5ca53bcf2e6dd82354b066af8aa012",
      "old_mode": 33188,
      "old_path": "Include/internal/pycore_ast.h",
      "new_id": "9f1cef0541508c620bd7827756ed2f5c05ec4871",
      "new_mode": 33188,
      "new_path": "Include/internal/pycore_ast.h"
    },
    {
      "type": "modify",
      "old_id": "f15b4905eed14b626b6aae9d0d34a81fd64c64e8",
      "old_mode": 33188,
      "old_path": "Include/internal/pycore_ast_state.h",
      "new_id": "e723ead577b8882f88b4bf3faeed455d1df1e68a",
      "new_mode": 33188,
      "new_path": "Include/internal/pycore_ast_state.h"
    },
    {
      "type": "modify",
      "old_id": "11988149843fefce8ebf5d3b1348b39a012fdeaa",
      "old_mode": 33188,
      "old_path": "Include/internal/pycore_function.h",
      "new_id": "ecbb7001e7d840af5e3d1cbd31291c60b6477193",
      "new_mode": 33188,
      "new_path": "Include/internal/pycore_function.h"
    },
    {
      "type": "modify",
      "old_id": "64d9384df9c5c521fb988c7f705ad49205dc5a99",
      "old_mode": 33188,
      "old_path": "Include/internal/pycore_global_objects.h",
      "new_id": "40cc04d5d1702c9e54d2af503ce070242ccf016f",
      "new_mode": 33188,
      "new_path": "Include/internal/pycore_global_objects.h"
    },
    {
      "type": "modify",
      "old_id": "7e495817981f063bda76534edd21e7579a04b1cb",
      "old_mode": 33188,
      "old_path": "Include/internal/pycore_global_objects_fini_generated.h",
      "new_id": "24a268ac8c43ecae19eb33570e3dceaf74dbf0be",
      "new_mode": 33188,
      "new_path": "Include/internal/pycore_global_objects_fini_generated.h"
    },
    {
      "type": "modify",
      "old_id": "8ebfee85c87c23b4fdb8b4ac8af66dae2afe077a",
      "old_mode": 33188,
      "old_path": "Include/internal/pycore_global_strings.h",
      "new_id": "c1005d05155271a0653c99aaf2b12559459b66ef",
      "new_mode": 33188,
      "new_path": "Include/internal/pycore_global_strings.h"
    },
    {
      "type": "modify",
      "old_id": "3902059a04b9da7a450bae7d5df88f76f40d456b",
      "old_mode": 33188,
      "old_path": "Include/internal/pycore_intrinsics.h",
      "new_id": "39f15681b7b24b922729b0f329f686303e6e1f6f",
      "new_mode": 33188,
      "new_path": "Include/internal/pycore_intrinsics.h"
    },
    {
      "type": "modify",
      "old_id": "e823e1bfb5d45280a9c61cc56f69a21deb7fe2f0",
      "old_mode": 33188,
      "old_path": "Include/internal/pycore_opcode.h",
      "new_id": "c2fa5692dbe49d30148edbf9948115aa5f9e0699",
      "new_mode": 33188,
      "new_path": "Include/internal/pycore_opcode.h"
    },
    {
      "type": "modify",
      "old_id": "7b9c73dd1edf3bb26947db0d559425d95f1da1e4",
      "old_mode": 33188,
      "old_path": "Include/internal/pycore_runtime_init_generated.h",
      "new_id": "ff1dee6eacfe5d5a6e38093f1d474e5c78bee889",
      "new_mode": 33188,
      "new_path": "Include/internal/pycore_runtime_init_generated.h"
    },
    {
      "type": "modify",
      "old_id": "9a005be5402c4e3f8478725f0ada8912c6c260ee",
      "old_mode": 33188,
      "old_path": "Include/internal/pycore_symtable.h",
      "new_id": "3fa825d0a837195e342641529178b83fd803bae2",
      "new_mode": 33188,
      "new_path": "Include/internal/pycore_symtable.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2035e47e92305927e96966a0176c93c559e19230",
      "new_mode": 33188,
      "new_path": "Include/internal/pycore_typevarobject.h"
    },
    {
      "type": "modify",
      "old_id": "8e086edbdf81932bebf62d033de57f1141863413",
      "old_mode": 33188,
      "old_path": "Include/internal/pycore_unicodeobject_generated.h",
      "new_id": "ba6b37f1bf55b32e45061f713f8e40d021b290ec",
      "new_mode": 33188,
      "new_path": "Include/internal/pycore_unicodeobject_generated.h"
    },
    {
      "type": "modify",
      "old_id": "c3b6e5dce49ad32f4b463e5bef306f1d6275f02a",
      "old_mode": 33188,
      "old_path": "Include/opcode.h",
      "new_id": "dea7687c39daf8d6b30efb2a055eb3b0083c5bca",
      "new_mode": 33188,
      "new_path": "Include/opcode.h"
    },
    {
      "type": "modify",
      "old_id": "65152047a223700e6a5ee97e2ce769a1a3a3a012",
      "old_mode": 33188,
      "old_path": "Lib/ast.py",
      "new_id": "08904afb20318363163ea461aeca25ec56d465f3",
      "new_mode": 33188,
      "new_path": "Lib/ast.py"
    },
    {
      "type": "modify",
      "old_id": "3ca5a1aea28af72aec9f5d52bcef6fdbcdf66331",
      "old_mode": 33188,
      "old_path": "Lib/importlib/_bootstrap_external.py",
      "new_id": "73ac4405cb54cf460e4ae2fadaf21d4f1cd62afa",
      "new_mode": 33188,
      "new_path": "Lib/importlib/_bootstrap_external.py"
    },
    {
      "type": "modify",
      "old_id": "cc2b46b7229d53a4df953ca730397cfe10da9eb1",
      "old_mode": 33188,
      "old_path": "Lib/keyword.py",
      "new_id": "e22c837835e740aa9be9ffed805757836a06b0ea",
      "new_mode": 33188,
      "new_path": "Lib/keyword.py"
    },
    {
      "type": "modify",
      "old_id": "155466b1ab85f1cc8cb76d4ea632d67e2deade0a",
      "old_mode": 33188,
      "old_path": "Lib/opcode.py",
      "new_id": "97d0a654a03a90784f8afecad5fda5952cf5c8d1",
      "new_mode": 33188,
      "new_path": "Lib/opcode.py"
    },
    {
      "type": "modify",
      "old_id": "d063837baee2dea6a9728591f24831258523b1c8",
      "old_mode": 33188,
      "old_path": "Lib/test/support/__init__.py",
      "new_id": "d555c53fee50a252532034d74b44acb57b243c03",
      "new_mode": 33188,
      "new_path": "Lib/test/support/__init__.py"
    },
    {
      "type": "modify",
      "old_id": "34808ed8562e11e85c6663540ac9fea30a0b8b99",
      "old_mode": 33188,
      "old_path": "Lib/test/test_ast.py",
      "new_id": "cf128e1e8cd04c777c3314f9eaad075f1f00c444",
      "new_mode": 33188,
      "new_path": "Lib/test/test_ast.py"
    },
    {
      "type": "modify",
      "old_id": "f329f88fa01d51b3e09f2a09c7cb1d81d049aae2",
      "old_mode": 33188,
      "old_path": "Lib/test/test_keyword.py",
      "new_id": "858e5de3b92e6a243a5385d7820f2a6456bd6204",
      "new_mode": 33188,
      "new_path": "Lib/test/test_keyword.py"
    },
    {
      "type": "modify",
      "old_id": "e1db450bf8a2effcd8f026f4fa1df70d407ed3a9",
      "old_mode": 33188,
      "old_path": "Lib/test/test_sys.py",
      "new_id": "d81501f6f1df6a4d6098961e88f66ae7972f205a",
      "new_mode": 33188,
      "new_path": "Lib/test/test_sys.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d2abb932f589f7837d38eb329a1d117313c97b97",
      "new_mode": 33188,
      "new_path": "Lib/test/test_type_aliases.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3ca13c21c61a12a0c10127386b0e9e938af78f85",
      "new_mode": 33188,
      "new_path": "Lib/test/test_type_params.py"
    },
    {
      "type": "modify",
      "old_id": "e1c6a8a7f376eb003b7883261884918e502f11d3",
      "old_mode": 33188,
      "old_path": "Lib/test/test_typing.py",
      "new_id": "71aff87dcaa3c9ca44828ffd69183a505b85ea59",
      "new_mode": 33188,
      "new_path": "Lib/test/test_typing.py"
    },
    {
      "type": "modify",
      "old_id": "61aed0980ac2ebdc69b63b8ad6f2d404274b42ae",
      "old_mode": 33188,
      "old_path": "Lib/typing.py",
      "new_id": "8d132e2cbf8771db5d407853a23d2dc9cc704507",
      "new_mode": 33188,
      "new_path": "Lib/typing.py"
    },
    {
      "type": "modify",
      "old_id": "7c44b7be5dbe67687d4606af282552ed7ee1b795",
      "old_mode": 33188,
      "old_path": "Makefile.pre.in",
      "new_id": "d66574143267d4581711c3d3cded41b5ef9d3fd4",
      "new_mode": 33188,
      "new_path": "Makefile.pre.in"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cefe6429ab20413e843be65208da5fa4fdcaaf68",
      "new_mode": 33188,
      "new_path": "Misc/NEWS.d/next/Core and Builtins/2023-04-25-08-43-11.gh-issue-103763.ZLBZk1.rst"
    },
    {
      "type": "modify",
      "old_id": "e3e9b96b0630dfaab4739978c81f1e5010e48285",
      "old_mode": 33188,
      "old_path": "Modules/Setup.bootstrap.in",
      "new_id": "8ef0f203a82a8ee347bdfa2fb78e7a3dd3b1fdf6",
      "new_mode": 33188,
      "new_path": "Modules/Setup.bootstrap.in"
    },
    {
      "type": "modify",
      "old_id": "95409d48c0da027b8eaf331a30e7aad4d10e2638",
      "old_mode": 33188,
      "old_path": "Modules/Setup.stdlib.in",
      "new_id": "6db567d713090d61b14e4150b9cbb2ef3946510f",
      "new_mode": 33188,
      "new_path": "Modules/Setup.stdlib.in"
    },
    {
      "type": "modify",
      "old_id": "64286375636aff6e48d47b1905b2dd0445565775",
      "old_mode": 33188,
      "old_path": "Modules/_typingmodule.c",
      "new_id": "ed2999c0b68b24b23235d0aaf50896b07ff953b6",
      "new_mode": 33188,
      "new_path": "Modules/_typingmodule.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "54189b98446814b8441fa92bcac55442cd412b50",
      "new_mode": 33188,
      "new_path": "Objects/clinic/typevarobject.c.h"
    },
    {
      "type": "modify",
      "old_id": "78c1144afca2eba9f254f065016900883291e880",
      "old_mode": 33188,
      "old_path": "Objects/funcobject.c",
      "new_id": "69898bf722d61f4adbdcb81697e8e49108ba7729",
      "new_mode": 33188,
      "new_path": "Objects/funcobject.c"
    },
    {
      "type": "modify",
      "old_id": "a7c79c673d5fd356375691371fc51b0d905d6e21",
      "old_mode": 33188,
      "old_path": "Objects/object.c",
      "new_id": "f3118665430d9fc99685f9be5207a255772377eb",
      "new_mode": 33188,
      "new_path": "Objects/object.c"
    },
    {
      "type": "modify",
      "old_id": "c1525320a7cbd50310bfb437bce86364c308c0b6",
      "old_mode": 33188,
      "old_path": "Objects/typeobject.c",
      "new_id": "624dc63ce82cc02087e33056dd5cf54092181aaa",
      "new_mode": 33188,
      "new_path": "Objects/typeobject.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b0578756f7dfcce99dabd0acca88fe3acaf59b7b",
      "new_mode": 33188,
      "new_path": "Objects/typevarobject.c"
    },
    {
      "type": "modify",
      "old_id": "f273f7d15ef25f68ef8889707165fd7ffaf1006b",
      "old_mode": 33188,
      "old_path": "Objects/unionobject.c",
      "new_id": "9806678b8048574cbc59d16887c9949d67b34a4c",
      "new_mode": 33188,
      "new_path": "Objects/unionobject.c"
    },
    {
      "type": "modify",
      "old_id": "d897925f58c0de0df29eeadf8b6f229a0418852d",
      "old_mode": 33188,
      "old_path": "PCbuild/_freeze_module.vcxproj",
      "new_id": "c9dbe195d9325a6214ca9687525b7ce1bf737eed",
      "new_mode": 33188,
      "new_path": "PCbuild/_freeze_module.vcxproj"
    },
    {
      "type": "modify",
      "old_id": "28b1517c6f6b3ad272fd8b2bfd21b041432cea1c",
      "old_mode": 33188,
      "old_path": "PCbuild/pythoncore.vcxproj",
      "new_id": "ca43404454c401936a3e7820d6c86c70f22817b8",
      "new_mode": 33188,
      "new_path": "PCbuild/pythoncore.vcxproj"
    },
    {
      "type": "modify",
      "old_id": "75e6fbb13f98bab8802dcd9055dd88ebf5c351a4",
      "old_mode": 33188,
      "old_path": "PCbuild/pythoncore.vcxproj.filters",
      "new_id": "a3c2e2476dd69b99c1b9932efbe7a24f3e182915",
      "new_mode": 33188,
      "new_path": "PCbuild/pythoncore.vcxproj.filters"
    },
    {
      "type": "modify",
      "old_id": "e9423a7c984f21f22ce1ae153fbd69cf2965e7f7",
      "old_mode": 33188,
      "old_path": "Parser/Python.asdl",
      "new_id": "cfc41ef45b568b8f9b3a2f3b039003658cc76e79",
      "new_mode": 33188,
      "new_path": "Parser/Python.asdl"
    },
    {
      "type": "modify",
      "old_id": "0aaaed64c4037c81481f169dc95fe766eef5b119",
      "old_mode": 33188,
      "old_path": "Parser/action_helpers.c",
      "new_id": "0134e6f16ba8f09f7eda8f2760798cb364a45c60",
      "new_mode": 33188,
      "new_path": "Parser/action_helpers.c"
    },
    {
      "type": "modify",
      "old_id": "6eb985a7d3e123433de299731cceed5a524909cd",
      "old_mode": 33188,
      "old_path": "Parser/parser.c",
      "new_id": "894846714eff946cf09bf36d5530d1e8351b9bd0",
      "new_mode": 33188,
      "new_path": "Parser/parser.c"
    },
    {
      "type": "modify",
      "old_id": "81ab71c0fc3b2957b31addd8127e7b84d42bb968",
      "old_mode": 33188,
      "old_path": "Python/Python-ast.c",
      "new_id": "d62cccbb6e241511bc24ceccfa9c3d43a6f1efda",
      "new_mode": 33188,
      "new_path": "Python/Python-ast.c"
    },
    {
      "type": "modify",
      "old_id": "f079e64bbdfc0016ac08138880815d6195ae6746",
      "old_mode": 33188,
      "old_path": "Python/ast.c",
      "new_id": "0844f2afa06bfe77b56abc9c1d206f20ac9e2cfe",
      "new_mode": 33188,
      "new_path": "Python/ast.c"
    },
    {
      "type": "modify",
      "old_id": "3883ec9e21c76519a4e82ee3b74c56d629ad5890",
      "old_mode": 33188,
      "old_path": "Python/ast_opt.c",
      "new_id": "c5b3e0754673348d33347b436ff3d13bccddf79d",
      "new_mode": 33188,
      "new_path": "Python/ast_opt.c"
    },
    {
      "type": "modify",
      "old_id": "d84a078f11008596b6e84c5854de4e02797d07bc",
      "old_mode": 33188,
      "old_path": "Python/bytecodes.c",
      "new_id": "1b8820f94dbc2d11bf0e2c5ed592246d1630a7bd",
      "new_mode": 33188,
      "new_path": "Python/bytecodes.c"
    },
    {
      "type": "modify",
      "old_id": "bf5e4a52482a4ae1487211dc5bde08f0aa01c295",
      "old_mode": 33188,
      "old_path": "Python/compile.c",
      "new_id": "7adbf92089895ea770e4483771165216d49af294",
      "new_mode": 33188,
      "new_path": "Python/compile.c"
    },
    {
      "type": "modify",
      "old_id": "014a69ff7e9615b6a3dee153f2ff23a70cd9b75c",
      "old_mode": 33188,
      "old_path": "Python/generated_cases.c.h",
      "new_id": "fa4ff5ccee78e9dcaa1a41de5431e95884cbacc1",
      "new_mode": 33188,
      "new_path": "Python/generated_cases.c.h"
    },
    {
      "type": "modify",
      "old_id": "cca29d859902a4a7c9e32b0505ec0ab33a3d66c7",
      "old_mode": 33188,
      "old_path": "Python/intrinsics.c",
      "new_id": "c6f5ac5402d6449dae132bc6ea49d1cc39dd9d22",
      "new_mode": 33188,
      "new_path": "Python/intrinsics.c"
    },
    {
      "type": "modify",
      "old_id": "ae68e045a6119f72e4a6bff10056144c4afc783d",
      "old_mode": 33188,
      "old_path": "Python/opcode_metadata.h",
      "new_id": "601ad3874b79038a223be1587cb48fdff5e21597",
      "new_mode": 33188,
      "new_path": "Python/opcode_metadata.h"
    },
    {
      "type": "modify",
      "old_id": "f2742f4ad1f20e3204772654108e3e9c8578049a",
      "old_mode": 33188,
      "old_path": "Python/opcode_targets.h",
      "new_id": "af05a33058f3a0b4550a505911d2cdf540c3186f",
      "new_mode": 33188,
      "new_path": "Python/opcode_targets.h"
    },
    {
      "type": "modify",
      "old_id": "cb87f2c0860110c82378a9db14a7e6b6d243dab2",
      "old_mode": 33188,
      "old_path": "Python/pylifecycle.c",
      "new_id": "740901f53d2da1d2c38564adf908a19bac1520ee",
      "new_mode": 33188,
      "new_path": "Python/pylifecycle.c"
    },
    {
      "type": "modify",
      "old_id": "2c29f608413501f42f632868081352183c7d04be",
      "old_mode": 33188,
      "old_path": "Python/symtable.c",
      "new_id": "3451f6c7bffb6d086d24c5560e4b233567e86ec6",
      "new_mode": 33188,
      "new_path": "Python/symtable.c"
    }
  ]
}
