{"action":"closed","number":234,"pull_request":{"url":"https://api.github.com/repos/j-e-k/poketrainer/pulls/234","id":79292046,"html_url":"https://github.com/j-e-k/poketrainer/pull/234","diff_url":"https://github.com/j-e-k/poketrainer/pull/234.diff","patch_url":"https://github.com/j-e-k/poketrainer/pull/234.patch","issue_url":"https://api.github.com/repos/j-e-k/poketrainer/issues/234","number":234,"state":"closed","locked":false,"title":"use tox, flake8, and isort and clean up code violations","user":{"login":"infinitewarp","id":1472326,"avatar_url":"https://avatars.githubusercontent.com/u/1472326?v=3","gravatar_id":"","url":"https://api.github.com/users/infinitewarp","html_url":"https://github.com/infinitewarp","followers_url":"https://api.github.com/users/infinitewarp/followers","following_url":"https://api.github.com/users/infinitewarp/following{/other_user}","gists_url":"https://api.github.com/users/infinitewarp/gists{/gist_id}","starred_url":"https://api.github.com/users/infinitewarp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/infinitewarp/subscriptions","organizations_url":"https://api.github.com/users/infinitewarp/orgs","repos_url":"https://api.github.com/users/infinitewarp/repos","events_url":"https://api.github.com/users/infinitewarp/events{/privacy}","received_events_url":"https://api.github.com/users/infinitewarp/received_events","type":"User","site_admin":false},"body":"I've added [tox](https://tox.readthedocs.io/) and the appropriate configs for it, [flake8](http://flake8.pycqa.org/), and [isort](https://github.com/timothycrosley/isort) to lint check the code and report back on violations of standard Python coding convention.\r\n\r\nI also did the janitorial duties of cleaning up the mountain of violations in the current code base (minus the generated POGOProtos module) so the checks would start passing immediately. If you're using any continuous integration tools, you should totally hook them up with tox.\r\n\r\nIf you accept this pull request, I'll submit another with an update to the README to explain how and when to use tox.","created_at":"2016-07-29T00:53:40Z","updated_at":"2016-07-30T00:31:13Z","closed_at":"2016-07-30T00:31:12Z","merged_at":"2016-07-30T00:31:12Z","merge_commit_sha":"c3d67a42300e425ec8bc35aa94e6cd7c5945eeea","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/j-e-k/poketrainer/pulls/234/commits","review_comments_url":"https://api.github.com/repos/j-e-k/poketrainer/pulls/234/comments","review_comment_url":"https://api.github.com/repos/j-e-k/poketrainer/pulls/comments{/number}","comments_url":"https://api.github.com/repos/j-e-k/poketrainer/issues/234/comments","statuses_url":"https://api.github.com/repos/j-e-k/poketrainer/statuses/a36796dae2b18b8a2df344a7bddcd31464c88675","head":{"label":"infinitewarp:tox-flake8-isort","ref":"tox-flake8-isort","sha":"a36796dae2b18b8a2df344a7bddcd31464c88675","user":{"login":"infinitewarp","id":1472326,"avatar_url":"https://avatars.githubusercontent.com/u/1472326?v=3","gravatar_id":"","url":"https://api.github.com/users/infinitewarp","html_url":"https://github.com/infinitewarp","followers_url":"https://api.github.com/users/infinitewarp/followers","following_url":"https://api.github.com/users/infinitewarp/following{/other_user}","gists_url":"https://api.github.com/users/infinitewarp/gists{/gist_id}","starred_url":"https://api.github.com/users/infinitewarp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/infinitewarp/subscriptions","organizations_url":"https://api.github.com/users/infinitewarp/orgs","repos_url":"https://api.github.com/users/infinitewarp/repos","events_url":"https://api.github.com/users/infinitewarp/events{/privacy}","received_events_url":"https://api.github.com/users/infinitewarp/received_events","type":"User","site_admin":false},"repo":{"id":64431149,"name":"poketrainer","full_name":"infinitewarp/poketrainer","owner":{"login":"infinitewarp","id":1472326,"avatar_url":"https://avatars.githubusercontent.com/u/1472326?v=3","gravatar_id":"","url":"https://api.github.com/users/infinitewarp","html_url":"https://github.com/infinitewarp","followers_url":"https://api.github.com/users/infinitewarp/followers","following_url":"https://api.github.com/users/infinitewarp/following{/other_user}","gists_url":"https://api.github.com/users/infinitewarp/gists{/gist_id}","starred_url":"https://api.github.com/users/infinitewarp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/infinitewarp/subscriptions","organizations_url":"https://api.github.com/users/infinitewarp/orgs","repos_url":"https://api.github.com/users/infinitewarp/repos","events_url":"https://api.github.com/users/infinitewarp/events{/privacy}","received_events_url":"https://api.github.com/users/infinitewarp/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/infinitewarp/poketrainer","description":"A poorly hacked together bot for Pokemon go (But actually, one of the first/most advanced/\"human\")","fork":true,"url":"https://api.github.com/repos/infinitewarp/poketrainer","forks_url":"https://api.github.com/repos/infinitewarp/poketrainer/forks","keys_url":"https://api.github.com/repos/infinitewarp/poketrainer/keys{/key_id}","collaborators_url":"https://api.github.com/repos/infinitewarp/poketrainer/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/infinitewarp/poketrainer/teams","hooks_url":"https://api.github.com/repos/infinitewarp/poketrainer/hooks","issue_events_url":"https://api.github.com/repos/infinitewarp/poketrainer/issues/events{/number}","events_url":"https://api.github.com/repos/infinitewarp/poketrainer/events","assignees_url":"https://api.github.com/repos/infinitewarp/poketrainer/assignees{/user}","branches_url":"https://api.github.com/repos/infinitewarp/poketrainer/branches{/branch}","tags_url":"https://api.github.com/repos/infinitewarp/poketrainer/tags","blobs_url":"https://api.github.com/repos/infinitewarp/poketrainer/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/infinitewarp/poketrainer/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/infinitewarp/poketrainer/git/refs{/sha}","trees_url":"https://api.github.com/repos/infinitewarp/poketrainer/git/trees{/sha}","statuses_url":"https://api.github.com/repos/infinitewarp/poketrainer/statuses/{sha}","languages_url":"https://api.github.com/repos/infinitewarp/poketrainer/languages","stargazers_url":"https://api.github.com/repos/infinitewarp/poketrainer/stargazers","contributors_url":"https://api.github.com/repos/infinitewarp/poketrainer/contributors","subscribers_url":"https://api.github.com/repos/infinitewarp/poketrainer/subscribers","subscription_url":"https://api.github.com/repos/infinitewarp/poketrainer/subscription","commits_url":"https://api.github.com/repos/infinitewarp/poketrainer/commits{/sha}","git_commits_url":"https://api.github.com/repos/infinitewarp/poketrainer/git/commits{/sha}","comments_url":"https://api.github.com/repos/infinitewarp/poketrainer/comments{/number}","issue_comment_url":"https://api.github.com/repos/infinitewarp/poketrainer/issues/comments{/number}","contents_url":"https://api.github.com/repos/infinitewarp/poketrainer/contents/{+path}","compare_url":"https://api.github.com/repos/infinitewarp/poketrainer/compare/{base}...{head}","merges_url":"https://api.github.com/repos/infinitewarp/poketrainer/merges","archive_url":"https://api.github.com/repos/infinitewarp/poketrainer/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/infinitewarp/poketrainer/downloads","issues_url":"https://api.github.com/repos/infinitewarp/poketrainer/issues{/number}","pulls_url":"https://api.github.com/repos/infinitewarp/poketrainer/pulls{/number}","milestones_url":"https://api.github.com/repos/infinitewarp/poketrainer/milestones{/number}","notifications_url":"https://api.github.com/repos/infinitewarp/poketrainer/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/infinitewarp/poketrainer/labels{/name}","releases_url":"https://api.github.com/repos/infinitewarp/poketrainer/releases{/id}","deployments_url":"https://api.github.com/repos/infinitewarp/poketrainer/deployments","created_at":"2016-07-28T22:05:26Z","updated_at":"2016-07-28T22:05:27Z","pushed_at":"2016-07-30T00:30:49Z","git_url":"git://github.com/infinitewarp/poketrainer.git","ssh_url":"git@github.com:infinitewarp/poketrainer.git","clone_url":"https://github.com/infinitewarp/poketrainer.git","svn_url":"https://github.com/infinitewarp/poketrainer","homepage":"","size":2615,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"j-e-k:develop","ref":"develop","sha":"2540fb592009dab893e13e7573de3a3f268c9448","user":{"login":"j-e-k","id":2546697,"avatar_url":"https://avatars.githubusercontent.com/u/2546697?v=3","gravatar_id":"","url":"https://api.github.com/users/j-e-k","html_url":"https://github.com/j-e-k","followers_url":"https://api.github.com/users/j-e-k/followers","following_url":"https://api.github.com/users/j-e-k/following{/other_user}","gists_url":"https://api.github.com/users/j-e-k/gists{/gist_id}","starred_url":"https://api.github.com/users/j-e-k/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/j-e-k/subscriptions","organizations_url":"https://api.github.com/users/j-e-k/orgs","repos_url":"https://api.github.com/users/j-e-k/repos","events_url":"https://api.github.com/users/j-e-k/events{/privacy}","received_events_url":"https://api.github.com/users/j-e-k/received_events","type":"User","site_admin":false},"repo":{"id":63714996,"name":"poketrainer","full_name":"j-e-k/poketrainer","owner":{"login":"j-e-k","id":2546697,"avatar_url":"https://avatars.githubusercontent.com/u/2546697?v=3","gravatar_id":"","url":"https://api.github.com/users/j-e-k","html_url":"https://github.com/j-e-k","followers_url":"https://api.github.com/users/j-e-k/followers","following_url":"https://api.github.com/users/j-e-k/following{/other_user}","gists_url":"https://api.github.com/users/j-e-k/gists{/gist_id}","starred_url":"https://api.github.com/users/j-e-k/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/j-e-k/subscriptions","organizations_url":"https://api.github.com/users/j-e-k/orgs","repos_url":"https://api.github.com/users/j-e-k/repos","events_url":"https://api.github.com/users/j-e-k/events{/privacy}","received_events_url":"https://api.github.com/users/j-e-k/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/j-e-k/poketrainer","description":"A poorly hacked together bot for Pokemon go (But actually, one of the first/most advanced/\"human\")","fork":false,"url":"https://api.github.com/repos/j-e-k/poketrainer","forks_url":"https://api.github.com/repos/j-e-k/poketrainer/forks","keys_url":"https://api.github.com/repos/j-e-k/poketrainer/keys{/key_id}","collaborators_url":"https://api.github.com/repos/j-e-k/poketrainer/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/j-e-k/poketrainer/teams","hooks_url":"https://api.github.com/repos/j-e-k/poketrainer/hooks","issue_events_url":"https://api.github.com/repos/j-e-k/poketrainer/issues/events{/number}","events_url":"https://api.github.com/repos/j-e-k/poketrainer/events","assignees_url":"https://api.github.com/repos/j-e-k/poketrainer/assignees{/user}","branches_url":"https://api.github.com/repos/j-e-k/poketrainer/branches{/branch}","tags_url":"https://api.github.com/repos/j-e-k/poketrainer/tags","blobs_url":"https://api.github.com/repos/j-e-k/poketrainer/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/j-e-k/poketrainer/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/j-e-k/poketrainer/git/refs{/sha}","trees_url":"https://api.github.com/repos/j-e-k/poketrainer/git/trees{/sha}","statuses_url":"https://api.github.com/repos/j-e-k/poketrainer/statuses/{sha}","languages_url":"https://api.github.com/repos/j-e-k/poketrainer/languages","stargazers_url":"https://api.github.com/repos/j-e-k/poketrainer/stargazers","contributors_url":"https://api.github.com/repos/j-e-k/poketrainer/contributors","subscribers_url":"https://api.github.com/repos/j-e-k/poketrainer/subscribers","subscription_url":"https://api.github.com/repos/j-e-k/poketrainer/subscription","commits_url":"https://api.github.com/repos/j-e-k/poketrainer/commits{/sha}","git_commits_url":"https://api.github.com/repos/j-e-k/poketrainer/git/commits{/sha}","comments_url":"https://api.github.com/repos/j-e-k/poketrainer/comments{/number}","issue_comment_url":"https://api.github.com/repos/j-e-k/poketrainer/issues/comments{/number}","contents_url":"https://api.github.com/repos/j-e-k/poketrainer/contents/{+path}","compare_url":"https://api.github.com/repos/j-e-k/poketrainer/compare/{base}...{head}","merges_url":"https://api.github.com/repos/j-e-k/poketrainer/merges","archive_url":"https://api.github.com/repos/j-e-k/poketrainer/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/j-e-k/poketrainer/downloads","issues_url":"https://api.github.com/repos/j-e-k/poketrainer/issues{/number}","pulls_url":"https://api.github.com/repos/j-e-k/poketrainer/pulls{/number}","milestones_url":"https://api.github.com/repos/j-e-k/poketrainer/milestones{/number}","notifications_url":"https://api.github.com/repos/j-e-k/poketrainer/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/j-e-k/poketrainer/labels{/name}","releases_url":"https://api.github.com/repos/j-e-k/poketrainer/releases{/id}","deployments_url":"https://api.github.com/repos/j-e-k/poketrainer/deployments","created_at":"2016-07-19T17:38:59Z","updated_at":"2016-07-30T00:11:57Z","pushed_at":"2016-07-30T00:31:13Z","git_url":"git://github.com/j-e-k/poketrainer.git","ssh_url":"git@github.com:j-e-k/poketrainer.git","clone_url":"https://github.com/j-e-k/poketrainer.git","svn_url":"https://github.com/j-e-k/poketrainer","homepage":"","size":4009,"stargazers_count":127,"watchers_count":127,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":70,"mirror_url":null,"open_issues_count":37,"forks":70,"open_issues":37,"watchers":127,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/j-e-k/poketrainer/pulls/234"},"html":{"href":"https://github.com/j-e-k/poketrainer/pull/234"},"issue":{"href":"https://api.github.com/repos/j-e-k/poketrainer/issues/234"},"comments":{"href":"https://api.github.com/repos/j-e-k/poketrainer/issues/234/comments"},"review_comments":{"href":"https://api.github.com/repos/j-e-k/poketrainer/pulls/234/comments"},"review_comment":{"href":"https://api.github.com/repos/j-e-k/poketrainer/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/j-e-k/poketrainer/pulls/234/commits"},"statuses":{"href":"https://api.github.com/repos/j-e-k/poketrainer/statuses/a36796dae2b18b8a2df344a7bddcd31464c88675"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"j-e-k","id":2546697,"avatar_url":"https://avatars.githubusercontent.com/u/2546697?v=3","gravatar_id":"","url":"https://api.github.com/users/j-e-k","html_url":"https://github.com/j-e-k","followers_url":"https://api.github.com/users/j-e-k/followers","following_url":"https://api.github.com/users/j-e-k/following{/other_user}","gists_url":"https://api.github.com/users/j-e-k/gists{/gist_id}","starred_url":"https://api.github.com/users/j-e-k/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/j-e-k/subscriptions","organizations_url":"https://api.github.com/users/j-e-k/orgs","repos_url":"https://api.github.com/users/j-e-k/repos","events_url":"https://api.github.com/users/j-e-k/events{/privacy}","received_events_url":"https://api.github.com/users/j-e-k/received_events","type":"User","site_admin":false},"comments":10,"review_comments":0,"commits":30,"additions":303,"deletions":196,"changed_files":20}}
{"actor":{"display_login":"j-e-k"}}