)]}'
{
  "log": [
    {
      "commit": "372c827cb1d38e418163d6b3fa5f550bdc5a8ec7",
      "tree": "3119b813455c06786622a607c061d4c2fe43c832",
      "parents": [
        "900beb4cb197236c73ae074bba99e45d38c52c4a"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Sat Dec 07 20:07:28 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Sat Dec 07 20:07:28 2013"
      },
      "message": "Added a Chinese translation of the documentation by Delong .w.\n"
    },
    {
      "commit": "900beb4cb197236c73ae074bba99e45d38c52c4a",
      "tree": "e848f0280ebb2ecc360cc7859d383a8b0766c46e",
      "parents": [
        "6b31359faababc55b5d623bbf627b9ef7eacda1f"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Sat Nov 02 13:29:07 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Sat Nov 02 13:29:07 2013"
      },
      "message": "Added link to Japanese user translation.\n"
    },
    {
      "commit": "6b31359faababc55b5d623bbf627b9ef7eacda1f",
      "tree": "75f1ff9555e410b777b80c498ca22280e146581f",
      "parents": [
        "af7e3ce94e91bd0d4880a0b1d682a6df75679ba3"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Oct 28 11:17:18 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Oct 28 11:17:18 2013"
      },
      "message": "Made it as clear as possible the Beautiful Soup does not support any standardized subset of CSS selector syntax.\n"
    },
    {
      "commit": "af7e3ce94e91bd0d4880a0b1d682a6df75679ba3",
      "tree": "40f939baf724d1c741e57b17fe941fd0bfe20707",
      "parents": [
        "9f7ff22d76654c18f157b300441a38a9c3494c4f"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Tue Oct 22 02:10:32 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Tue Oct 22 02:10:32 2013"
      },
      "message": "Clarified docs.\n"
    },
    {
      "commit": "9f7ff22d76654c18f157b300441a38a9c3494c4f",
      "tree": "0aadeb6da39787ac5af6b538984ca034c572e20e",
      "parents": [
        "6fac06a99a018979e01a632b43af9d73c8c42e21"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Fri Oct 18 17:03:06 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Fri Oct 18 17:03:06 2013"
      },
      "message": "Fixed yet another problem that caused the html5lib tree builder to\n  create a disconnected parse tree. [bug\u003d1237763]\n"
    },
    {
      "commit": "6fac06a99a018979e01a632b43af9d73c8c42e21",
      "tree": "1fbdfffdf14cb4e3a62876aaf5ca6bf4c1373af2",
      "parents": [
        "80125c4efca7f4e020158f8a8a741c36d56cad02"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed Oct 02 13:46:59 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed Oct 02 13:46:59 2013"
      },
      "message": "Restored the helpful syntax error that happens when you try to\n  import the Python 2 edition of Beautiful Soup under Python\n  3. [bug\u003d1213387]\n"
    },
    {
      "commit": "80125c4efca7f4e020158f8a8a741c36d56cad02",
      "tree": "5ba57de473f493be14d9a7e351b57f0a9ee2e15a",
      "parents": [
        "886d1dcc2fcc5c009b4f233003155026ce802e8a"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed Oct 02 12:33:46 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed Oct 02 12:33:46 2013"
      },
      "message": "Prep for release.\n"
    },
    {
      "commit": "886d1dcc2fcc5c009b4f233003155026ce802e8a",
      "tree": "6f263a7dd19a8b11e9f013ecc5285f12e37907c8",
      "parents": [
        "c7311d3c81b3a5e20407d1904b8a383a8ead7c3c"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed Oct 02 12:18:54 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed Oct 02 12:18:54 2013"
      },
      "message": "Fixed a bug that caused Unicode data put into UnicodeDammit to\n  return None instead of the original data. [bug\u003d1214983]\n"
    },
    {
      "commit": "c7311d3c81b3a5e20407d1904b8a383a8ead7c3c",
      "tree": "d51265e37eba571b09a2c993cc5ec605ed08e6b5",
      "parents": [
        "fc4722736b4c776f48188a3d6380601d091fa1aa"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed Oct 02 02:15:53 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed Oct 02 02:15:53 2013"
      },
      "message": " Fixed a crash when a short input contains data not valid in\n  filenames. [bug\u003d1232604]\n"
    },
    {
      "commit": "fc4722736b4c776f48188a3d6380601d091fa1aa",
      "tree": "c74ebb0855c969a36faad28030d6b2fc33d77451",
      "parents": [
        "9c4e8dbf8fe46a57bcffa895ab94c58ab6cc53ed"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed Oct 02 01:55:22 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed Oct 02 01:55:22 2013"
      },
      "message": "Fixed a bug in which short Unicode input was improperly encoded to ASCII when checking whether or not it was a file on\n  disk. [bug\u003d1227016]\n"
    },
    {
      "commit": "9c4e8dbf8fe46a57bcffa895ab94c58ab6cc53ed",
      "tree": "9cf8418ac36fdfab3609c15a6010906d618bc4a1",
      "parents": [
        "9a460c49cd131d62b82e70c263ac1b6c416beff8"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Mon Aug 19 14:34:19 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Mon Aug 19 14:34:19 2013"
      },
      "message": "Fixed typo.\n"
    },
    {
      "commit": "9a460c49cd131d62b82e70c263ac1b6c416beff8",
      "tree": "0b512211221bd61654f8ee9814fb6879dcfaa2b6",
      "parents": [
        "bf779b30ab706db4c3090b2008b148e1ad6a843e"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Mon Aug 19 14:31:36 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Mon Aug 19 14:31:36 2013"
      },
      "message": "Combined two tests to stop a spurious test failure when tests are\n  run by nodetests. [bug\u003d1212445]\n"
    },
    {
      "commit": "bf779b30ab706db4c3090b2008b148e1ad6a843e",
      "tree": "7a20a1830ae20ced2cb455e865c0097355f6b67c",
      "parents": [
        "41e9d754f47e8cf646169fbf2e97bb27cbd9fed6"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Thu Aug 15 12:43:50 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Thu Aug 15 12:43:50 2013"
      },
      "message": "Bumped version number.\n"
    },
    {
      "commit": "41e9d754f47e8cf646169fbf2e97bb27cbd9fed6",
      "tree": "438c1b82a9bfe53dd4d5fe62a711acffb1936b52",
      "parents": [
        "a9b78ec3df2213ff2dae343e5fba5699aae93467"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Thu Aug 15 12:32:47 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Thu Aug 15 12:32:47 2013"
      },
      "message": "Updated NEWS.\n"
    },
    {
      "commit": "a9b78ec3df2213ff2dae343e5fba5699aae93467",
      "tree": "f7bc7c403cc39430eb54a721afe8447b01350b0b",
      "parents": [
        "ab1899620b419ae12ddf8d12762cd5fdf0853262"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Thu Aug 15 12:31:34 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Thu Aug 15 12:31:34 2013"
      },
      "message": "Make sure the optimized find_all() ResultSets actually contain the right data.\n"
    },
    {
      "commit": "ab1899620b419ae12ddf8d12762cd5fdf0853262",
      "tree": "27f465ef9f7dd1adc8bd956f6e58045d93be9d33",
      "parents": [
        "f345147352550d2dee82b53afaf88075d1ea1a18"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Tue Aug 13 14:44:46 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Tue Aug 13 14:44:46 2013"
      },
      "message": "* Fixed yet another problem with the html5lib tree builder, caused by\n  html5lib\u0027s tendency to rearrange the tree during\n  parsing. [bug\u003d1189267]\n"
    },
    {
      "commit": "f345147352550d2dee82b53afaf88075d1ea1a18",
      "tree": "db831b8a23adf67336cb392aa8c13a541754872c",
      "parents": [
        "ee052ca7610a14daa010fca1e808952f3e27b5fb"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Mon Aug 12 17:07:16 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Mon Aug 12 17:07:16 2013"
      },
      "message": "Prep for release.\n"
    },
    {
      "commit": "ee052ca7610a14daa010fca1e808952f3e27b5fb",
      "tree": "244c8b74e6f2e68e45074055d63517a2a1b29d3b",
      "parents": [
        "965589f22ed99bca6b3b919462f2958834c11940"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Mon Aug 12 16:05:13 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Mon Aug 12 16:05:13 2013"
      },
      "message": "Fixed incorrect superclass in super() Call.\n"
    },
    {
      "commit": "965589f22ed99bca6b3b919462f2958834c11940",
      "tree": "c2dab873f8824fdfeb937a6534e951b2c2916d47",
      "parents": [
        "ffb5b833abc7a781d7c6cd4d265f1502e5881efd"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Mon Aug 12 16:02:18 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Mon Aug 12 16:02:18 2013"
      },
      "message": "All find_all calls should now return a ResultSet object. Patch by\n  Aaron DeVore. [bug\u003d1194034]\n"
    },
    {
      "commit": "ffb5b833abc7a781d7c6cd4d265f1502e5881efd",
      "tree": "93a68e9d45eb012a21397d679045d965df89a782",
      "parents": [
        "2725a522df19b9b0f6f81d64a457757e3ac15b72"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Mon Aug 12 15:49:10 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Mon Aug 12 15:49:10 2013"
      },
      "message": "A little cleanup.\n"
    },
    {
      "commit": "2725a522df19b9b0f6f81d64a457757e3ac15b72",
      "tree": "81281bc55c168f774cd79ec9be62fb89de1e6ca6",
      "parents": [
        "35cd1bc18995084f7f9c23ed3d31edaf51014b51"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Jun 03 16:37:15 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Jun 03 16:37:15 2013"
      },
      "message": "Updated NEWS.\n"
    },
    {
      "commit": "35cd1bc18995084f7f9c23ed3d31edaf51014b51",
      "tree": "b317e29ebd1d2c164cf2cc81a89ef47003601d53",
      "parents": [
        "4da0fe5dc0899409fc2f4d68d262f73c1bc2e532"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Jun 03 15:38:23 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Jun 03 15:38:23 2013"
      },
      "message": "A NavigableString object now has an immutable \u0027.name\u0027 property whose\n+  value is always None. This makes it easier to iterate over a mixed\n+  list of tags and strings without having to check whether each\n+  element is a tag or a string.\n\n\n"
    },
    {
      "commit": "4da0fe5dc0899409fc2f4d68d262f73c1bc2e532",
      "tree": "ee44ae56ed25af5f6a11faad2b120a31a7c6b4c0",
      "parents": [
        "b947f7368b3390dac82921514a2a0bad307be3d6"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Jun 03 15:10:53 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Jun 03 15:10:53 2013"
      },
      "message": "_last_descendant can be optimized in some cases.\n"
    },
    {
      "commit": "b947f7368b3390dac82921514a2a0bad307be3d6",
      "tree": "7c61461f508aaab3f56ed56f37585c9ecef209c9",
      "parents": [
        "4ef921cf138f64220242c68df9b82276caa71155"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Jun 03 15:05:50 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Jun 03 15:05:50 2013"
      },
      "message": "Save another Element creation.\n"
    },
    {
      "commit": "4ef921cf138f64220242c68df9b82276caa71155",
      "tree": "db97e5b05f4c16499ff6fd878dd1f24c5400f161",
      "parents": [
        "12076584f98f896c3cef6ac385d1947b2808db7f"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Jun 03 14:33:03 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Jun 03 14:33:03 2013"
      },
      "message": "Improved performance for html5lib.\n"
    },
    {
      "commit": "12076584f98f896c3cef6ac385d1947b2808db7f",
      "tree": "380773a21002be59e5d0c217518b29672f103262",
      "parents": [
        "e632069bf66a5d3160f5535ea876af8123667f66"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Jun 03 13:54:49 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Jun 03 13:54:49 2013"
      },
      "message": "Added raw html5lib to the list of parsers that get tested.\n"
    },
    {
      "commit": "e632069bf66a5d3160f5535ea876af8123667f66",
      "tree": "d55ad1741c22ad099406f77b335c45deada1ff70",
      "parents": [
        "894dec53da84ae11e89e0e97db292e574c21259f"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Jun 03 13:45:11 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Jun 03 13:45:11 2013"
      },
      "message": "Changed _popToTag to run through a single range instead of two.\n"
    },
    {
      "commit": "894dec53da84ae11e89e0e97db292e574c21259f",
      "tree": "3f0fc684bb14acad7f91153eb2ebc60de99382fd",
      "parents": [
        "f19ce946ad9076f470c1c3eddf0135bc0ba26f65"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Jun 03 13:42:03 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Jun 03 13:42:03 2013"
      },
      "message": "Improved _popToTag a tiny bit.\n"
    },
    {
      "commit": "f19ce946ad9076f470c1c3eddf0135bc0ba26f65",
      "tree": "d2bb8afa1ba51b73631f69b3cf86e268c273ccf0",
      "parents": [
        "3d4f017a1c20b0065a0e418da93b09d19c02f7f8"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Jun 03 13:32:03 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Jun 03 13:32:03 2013"
      },
      "message": "Inlined some commonly called code to save a function call.\n"
    },
    {
      "commit": "3d4f017a1c20b0065a0e418da93b09d19c02f7f8",
      "tree": "9d8c2e3e83ee7d1fb1af6bb37934d35ee528c858",
      "parents": [
        "51854a229d6111f44ec6922e24fd32b481c980be"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Jun 03 13:12:33 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Jun 03 13:12:33 2013"
      },
      "message": "Limit how much of the document is searched via regular expression for a declared encoding.\n"
    },
    {
      "commit": "51854a229d6111f44ec6922e24fd32b481c980be",
      "tree": "ccf8d033045975fda6379ce747fbe43640b6d1fa",
      "parents": [
        "9f2026e783ee5b3497ef5fc59b474f8d3f870b14"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Jun 03 12:58:59 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Jun 03 12:58:59 2013"
      },
      "message": "Improved performance of _replace_cdata_list_attribute_values, and greatly reduced the number of times it is called.\n"
    },
    {
      "commit": "9f2026e783ee5b3497ef5fc59b474f8d3f870b14",
      "tree": "0b7110e481252998db3d25efe19647846671be9d",
      "parents": [
        "41d3f6a99d84cdf5793e1abb4b7f5c82925a11da"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Jun 03 12:45:27 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Jun 03 12:45:27 2013"
      },
      "message": "Made it a lot faster to check whether whitespace is being preserved.\n"
    },
    {
      "commit": "41d3f6a99d84cdf5793e1abb4b7f5c82925a11da",
      "tree": "35bc0f167fab3e16d4f5a3e833f74c857b80db51",
      "parents": [
        "65332733883b9c6e73daa9860bbd47b6d9dfdab5"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Jun 03 12:26:27 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Jun 03 12:26:27 2013"
      },
      "message": "Put the more frequently-used ASCII spaces in front.\n"
    },
    {
      "commit": "65332733883b9c6e73daa9860bbd47b6d9dfdab5",
      "tree": "078a8ec2f89bf70c675b7f9c8f21a0daf7416059",
      "parents": [
        "3bc36f8d029c35cdb771c65a1faa28f40bd39c26"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Jun 03 12:25:42 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Jun 03 12:25:42 2013"
      },
      "message": "Wrote a more efficient replacement for string.translate() when checking whether a string is nothing but ASCII spaces.\n"
    },
    {
      "commit": "3bc36f8d029c35cdb771c65a1faa28f40bd39c26",
      "tree": "de44f2affe242d55712f8bfee98cf4c21c926f1c",
      "parents": [
        "c853f3fec6b12f5a0b8db0119882390bf850a819"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Jun 03 12:02:06 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Jun 03 12:02:06 2013"
      },
      "message": "Let\u0027s get some profiling going.\n"
    },
    {
      "commit": "c853f3fec6b12f5a0b8db0119882390bf850a819",
      "tree": "87ba0217af6333c9c481bdb36361cf8b9347d82b",
      "parents": [
        "6b509c2e9aff8cc94b7a8e95bae74e01521316fd"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Jun 03 11:36:13 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Jun 03 11:36:13 2013"
      },
      "message": "Test that the filename warning isn\u0027t given unless the file actually exists on disk.\n"
    },
    {
      "commit": "6b509c2e9aff8cc94b7a8e95bae74e01521316fd",
      "tree": "8e8830144d876a95289e5b40c36ad5add0ea82da",
      "parents": [
        "0764118ab90b2120e4a355bd05b995aa72827d14"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Jun 03 11:34:30 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Jun 03 11:34:30 2013"
      },
      "message": "Beautiful Soup will issue a warning if instead of markup you pass it\n  a URL or the name of a file on disk (a common beginner mistake).\n"
    },
    {
      "commit": "0764118ab90b2120e4a355bd05b995aa72827d14",
      "tree": "b79c061fd70ef661867eeef42381f155d1685d79",
      "parents": [
        "16b2a2b1211b3617edf94c3019b256448b9b2bf7",
        "c78d635f2314e33a41b48e05881f625264dcddf7"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Jun 03 02:19:37 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Mon Jun 03 02:19:37 2013"
      },
      "message": "Merged in big encoding-detection refactoring branch.\n"
    },
    {
      "commit": "c78d635f2314e33a41b48e05881f625264dcddf7",
      "tree": "7462213fa89aaeabaf1dfdcdaeb104dfe4339c0b",
      "parents": [
        "185974328c28a657da23fe560979867ddb34801c"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Sun Jun 02 23:12:07 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Sun Jun 02 23:12:07 2013"
      },
      "message": "Turns out we had two bits of code to strip byte-order marks.\n"
    },
    {
      "commit": "185974328c28a657da23fe560979867ddb34801c",
      "tree": "8da0b2120c46a9f5d4a2a261d9c5aa8ed56d197f",
      "parents": [
        "6e3676c1a6b564aa1c73c50e29d08f4233768b65"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Sun Jun 02 22:28:03 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Sun Jun 02 22:28:03 2013"
      },
      "message": "It turns out most of the untested code wasn\u0027t doing anything useful.\n"
    },
    {
      "commit": "6e3676c1a6b564aa1c73c50e29d08f4233768b65",
      "tree": "48176df363b9c01e6df50bd93ff28d229ab34b82",
      "parents": [
        "27b0a52aad942267b428268b01a829397bfb7626"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Sun Jun 02 17:42:49 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Sun Jun 02 17:42:49 2013"
      },
      "message": "Treat an lxml ParserError as a ParserRejectedMarkup.\n"
    },
    {
      "commit": "16b2a2b1211b3617edf94c3019b256448b9b2bf7",
      "tree": "9a2beb6a7a54d8b28821c6dda48f18f8e24f6142",
      "parents": [
        "e180d1490b1332077b96fcacd14d1ac2bf681fbc"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Fri May 31 13:52:09 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Fri May 31 13:52:09 2013"
      },
      "message": "Prep for release.\n"
    },
    {
      "commit": "e180d1490b1332077b96fcacd14d1ac2bf681fbc",
      "tree": "992587e3c2c07b0bc59c8a6cf888c0d12eadf551",
      "parents": [
        "7fa238163856463c4435850c4e5749470fca023b"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Fri May 31 13:51:21 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Fri May 31 13:51:21 2013"
      },
      "message": "The html.parser treebuilder can now handle numeric attributes in\n  text when the hexidecimal name of the attribute starts with a\n  capital X.\n"
    },
    {
      "commit": "7fa238163856463c4435850c4e5749470fca023b",
      "tree": "d0b416fb3935f853f80c6522ffa0ae9744cfe883",
      "parents": [
        "8a25373beb766d481cb583eebea5850c2bbaddad"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Fri May 31 13:44:37 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Fri May 31 13:44:37 2013"
      },
      "message": "Reverted the patch that gives NavigableString a .name property, because that\u0027s too big an API change for a bugfix release.\n"
    },
    {
      "commit": "27b0a52aad942267b428268b01a829397bfb7626",
      "tree": "758e214123c11713384b102245c2944c396d3877",
      "parents": [
        "7d5358cafed85345e8b5b4c10d473038891de9b6"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Fri May 31 13:17:11 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Fri May 31 13:17:11 2013"
      },
      "message": "Create a new lxml parser object for every new parsing strategy.\n"
    },
    {
      "commit": "7d5358cafed85345e8b5b4c10d473038891de9b6",
      "tree": "b45375f76c17d6b83b9207d95a5f6a17d1906fa2",
      "parents": [
        "9757f215c70f7d9e4dd143a92bb9ed03678ed354"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Thu May 30 16:43:22 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Thu May 30 16:43:22 2013"
      },
      "message": "Refactored code a bit.\n"
    },
    {
      "commit": "9757f215c70f7d9e4dd143a92bb9ed03678ed354",
      "tree": "10309f450e84bb97e37104dd02bac6f5b5d6e244",
      "parents": [
        "8a25373beb766d481cb583eebea5850c2bbaddad"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Thu May 30 15:33:00 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Thu May 30 15:33:00 2013"
      },
      "message": "Split out the code that guesses at encodings from the code that tries to decode a bytestring based on those encodings. This is necessary because lxml wants to do the decoding itself.\n"
    },
    {
      "commit": "8a25373beb766d481cb583eebea5850c2bbaddad",
      "tree": "a484caf64dc80ae3e56382c4730310aabb1dbcd2",
      "parents": [
        "23692b68b837af2081fe022590e1c6e743f0b898"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Mon May 20 18:59:32 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Mon May 20 18:59:32 2013"
      },
      "message": "The default XML formatter will now replace ampersands even if they appear to be part of entities. That is, \"\u0026lt;\" will become \"\u0026amp;lt;\".[bug\u003d1182183]\n"
    },
    {
      "commit": "23692b68b837af2081fe022590e1c6e743f0b898",
      "tree": "45cc63c4ce665109d2ae6430861a4f57284284d5",
      "parents": [
        "52dd6920d5b98a60a63f950f7bb5a53722dc4aae"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Mon May 20 15:45:08 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Mon May 20 15:45:08 2013"
      },
      "message": "A NavigableString object now has an immutable \u0027.name\u0027 property whose\n  value is always None. This makes it easier to iterate over a mixed\n  list of tags and strings without having to check whether each\n  element is a tag or a string.\n"
    },
    {
      "commit": "52dd6920d5b98a60a63f950f7bb5a53722dc4aae",
      "tree": "25c0fa833aeeb34226ae87bfaeed4d3052c693a5",
      "parents": [
        "929afd378fa94ce402bf00a89ff5d786e9322852"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Mon May 20 15:34:44 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Mon May 20 15:34:44 2013"
      },
      "message": "The .previous_element of a BeautifulSoup object is now always None,\n"
    },
    {
      "commit": "929afd378fa94ce402bf00a89ff5d786e9322852",
      "tree": "da1727e698db9f6f20520323ba63228a7e97389d",
      "parents": [
        "243fc9e1f3a8197cc0270ab5ae39995ec0c1e34d"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Mon May 20 15:30:44 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Mon May 20 15:30:44 2013"
      },
      "message": "The .next_element attribute used during parsing was confusingly similar to the .next_element navigation attribute. Renamed the former to _most_recent_element.\n"
    },
    {
      "commit": "243fc9e1f3a8197cc0270ab5ae39995ec0c1e34d",
      "tree": "1920a6604824e4d975fcd09229ee91d971f63019",
      "parents": [
        "2d7120f38df48e2020e21832607e0e1ae7b3b2fb"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Mon May 20 15:23:19 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Mon May 20 15:23:19 2013"
      },
      "message": "Fixed another bug by which the html5lib tree builder could create a\n  disconnected tree. [bug\u003d1182089]\n"
    },
    {
      "commit": "2d7120f38df48e2020e21832607e0e1ae7b3b2fb",
      "tree": "4c143d621a1bfe7d20d01c8d6b353b95b43657bf",
      "parents": [
        "358bfd02a6203378aad996617aaca8d41b8415ca"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Mon May 20 14:20:40 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Mon May 20 14:20:40 2013"
      },
      "message": "Gave new_string() the ability to create subclasses of\n  NavigableString. [bug\u003d1181986]\n"
    },
    {
      "commit": "358bfd02a6203378aad996617aaca8d41b8415ca",
      "tree": "7aed3aed85e833a15720f798465bcfc85a016ffd",
      "parents": [
        "ef651309e3da015a166a5d99901d4d9c7f477495"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Mon May 20 13:40:13 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Mon May 20 13:40:13 2013"
      },
      "message": "html5lib now supports Python 3. Fixed some Python 2-specific\n  code in the html5lib test suite. [bug\u003d1181624]\n"
    },
    {
      "commit": "ef651309e3da015a166a5d99901d4d9c7f477495",
      "tree": "7d914ddc00ea1639248dbb9ee6bdcaa242e66674",
      "parents": [
        "726e5bdceeec38bf66d1b5a0ca5ce8f9a38d7862"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Mon May 20 13:19:16 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Mon May 20 13:19:16 2013"
      },
      "message": "Fixed test failures when lxml is not installed.\n"
    },
    {
      "commit": "726e5bdceeec38bf66d1b5a0ca5ce8f9a38d7862",
      "tree": "43b4aac28b34e815c500eee22cb24fe9b8fb3249",
      "parents": [
        "43001536aaf6cac66c86c0ea97cd0377e13d48ad"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Wed May 15 20:50:27 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Wed May 15 20:50:27 2013"
      },
      "message": "How about actually parsing the same markup with different parsers.\n"
    },
    {
      "commit": "43001536aaf6cac66c86c0ea97cd0377e13d48ad",
      "tree": "4af287b4453085009152fefd6cd762041871a77d",
      "parents": [
        "3d8eb037ba5487e679f7d6f3d839f855b72f4b1a",
        "c6fe6f1b4ec5970f4410c620814208c6f7aca42c"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Wed May 15 15:10:12 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Wed May 15 15:10:12 2013"
      },
      "message": "Merge.\n"
    },
    {
      "commit": "c6fe6f1b4ec5970f4410c620814208c6f7aca42c",
      "tree": "c19811df67661ea5c338c24a82bdf208c3482a99",
      "parents": [
        "7e9556463f3a9065685e59ac3d46543229a05e35"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Tue May 14 13:33:13 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Tue May 14 13:33:13 2013"
      },
      "message": "Prep for release.\n"
    },
    {
      "commit": "7e9556463f3a9065685e59ac3d46543229a05e35",
      "tree": "9a71288aec961d679aca0563321d17a016ca6ba0",
      "parents": [
        "af5b09b73325799cf4a5582e4aa0e30151b259d9"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Tue May 14 13:28:14 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Tue May 14 13:28:14 2013"
      },
      "message": "Added diagnostic case for attempting to parse a URL as HTML.\n"
    },
    {
      "commit": "af5b09b73325799cf4a5582e4aa0e30151b259d9",
      "tree": "93314c51b30fc6e54e836cbf19a8272b79f1ee49",
      "parents": [
        "62ae54c925bab5d483faec73dcc251bfdcdd3956"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Tue May 14 13:03:16 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Tue May 14 13:03:16 2013"
      },
      "message": "Added warning about using NavigableString outside of Beautiful Soup.\n"
    },
    {
      "commit": "62ae54c925bab5d483faec73dcc251bfdcdd3956",
      "tree": "580994dfb47dcda51300105c4525f51aec8aa02d",
      "parents": [
        "c8dcc7ef4ee1140bac13ae85a284580c6427510a"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Tue May 14 12:39:16 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Tue May 14 12:39:16 2013"
      },
      "message": "Added a deprecation warning to has_key().\n"
    },
    {
      "commit": "3d8eb037ba5487e679f7d6f3d839f855b72f4b1a",
      "tree": "8b2ba53ae97da3090f2afeb6b92172c72d582ba4",
      "parents": [
        "c6c6de0a7351e9b153d123508c7f2f70ce1a07a4"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Thu May 09 19:36:30 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Thu May 09 19:36:30 2013"
      },
      "message": "Changed lxml.feed() to handle the eventuality that it may be given a bytestring.\n"
    },
    {
      "commit": "c6c6de0a7351e9b153d123508c7f2f70ce1a07a4",
      "tree": "2cadf0d32decb1f3dc4a34ca86747c2d841fa488",
      "parents": [
        "504895ac7dc96743803a8b59e8ffb0649fd0facc"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Thu May 09 18:34:18 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Thu May 09 18:34:18 2013"
      },
      "message": "Added a basic benchmark function to the diagnose module.\n"
    },
    {
      "commit": "504895ac7dc96743803a8b59e8ffb0649fd0facc",
      "tree": "e5d36d0f1ca48fbe5a5383a40320caee278f8ff8",
      "parents": [
        "c8dcc7ef4ee1140bac13ae85a284580c6427510a"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Thu May 09 18:14:00 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonard.richardson@canonical.com",
        "time": "Thu May 09 18:14:00 2013"
      },
      "message": "Added a diagnostic function for randomly generating a simple, invalid HTML document.\n"
    },
    {
      "commit": "c8dcc7ef4ee1140bac13ae85a284580c6427510a",
      "tree": "ebf45d9ff4a7255d6fdbf8bba417a3a0a3cffc40",
      "parents": [
        "b8cf1075a0531262512ea3b002dab558d8c60fa9"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Thu May 09 15:20:48 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Thu May 09 15:20:48 2013"
      },
      "message": "Thanks to data-*, there\u0027s now a good use for attrs again. This lets me clean up the docs quite a bit.\n"
    },
    {
      "commit": "b8cf1075a0531262512ea3b002dab558d8c60fa9",
      "tree": "77d4097bd7f38deb19d6980571e7a3b85776bc16",
      "parents": [
        "25c286c03617bd27f30a65c33dbdbfeec771a152"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Thu May 09 14:02:52 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Thu May 09 14:02:52 2013"
      },
      "message": "Added \u003cbody\u003e tag to sample doc so it will work the same on all parsers.\n"
    },
    {
      "commit": "25c286c03617bd27f30a65c33dbdbfeec771a152",
      "tree": "31483533e428255f6f2a11a01f1856c832d8857c",
      "parents": [
        "7d04ee133dd8aeb0a11c800a4423eee74c59d733"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 17:09:47 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 17:09:47 2013"
      },
      "message": "Updated docs with new examples.\n"
    },
    {
      "commit": "7d04ee133dd8aeb0a11c800a4423eee74c59d733",
      "tree": "9d2e48591da201469c00edf92ec7908dc563be82",
      "parents": [
        "759221d915fd9231769ba3030d48b1613c310549"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 17:06:25 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 17:06:25 2013"
      },
      "message": "Updated docs with new examples.\n"
    },
    {
      "commit": "759221d915fd9231769ba3030d48b1613c310549",
      "tree": "957d50157d6b940f0f8906b69f69b91fd0ef2840",
      "parents": [
        "ef93f1363eec6dbfeaaa550b91c491f400d37503"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 16:59:45 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 16:59:45 2013"
      },
      "message": "A CSS selector should never match the same tag twice.\n"
    },
    {
      "commit": "ef93f1363eec6dbfeaaa550b91c491f400d37503",
      "tree": "c44b1e7f772d106c271a059b669bad20b9fbfcc1",
      "parents": [
        "b8c6216e548389008bf5007bb5df8a4b23153329",
        "d174ef05aa8c23826977b5b1ec78ebd45279372b"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 16:31:23 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 16:31:23 2013"
      },
      "message": "Refactored the CSS selector support, and added the sibling combinators.\n"
    },
    {
      "commit": "d174ef05aa8c23826977b5b1ec78ebd45279372b",
      "tree": "c44b1e7f772d106c271a059b669bad20b9fbfcc1",
      "parents": [
        "44783e58082f18b9c882908c195a968c00f54e1e"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 16:30:32 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 16:30:32 2013"
      },
      "message": "Minor cleanup.\n"
    },
    {
      "commit": "44783e58082f18b9c882908c195a968c00f54e1e",
      "tree": "1f390573e4098b747a75dcf3f2fc6dda95d23118",
      "parents": [
        "34586662a1891901b759f514e80b9e99870b614b"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 16:28:52 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 16:28:52 2013"
      },
      "message": "Added tests.\n"
    },
    {
      "commit": "34586662a1891901b759f514e80b9e99870b614b",
      "tree": "4c87c4a302a9e1a8cd4eba603c9b2e3d84b50aaf",
      "parents": [
        "d01ed8298072f424503f333dd2a9806ae4a9fb81"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 16:27:55 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 16:27:55 2013"
      },
      "message": "Fixed terminology.\n"
    },
    {
      "commit": "d01ed8298072f424503f333dd2a9806ae4a9fb81",
      "tree": "4f554e00c9662529838141d059b1abf8eaac5059",
      "parents": [
        "fcd8ebd499b5871f6fda60fe30fdd99ae7fa78a7"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 16:25:58 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 16:25:58 2013"
      },
      "message": "Updated news.\n"
    },
    {
      "commit": "fcd8ebd499b5871f6fda60fe30fdd99ae7fa78a7",
      "tree": "13d3ea586c6107f8e54cec46fde4d055746364cd",
      "parents": [
        "eb94bd945d7fad78c5bab9603a76d09bf96d49b6"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 16:21:33 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 16:21:33 2013"
      },
      "message": "Moved select() to Tag. It was always an error to call select() on a string, so there\u0027s no reason for it to be in PageElement.\n"
    },
    {
      "commit": "eb94bd945d7fad78c5bab9603a76d09bf96d49b6",
      "tree": "126e0c0692c112cc5d324485cee7deed8b99e772",
      "parents": [
        "93cc58558f3f74e83677815087ad11c30ae9ab5a"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 16:13:07 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 16:13:07 2013"
      },
      "message": "Give the checker the ability to stop the iteration over the generator by raising StopIteration.\n"
    },
    {
      "commit": "93cc58558f3f74e83677815087ad11c30ae9ab5a",
      "tree": "862d84ea9508287a22038086b4bf96e0ab7e5809",
      "parents": [
        "e9d476e3af9f466ab46ca3d9230316767a26c155"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 16:06:35 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 16:06:35 2013"
      },
      "message": "Aaand... it\u0027s now trivial to implement sibling selectors.\n"
    },
    {
      "commit": "e9d476e3af9f466ab46ca3d9230316767a26c155",
      "tree": "58bccaec38de58ba6bd6ecfd4438bb4fbdff8a57",
      "parents": [
        "e5d50b69e1fbaa407047fdc5e13dfacebd3cd9ea"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 15:54:57 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 15:54:57 2013"
      },
      "message": "Once again, we\u0027re back to the steady state.\n"
    },
    {
      "commit": "e5d50b69e1fbaa407047fdc5e13dfacebd3cd9ea",
      "tree": "fe999546a1b37c8f177cbb7e3f3bc1ba25a6af99",
      "parents": [
        "b25ce5f7e57991e409a24b812c0324af3e0e006e"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 15:39:00 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 15:39:00 2013"
      },
      "message": "Got it all working again except for nth_child_of_type.\n"
    },
    {
      "commit": "b25ce5f7e57991e409a24b812c0324af3e0e006e",
      "tree": "92c601bd0026119e01a9cd0da6445fe6d116af91",
      "parents": [
        "5c8dbc8aadc10cfa325df237c7eecc06c6199431"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 15:15:25 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 15:15:25 2013"
      },
      "message": "Refactored again to use iterators instead of calling find_all().\n"
    },
    {
      "commit": "5c8dbc8aadc10cfa325df237c7eecc06c6199431",
      "tree": "f8d616037e0cd83a51a09c5bd50fa5eff29247ee",
      "parents": [
        "42b70c46e51ebaad932f04290e30129639dd8dd7"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 14:00:41 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 14:00:41 2013"
      },
      "message": "OK, the tests pass.\n"
    },
    {
      "commit": "42b70c46e51ebaad932f04290e30129639dd8dd7",
      "tree": "aa7bc418d49c6923f301a59246b8d1cd6bec7a9f",
      "parents": [
        "2c891ef0f48f48b7d90e4db61ee3365f263412c8"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 13:45:25 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 13:45:25 2013"
      },
      "message": "Almost there.\n"
    },
    {
      "commit": "2c891ef0f48f48b7d90e4db61ee3365f263412c8",
      "tree": "52471f59d9d03142984b80580b374edb234fedd1",
      "parents": [
        "a21572ed023cbfdd9c586e7c743dd136e504289d"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 13:38:16 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 13:38:16 2013"
      },
      "message": "We\u0027re getting there.\n"
    },
    {
      "commit": "a21572ed023cbfdd9c586e7c743dd136e504289d",
      "tree": "34c696f181a012a6a07043cfd1bba66679e8e23e",
      "parents": [
        "ed7f8cc5ead1fb7ab84d2602fc8aa0285f3cad09"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 13:34:40 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 13:34:40 2013"
      },
      "message": "Fixing test failures.\n"
    },
    {
      "commit": "ed7f8cc5ead1fb7ab84d2602fc8aa0285f3cad09",
      "tree": "9227ba754c5cb570e392544dd171965582dbc87e",
      "parents": [
        "b8c6216e548389008bf5007bb5df8a4b23153329"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 13:21:56 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Wed May 08 13:21:56 2013"
      },
      "message": "Initial refactoring.\n"
    },
    {
      "commit": "b8c6216e548389008bf5007bb5df8a4b23153329",
      "tree": "6b9ec7e123589ad901588aff136ff980546e15cd",
      "parents": [
        "601b840f241afe28da0cd56363cfdcf078046aff"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Tue May 07 18:12:10 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Tue May 07 18:12:10 2013"
      },
      "message": "Fixed up diagnose() and added it to the docs.\n"
    },
    {
      "commit": "601b840f241afe28da0cd56363cfdcf078046aff",
      "tree": "10c19e6b43c11b44e384729f6176aad3397668a9",
      "parents": [
        "76d37ce5331478711e967f412f9baf9ccb7909fb"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Tue May 07 17:17:26 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Tue May 07 17:17:26 2013"
      },
      "message": "Since the string part of a NavigableString is immutable, gave it a simpler __copy__ implementation. [bug\u003d682685]\n"
    },
    {
      "commit": "76d37ce5331478711e967f412f9baf9ccb7909fb",
      "tree": "7cdc528e1ad39ad34e0bd3c85254b1cc378423f9",
      "parents": [
        "0fda36c407e438ecfd46715e108e0a4b71b98ee8"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Tue May 07 16:24:38 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Tue May 07 16:24:38 2013"
      },
      "message": "Mentioned the CSS selector solution to searching for a tag by multiple CSS classes.\n"
    },
    {
      "commit": "0fda36c407e438ecfd46715e108e0a4b71b98ee8",
      "tree": "451ac70e24f0333a8ac63d540b6837ab55dba231",
      "parents": [
        "cc3261b5a2a654c054aa2fd1336cf17033adae6d"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Tue May 07 16:12:24 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Tue May 07 16:12:24 2013"
      },
      "message": "Fixed an exception when an overspecified CSS selector didn\u0027t match\n  anything. Code by Stefaan Lippens. [bug\u003d1168167]\n"
    },
    {
      "commit": "cc3261b5a2a654c054aa2fd1336cf17033adae6d",
      "tree": "cf9ee58ce96daaf76789269be4f10047b6c63a62",
      "parents": [
        "45160f9cdbf46177630e8288727a5caddd49512d"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Tue May 07 14:58:27 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Tue May 07 14:58:27 2013"
      },
      "message": "Added support for the \"nth-of-type\" CSS selector. The CSS selector \"\u003e\" can now find a tag by means other than the tag name. Code by Sven Slootweg.\n"
    },
    {
      "commit": "45160f9cdbf46177630e8288727a5caddd49512d",
      "tree": "f0e745bdc8fcdc9611d012163ecb1bd5b25eb964",
      "parents": [
        "5498da59a91266470f0cc06f3de03a53c3bec28f"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Tue May 07 14:33:51 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Tue May 07 14:33:51 2013"
      },
      "message": "The prettify() method now leaves the contents of \u003cpre\u003e tags\n  alone. [bug\u003d1095654]\n"
    },
    {
      "commit": "5498da59a91266470f0cc06f3de03a53c3bec28f",
      "tree": "43a60ab3b076127617d21333c38dfd847b16e232",
      "parents": [
        "d1364f45d65417665e69d70bdb8a4a710d6d538d",
        "4c915801212fc2777ef9bfb2187422cce757f558"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Tue May 07 13:40:47 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Tue May 07 13:40:47 2013"
      },
      "message": "Merged.\n"
    },
    {
      "commit": "4c915801212fc2777ef9bfb2187422cce757f558",
      "tree": "a14b6dc6779f43b94040a59d8a258ad0015f7a9e",
      "parents": [
        "ad8fba68f19996a39b3070daa15c269997285fbf"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Tue May 07 12:40:35 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Tue May 07 12:40:35 2013"
      },
      "message": "Aliased the BeautifulSoup class to the easier-to-type \"_s\" and \"_soup\".\n"
    },
    {
      "commit": "ad8fba68f19996a39b3070daa15c269997285fbf",
      "tree": "445f9309ec93710d2e3011ce65b1c9a960e9d3e1",
      "parents": [
        "4b23e96d07eca401af4fe556d1bfc3b2ae824b00"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Tue May 07 12:36:07 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Tue May 07 12:36:07 2013"
      },
      "message": "Improved detection of lxml version number.\n"
    },
    {
      "commit": "4b23e96d07eca401af4fe556d1bfc3b2ae824b00",
      "tree": "ac4025b24b969e6bb07df726a8aff0b28d876c3d",
      "parents": [
        "c500397a0761c4e72641a4222b31c8c1f8069b92"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Tue May 07 12:19:02 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Tue May 07 12:19:02 2013"
      },
      "message": "Now that lxml\u0027s segfault on invalid doctype has been fixed, fix a\n  corresponding problem on the Beautiful Soup end that was previously\n  invisible. [bug\u003d984936]\n"
    },
    {
      "commit": "d1364f45d65417665e69d70bdb8a4a710d6d538d",
      "tree": "98c6dc6c1998ceb53e134f2a84c19f1734610273",
      "parents": [
        "c500397a0761c4e72641a4222b31c8c1f8069b92"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Tue May 07 01:38:10 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Tue May 07 01:38:10 2013"
      },
      "message": "Stop a crash when unwisely messing with a tag that\u0027s been\n  decomposed. [bug\u003d1097699]\n"
    },
    {
      "commit": "c500397a0761c4e72641a4222b31c8c1f8069b92",
      "tree": "2e820fda2277301aaf2e9e3dcb8d2275cade40e6",
      "parents": [
        "c58af856836ed0427e532e6bb80584b1040cd672"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Tue May 07 01:25:16 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Tue May 07 01:25:16 2013"
      },
      "message": "Methods like get_text() and properties like .strings now only give\n  you strings that are visible in the document--no comments or\n  processing commands. [bug\u003d1050164]\n"
    },
    {
      "commit": "c58af856836ed0427e532e6bb80584b1040cd672",
      "tree": "3d55a2aea1b6cb8724fa4b3be6e8ef636aadcb94",
      "parents": [
        "c186a56061ac759e2bbf2e0213cd2e7096baca69"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Mon May 06 21:56:35 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Mon May 06 21:56:35 2013"
      },
      "message": " Fix a bug by which keyword arguments to find_parent() were not being passed on. [bug\u003d1126734]\n"
    },
    {
      "commit": "c186a56061ac759e2bbf2e0213cd2e7096baca69",
      "tree": "e9ff7a9a842203f7019956957495eb8d0d645f03",
      "parents": [
        "ab4b253b6e30c1dbf61089c48e6c4c9451d92cd4"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Mon May 06 21:13:43 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Mon May 06 21:13:43 2013"
      },
      "message": "In an HTML document, the contents of a \u003cscript\u003e or \u003cstyle\u003e tag will\n  no longer undergo entity substitution by default. XML documents work\n  the same way they did before. [bug\u003d1085953]\n"
    },
    {
      "commit": "ab4b253b6e30c1dbf61089c48e6c4c9451d92cd4",
      "tree": "46d9296cf798992828992b114a67fc74081aa642",
      "parents": [
        "a890876a4de8e5265646a296abd78536d0ef9f5e"
      ],
      "author": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Mon May 06 21:07:31 2013"
      },
      "committer": {
        "name": "Leonard Richardson",
        "email": "leonardr@segfault.org",
        "time": "Mon May 06 21:07:31 2013"
      },
      "message": "Added failing test.\n"
    }
  ],
  "next": "a890876a4de8e5265646a296abd78536d0ef9f5e"
}
