)]}'
{
  "commit": "fc914d52c43f499224f7fb4c2d4c47623adc5b33",
  "tree": "212ead62a34af237998feb44c454292e492869f6",
  "parents": [
    "a001f2782501ad2d24986959f0239a354675f9dc"
  ],
  "author": {
    "name": "Phil Sphicas",
    "email": "pgs2111@columbia.edu",
    "time": "Fri Sep 18 00:29:02 2020 -0700"
  },
  "committer": {
    "name": "Ingy döt Net",
    "email": "ingy@ingy.net",
    "time": "Wed Jan 13 16:58:40 2021 -0500"
  },
  "message": "Avoid repeatedly appending to yaml_implicit_resolvers\n\nRepeated calls to `resolve` can experience performance degredation, if\n`add_implicit_resolver` has been called with `first\u003dNone` (to add an\nimplicit resolver with an unspecified first character).\n\nFor example, every time `foo` is encountered, the \"wildcard implicit\nresolvers\" (with `first\u003dNone`) will be appended to the list of implicit\nresolvers for strings starting with `f`, which will normally be the\nresolver for booleans. The list `yaml_implicit_resolvers[\u0027f\u0027]` will keep\ngetting longer. The same behavior applies for any first-letter matches\nwith existing implicit resolvers.\n\nThis change avoids unintentionally mutating the lists in the class-level\ndict `yaml_implicit_resolvers` by looping through a temporary copy.\n\nFixes: #439\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "528fbc0ead65bc6d8723a8ccf7715d648f370785",
      "old_mode": 33188,
      "old_path": "lib/yaml/resolver.py",
      "new_id": "ba9aeab21d4702935588f5aba661e53493e1ba88",
      "new_mode": 33188,
      "new_path": "lib/yaml/resolver.py"
    },
    {
      "type": "modify",
      "old_id": "02b82e73eecac9875336617a7ff38300ff4507ef",
      "old_mode": 33188,
      "old_path": "lib3/yaml/resolver.py",
      "new_id": "013896d2f10619e0e75d2579cd63220338a7fef1",
      "new_mode": 33188,
      "new_path": "lib3/yaml/resolver.py"
    }
  ]
}
