)]}'
{
  "commit": "15fbd53ba96be4b6a5abd94ceada684493c36bdd",
  "tree": "f01a3b0fa201846117295ca3540e267f28136bcf",
  "parents": [
    "d8f350309ded3130c43f0d2809dcb8ec13112320"
  ],
  "author": {
    "name": "Barney Gale",
    "email": "barney.gale@gmail.com",
    "time": "Sat Apr 20 16:46:52 2024"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sat Apr 20 16:46:52 2024"
  },
  "message": "GH-112855: Speed up `pathlib.PurePath` pickling (#112856)\n\nThe second item in the tuple returned from `__reduce__()` is a tuple of arguments to supply to path constructor. Previously we returned the `parts` tuple here, which entailed joining, parsing and normalising the path object, and produced a compact pickle representation.\r\n\r\nWith this patch, we instead return a tuple of paths that were originally given to the path constructor. This makes pickling much faster (at the expense of compactness).\r\n\r\nIt\u0027s worth noting that, in the olden times, pathlib performed this parsing/normalization up-front in every case, and so using `parts` for pickling was almost free. Nowadays pathlib only parses/normalises paths when it\u0027s necessary or advantageous to do so (e.g. computing a path parent, or iterating over a directory, respectively).",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a4721fbe81396228aaa8bf9acc447f8889bc4aaf",
      "old_mode": 33188,
      "old_path": "Lib/pathlib/__init__.py",
      "new_id": "f03f317ef6c16a3bd64d34bf6edc3a8ceb0847f3",
      "new_mode": 33188,
      "new_path": "Lib/pathlib/__init__.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6badc7a9dc1c94ff8a9f10ee1a71aa13d0c23b02",
      "new_mode": 33188,
      "new_path": "Misc/NEWS.d/next/Library/2023-12-07-20-05-54.gh-issue-112855.ph4ehh.rst"
    }
  ]
}
