)]}'
{
  "commit": "c36db0dc8a915e1bfd79278cdd91e5ce4fae3fcc",
  "tree": "b0aedfe576a75ce0addd3f12f99b67799f205487",
  "parents": [
    "78e0ea142d00ba54517e4f1ba760d77fe79a6054"
  ],
  "author": {
    "name": "Łukasz Langa",
    "email": "lukasz@langa.pl",
    "time": "Fri Jan 06 15:46:45 2017 -0800"
  },
  "committer": {
    "name": "Guido van Rossum",
    "email": "guido@python.org",
    "time": "Fri Jan 06 15:46:45 2017 -0800"
  },
  "message": "Externalize flake8 linting, introduce additional checks (#2638)\n\nThis change is a step towards removing `runtests.py` (see #1673).\r\n\r\nThe exclusion list in the flake8 configuration in `setup.cfg` has been updated\r\nto enable running the linter from the root of the project by simply invoking\r\n`flake8`.  This enables it to leverage its own file discovery and its own\r\nmultiprocessing queue without excessive subprocessing for linting every file.\r\nThis gives a minor speed up in local test runs. Before:\r\n\r\n  total time in lint: 130.914682\r\n\r\nAfter:\r\n\r\n  total time in lint: 20.379915\r\n\r\nThere\u0027s an additional speedup on Travis because linting is now only performed\r\non Python 3.6.\r\n\r\nMore importantly, this means flake8 is now running over all files unless\r\nexplicitly excluded in `setup.cfg`. This will help avoiding unintentional\r\nomissions in the future (see comments on #2637).\r\n\r\nNote: running `flake8` as a single lazy subprocess in `runtests.py` doesn\u0027t\r\nsacrifice any parallelism because the linter has its own process pool.\r\n\r\nMinimal whitespace changes were required to `mypy_extensions.py` but in return\r\nflake8 will check it now exactly like it checks the rest of the `mypy/*`\r\ncodebase.  Those are also done on #2637 but that hasn\u0027t landed yet.\r\n\r\nFinally, flake8-bugbear and flake8-pyi were added to test requirements to make\r\nthe linter configuration consistent with typeshed.  I hope the additional\r\nchecks will speed up future pull requests by automating bigger parts of the\r\ncode review.  The pyi plugin enables forward reference support when linting\r\n.pyi files.  That means it\u0027s now possible to run `flake8` inside the typeshed\r\nsubmodule or on arbitrary .pyi files during development (which your editor\r\ncould do for you), for example on fixtures.  See discussion on #2629 on checks\r\nthat are disabled and why.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "efa3c35e8e03d104878ad46a680590d56fd182c6",
      "old_mode": 33188,
      "old_path": "mypy_extensions.py",
      "new_id": "8305902778cb1209204bb352cd0841e4cfad1d5c",
      "new_mode": 33188,
      "new_path": "mypy_extensions.py"
    }
  ]
}
