)]}'
{
  "commit": "fa8600cb1dd2ad33e95d3cfbed55208e35f5b472",
  "tree": "dabecd56d5c1b320e1b143a1ca266da768208e43",
  "parents": [
    "01a683a3d4dcc8fa2b28873dbe6f57183899ad31"
  ],
  "author": {
    "name": "Lysandros Nikolaou",
    "email": "lisandrosnik@gmail.com",
    "time": "Tue Oct 20 00:05:29 2026"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Oct 20 00:05:29 2026"
  },
  "message": "gh-159799: Require pathlib.[Pure]Path for file paths in the PEG generator (#159800)\n\nThe pegen entry points now take `pathlib.Path` objects instead of\nstrings, and the command-line tools (`python -m pegen`, `keywordgen`,\n`first_sets`, `grammar_visualizer`) parse their path arguments into\n`Path` objects.\n\nThe generators\u0027 `generate` and `prepare` take a `pathlib.PurePath`\nsince they only use the file\u0027s name (for the \"generated by\" comment\nin the output) and callers pass names that are not files, such as\n`\"\u003cstring\u003e\"`.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5b48738c2620a9952cfb233cd67fef88255f4680",
      "old_mode": 33188,
      "old_path": "Lib/test/test_peg_generator/test_c_generator.py",
      "new_id": "3f66db2081e1f792a4f8acb117f7a1d7e7ac7666",
      "new_mode": 33188,
      "new_path": "Lib/test/test_peg_generator/test_c_generator.py"
    },
    {
      "type": "modify",
      "old_id": "64c875367cef2751af045f3d2a3f877212f23d61",
      "old_mode": 33188,
      "old_path": "Lib/test/test_peg_generator/test_pegen.py",
      "new_id": "e95cae0aaf816ffb009117e243a0ba82f36f180b",
      "new_mode": 33188,
      "new_path": "Lib/test/test_peg_generator/test_pegen.py"
    },
    {
      "type": "modify",
      "old_id": "7a82ad861b4cb54d5929e1af3eef274ebe2bc961",
      "old_mode": 33261,
      "old_path": "Tools/peg_generator/pegen/__main__.py",
      "new_id": "e275c17334d8833f4f0686d07dbb6242ccbf6b72",
      "new_mode": 33261,
      "new_path": "Tools/peg_generator/pegen/__main__.py"
    },
    {
      "type": "modify",
      "old_id": "eb556e504eb76e2c279dd65656db2ee7bfafab79",
      "old_mode": 33188,
      "old_path": "Tools/peg_generator/pegen/build.py",
      "new_id": "684492ccaa68f05981f81a6e67058eb2bc17c384",
      "new_mode": 33188,
      "new_path": "Tools/peg_generator/pegen/build.py"
    },
    {
      "type": "modify",
      "old_id": "b2978d3a0baa756f5a82bab50ec97a713447a712",
      "old_mode": 33188,
      "old_path": "Tools/peg_generator/pegen/c_generator.py",
      "new_id": "d1f87811445483daddb4b5893f1f57b3068671f0",
      "new_mode": 33188,
      "new_path": "Tools/peg_generator/pegen/c_generator.py"
    },
    {
      "type": "modify",
      "old_id": "f6b83c0ca31e3f458e90e5e230f97fff2757f35f",
      "old_mode": 33261,
      "old_path": "Tools/peg_generator/pegen/first_sets.py",
      "new_id": "9980f76666518d75ce14ed6c20dff8bb8a7f9773",
      "new_mode": 33261,
      "new_path": "Tools/peg_generator/pegen/first_sets.py"
    },
    {
      "type": "modify",
      "old_id": "eadb6987389b8870aa368557dad9ee83060006de",
      "old_mode": 33188,
      "old_path": "Tools/peg_generator/pegen/grammar_visualizer.py",
      "new_id": "77a5bc7443d25b0c7200f1aea7c61bfefda5e1a2",
      "new_mode": 33188,
      "new_path": "Tools/peg_generator/pegen/grammar_visualizer.py"
    },
    {
      "type": "modify",
      "old_id": "52611eae044e581332ceeda9eae8437570d289ff",
      "old_mode": 33188,
      "old_path": "Tools/peg_generator/pegen/keywordgen.py",
      "new_id": "1ded1d3c39ce269ba8893106a9fe16a3a911d2df",
      "new_mode": 33188,
      "new_path": "Tools/peg_generator/pegen/keywordgen.py"
    },
    {
      "type": "modify",
      "old_id": "f7783f1e7810b0eb15fdcf41ac5b63378aa63c64",
      "old_mode": 33188,
      "old_path": "Tools/peg_generator/pegen/parser_generator.py",
      "new_id": "18736be26a0fb86a87fc76cdfd69a477bd0faf04",
      "new_mode": 33188,
      "new_path": "Tools/peg_generator/pegen/parser_generator.py"
    },
    {
      "type": "modify",
      "old_id": "e69ea4b5f4e14c4c115e039dfc9a4d60bba00332",
      "old_mode": 33188,
      "old_path": "Tools/peg_generator/pegen/python_generator.py",
      "new_id": "cf3eb869254471968b42b9eb3d3e16f285829b92",
      "new_mode": 33188,
      "new_path": "Tools/peg_generator/pegen/python_generator.py"
    },
    {
      "type": "modify",
      "old_id": "46f6c7fec1bda0585b3081edbf1512c9598a0d91",
      "old_mode": 33188,
      "old_path": "Tools/peg_generator/pegen/testutil.py",
      "new_id": "a09e0b9871102e6f325e6b054a424a42d43f3bd4",
      "new_mode": 33188,
      "new_path": "Tools/peg_generator/pegen/testutil.py"
    }
  ]
}
