)]}'
{
  "commit": "f9b7457bd7f438263e0d2dd1f70589ad56a2585e",
  "tree": "f23cd4d4b4337f38c69612ae3c1cd2d80ff1cc27",
  "parents": [
    "ec6c1bd0491590f3c0e2908a7b2dfb91b6acdae9"
  ],
  "author": {
    "name": "Victor Stinner",
    "email": "vstinner@redhat.com",
    "time": "Mon Jul 01 14:51:18 2019"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Jul 01 14:51:18 2019"
  },
  "message": "bpo-37467: Fix PyErr_Display() for bytes filename (GH-14504)\n\nFix sys.excepthook() and PyErr_Display() if a filename is a bytes\r\nstring. For example, for a SyntaxError exception where the filename\r\nattribute is a bytes string.\r\n\r\nCleanup also test_sys:\r\n\r\n* Sort imports.\r\n* Rename numruns global var to INTERN_NUMRUNS.\r\n* Add DisplayHookTest and ExceptHookTest test case classes.\r\n* Don\u0027t save/restore sys.stdout and sys.displayhook using\r\n  setUp()/tearDown(): do it in each test method.\r\n* Test error case (call hook with no argument) after the success case.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c223f92ba6bb86f541f5b29b20741760c7e155df",
      "old_mode": 33188,
      "old_path": "Lib/test/test_sys.py",
      "new_id": "8852aaef94374af19667c93e112af927c047f8c9",
      "new_mode": 33188,
      "new_path": "Lib/test/test_sys.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5e809646b4b86c2f576c08e9fdc314e89c07f15c",
      "new_mode": 33188,
      "new_path": "Misc/NEWS.d/next/Core and Builtins/2019-07-01-12-22-44.bpo-37467.u-XyEu.rst"
    },
    {
      "type": "modify",
      "old_id": "8f3ee19279d91289940f389996296c31d250b7a9",
      "old_mode": 33188,
      "old_path": "Python/pythonrun.c",
      "new_id": "f1d946a0b0f83dbf7a15214c9a77a46b724cac63",
      "new_mode": 33188,
      "new_path": "Python/pythonrun.c"
    }
  ]
}
