{"action":"created","comment":{"url":"https://api.github.com/repos/hammerlab/pyensembl/pulls/comments/24641310","id":24641310,"diff_hunk":"@@ -46,7 +46,7 @@ def _read_csv(csv_path):\n     return df\n \n def _write_csv(df, csv_path):\n-    print \"Saving DataFrame to %s\" % csv_path\n+    print(\"Saving DataFrame to %s\" % csv_path)","path":"pyensembl/compute_cache.py","position":23,"original_position":23,"commit_id":"130bd9a9dabd832acbb66aa4d22e486e75cd14a3","original_commit_id":"130bd9a9dabd832acbb66aa4d22e486e75cd14a3","user":{"login":"iskandr","id":48441,"avatar_url":"https://avatars.githubusercontent.com/u/48441?v=3","gravatar_id":"","url":"https://api.github.com/users/iskandr","html_url":"https://github.com/iskandr","followers_url":"https://api.github.com/users/iskandr/followers","following_url":"https://api.github.com/users/iskandr/following{/other_user}","gists_url":"https://api.github.com/users/iskandr/gists{/gist_id}","starred_url":"https://api.github.com/users/iskandr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iskandr/subscriptions","organizations_url":"https://api.github.com/users/iskandr/orgs","repos_url":"https://api.github.com/users/iskandr/repos","events_url":"https://api.github.com/users/iskandr/events{/privacy}","received_events_url":"https://api.github.com/users/iskandr/received_events","type":"User","site_admin":false},"body":"`from __future__ import print_function`?","created_at":"2015-02-13T02:52:39Z","updated_at":"2015-02-13T02:52:39Z","html_url":"https://github.com/hammerlab/pyensembl/pull/35#discussion_r24641310","pull_request_url":"https://api.github.com/repos/hammerlab/pyensembl/pulls/35","_links":{"self":{"href":"https://api.github.com/repos/hammerlab/pyensembl/pulls/comments/24641310"},"html":{"href":"https://github.com/hammerlab/pyensembl/pull/35#discussion_r24641310"},"pull_request":{"href":"https://api.github.com/repos/hammerlab/pyensembl/pulls/35"}}},"pull_request":{"url":"https://api.github.com/repos/hammerlab/pyensembl/pulls/35","id":29234778,"html_url":"https://github.com/hammerlab/pyensembl/pull/35","diff_url":"https://github.com/hammerlab/pyensembl/pull/35.diff","patch_url":"https://github.com/hammerlab/pyensembl/pull/35.patch","issue_url":"https://api.github.com/repos/hammerlab/pyensembl/issues/35","number":35,"state":"open","locked":false,"title":"Support Python 3","user":{"login":"timodonnell","id":467896,"avatar_url":"https://avatars.githubusercontent.com/u/467896?v=3","gravatar_id":"","url":"https://api.github.com/users/timodonnell","html_url":"https://github.com/timodonnell","followers_url":"https://api.github.com/users/timodonnell/followers","following_url":"https://api.github.com/users/timodonnell/following{/other_user}","gists_url":"https://api.github.com/users/timodonnell/gists{/gist_id}","starred_url":"https://api.github.com/users/timodonnell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/timodonnell/subscriptions","organizations_url":"https://api.github.com/users/timodonnell/orgs","repos_url":"https://api.github.com/users/timodonnell/repos","events_url":"https://api.github.com/users/timodonnell/events{/privacy}","received_events_url":"https://api.github.com/users/timodonnell/received_events","type":"User","site_admin":false},"body":"With these changes, the unit tests run for me in both Python 3.4 and Python 2.7.\r\n\r\nChanges that affect the code running under Python 2:\r\n * unicode values are converted to str in Database.py. Everywhere that used to assert that a value was either a unicode or a str now asserts it's a str.\r\n * Many places that assert a numeric value is an int or a long now require it to be an int. A Python 2 int is a C long, so it's unlikely we're going to actually need Python 2 long values, but if there's a case where this is needed we will have to revisit.\r\n * Fixed an apparent bug in test_exon_object.py in the test_partial_start_codons method.\n\n<!-- Reviewable:start -->\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/hammerlab/pyensembl/35)\n<!-- Reviewable:end -->\n","created_at":"2015-02-13T02:02:19Z","updated_at":"2015-02-13T02:52:39Z","closed_at":null,"merged_at":null,"merge_commit_sha":"91ca18ee81a42ec3a252482bee88d84ac3a37078","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/hammerlab/pyensembl/pulls/35/commits","review_comments_url":"https://api.github.com/repos/hammerlab/pyensembl/pulls/35/comments","review_comment_url":"https://api.github.com/repos/hammerlab/pyensembl/pulls/comments/{number}","comments_url":"https://api.github.com/repos/hammerlab/pyensembl/issues/35/comments","statuses_url":"https://api.github.com/repos/hammerlab/pyensembl/statuses/130bd9a9dabd832acbb66aa4d22e486e75cd14a3","head":{"label":"hammerlab:support_python3","ref":"support_python3","sha":"130bd9a9dabd832acbb66aa4d22e486e75cd14a3","user":{"login":"hammerlab","id":6563873,"avatar_url":"https://avatars.githubusercontent.com/u/6563873?v=3","gravatar_id":"","url":"https://api.github.com/users/hammerlab","html_url":"https://github.com/hammerlab","followers_url":"https://api.github.com/users/hammerlab/followers","following_url":"https://api.github.com/users/hammerlab/following{/other_user}","gists_url":"https://api.github.com/users/hammerlab/gists{/gist_id}","starred_url":"https://api.github.com/users/hammerlab/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hammerlab/subscriptions","organizations_url":"https://api.github.com/users/hammerlab/orgs","repos_url":"https://api.github.com/users/hammerlab/repos","events_url":"https://api.github.com/users/hammerlab/events{/privacy}","received_events_url":"https://api.github.com/users/hammerlab/received_events","type":"Organization","site_admin":false},"repo":{"id":18765629,"name":"pyensembl","full_name":"hammerlab/pyensembl","owner":{"login":"hammerlab","id":6563873,"avatar_url":"https://avatars.githubusercontent.com/u/6563873?v=3","gravatar_id":"","url":"https://api.github.com/users/hammerlab","html_url":"https://github.com/hammerlab","followers_url":"https://api.github.com/users/hammerlab/followers","following_url":"https://api.github.com/users/hammerlab/following{/other_user}","gists_url":"https://api.github.com/users/hammerlab/gists{/gist_id}","starred_url":"https://api.github.com/users/hammerlab/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hammerlab/subscriptions","organizations_url":"https://api.github.com/users/hammerlab/orgs","repos_url":"https://api.github.com/users/hammerlab/repos","events_url":"https://api.github.com/users/hammerlab/events{/privacy}","received_events_url":"https://api.github.com/users/hammerlab/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/hammerlab/pyensembl","description":"Python interface to ensembl reference genome metadata (exons, transcripts, etc...)","fork":false,"url":"https://api.github.com/repos/hammerlab/pyensembl","forks_url":"https://api.github.com/repos/hammerlab/pyensembl/forks","keys_url":"https://api.github.com/repos/hammerlab/pyensembl/keys{/key_id}","collaborators_url":"https://api.github.com/repos/hammerlab/pyensembl/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/hammerlab/pyensembl/teams","hooks_url":"https://api.github.com/repos/hammerlab/pyensembl/hooks","issue_events_url":"https://api.github.com/repos/hammerlab/pyensembl/issues/events{/number}","events_url":"https://api.github.com/repos/hammerlab/pyensembl/events","assignees_url":"https://api.github.com/repos/hammerlab/pyensembl/assignees{/user}","branches_url":"https://api.github.com/repos/hammerlab/pyensembl/branches{/branch}","tags_url":"https://api.github.com/repos/hammerlab/pyensembl/tags","blobs_url":"https://api.github.com/repos/hammerlab/pyensembl/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/hammerlab/pyensembl/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/hammerlab/pyensembl/git/refs{/sha}","trees_url":"https://api.github.com/repos/hammerlab/pyensembl/git/trees{/sha}","statuses_url":"https://api.github.com/repos/hammerlab/pyensembl/statuses/{sha}","languages_url":"https://api.github.com/repos/hammerlab/pyensembl/languages","stargazers_url":"https://api.github.com/repos/hammerlab/pyensembl/stargazers","contributors_url":"https://api.github.com/repos/hammerlab/pyensembl/contributors","subscribers_url":"https://api.github.com/repos/hammerlab/pyensembl/subscribers","subscription_url":"https://api.github.com/repos/hammerlab/pyensembl/subscription","commits_url":"https://api.github.com/repos/hammerlab/pyensembl/commits{/sha}","git_commits_url":"https://api.github.com/repos/hammerlab/pyensembl/git/commits{/sha}","comments_url":"https://api.github.com/repos/hammerlab/pyensembl/comments{/number}","issue_comment_url":"https://api.github.com/repos/hammerlab/pyensembl/issues/comments/{number}","contents_url":"https://api.github.com/repos/hammerlab/pyensembl/contents/{+path}","compare_url":"https://api.github.com/repos/hammerlab/pyensembl/compare/{base}...{head}","merges_url":"https://api.github.com/repos/hammerlab/pyensembl/merges","archive_url":"https://api.github.com/repos/hammerlab/pyensembl/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/hammerlab/pyensembl/downloads","issues_url":"https://api.github.com/repos/hammerlab/pyensembl/issues{/number}","pulls_url":"https://api.github.com/repos/hammerlab/pyensembl/pulls{/number}","milestones_url":"https://api.github.com/repos/hammerlab/pyensembl/milestones{/number}","notifications_url":"https://api.github.com/repos/hammerlab/pyensembl/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/hammerlab/pyensembl/labels{/name}","releases_url":"https://api.github.com/repos/hammerlab/pyensembl/releases{/id}","created_at":"2014-04-14T15:23:02Z","updated_at":"2015-02-06T17:44:22Z","pushed_at":"2015-02-13T02:02:22Z","git_url":"git://github.com/hammerlab/pyensembl.git","ssh_url":"git@github.com:hammerlab/pyensembl.git","clone_url":"https://github.com/hammerlab/pyensembl.git","svn_url":"https://github.com/hammerlab/pyensembl","homepage":null,"size":911,"stargazers_count":18,"watchers_count":18,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":13,"forks":1,"open_issues":13,"watchers":18,"default_branch":"master"}},"base":{"label":"hammerlab:master","ref":"master","sha":"84f98ccd2ee999f3c22c02206910b8dbdeca76c1","user":{"login":"hammerlab","id":6563873,"avatar_url":"https://avatars.githubusercontent.com/u/6563873?v=3","gravatar_id":"","url":"https://api.github.com/users/hammerlab","html_url":"https://github.com/hammerlab","followers_url":"https://api.github.com/users/hammerlab/followers","following_url":"https://api.github.com/users/hammerlab/following{/other_user}","gists_url":"https://api.github.com/users/hammerlab/gists{/gist_id}","starred_url":"https://api.github.com/users/hammerlab/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hammerlab/subscriptions","organizations_url":"https://api.github.com/users/hammerlab/orgs","repos_url":"https://api.github.com/users/hammerlab/repos","events_url":"https://api.github.com/users/hammerlab/events{/privacy}","received_events_url":"https://api.github.com/users/hammerlab/received_events","type":"Organization","site_admin":false},"repo":{"id":18765629,"name":"pyensembl","full_name":"hammerlab/pyensembl","owner":{"login":"hammerlab","id":6563873,"avatar_url":"https://avatars.githubusercontent.com/u/6563873?v=3","gravatar_id":"","url":"https://api.github.com/users/hammerlab","html_url":"https://github.com/hammerlab","followers_url":"https://api.github.com/users/hammerlab/followers","following_url":"https://api.github.com/users/hammerlab/following{/other_user}","gists_url":"https://api.github.com/users/hammerlab/gists{/gist_id}","starred_url":"https://api.github.com/users/hammerlab/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hammerlab/subscriptions","organizations_url":"https://api.github.com/users/hammerlab/orgs","repos_url":"https://api.github.com/users/hammerlab/repos","events_url":"https://api.github.com/users/hammerlab/events{/privacy}","received_events_url":"https://api.github.com/users/hammerlab/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/hammerlab/pyensembl","description":"Python interface to ensembl reference genome metadata (exons, transcripts, etc...)","fork":false,"url":"https://api.github.com/repos/hammerlab/pyensembl","forks_url":"https://api.github.com/repos/hammerlab/pyensembl/forks","keys_url":"https://api.github.com/repos/hammerlab/pyensembl/keys{/key_id}","collaborators_url":"https://api.github.com/repos/hammerlab/pyensembl/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/hammerlab/pyensembl/teams","hooks_url":"https://api.github.com/repos/hammerlab/pyensembl/hooks","issue_events_url":"https://api.github.com/repos/hammerlab/pyensembl/issues/events{/number}","events_url":"https://api.github.com/repos/hammerlab/pyensembl/events","assignees_url":"https://api.github.com/repos/hammerlab/pyensembl/assignees{/user}","branches_url":"https://api.github.com/repos/hammerlab/pyensembl/branches{/branch}","tags_url":"https://api.github.com/repos/hammerlab/pyensembl/tags","blobs_url":"https://api.github.com/repos/hammerlab/pyensembl/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/hammerlab/pyensembl/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/hammerlab/pyensembl/git/refs{/sha}","trees_url":"https://api.github.com/repos/hammerlab/pyensembl/git/trees{/sha}","statuses_url":"https://api.github.com/repos/hammerlab/pyensembl/statuses/{sha}","languages_url":"https://api.github.com/repos/hammerlab/pyensembl/languages","stargazers_url":"https://api.github.com/repos/hammerlab/pyensembl/stargazers","contributors_url":"https://api.github.com/repos/hammerlab/pyensembl/contributors","subscribers_url":"https://api.github.com/repos/hammerlab/pyensembl/subscribers","subscription_url":"https://api.github.com/repos/hammerlab/pyensembl/subscription","commits_url":"https://api.github.com/repos/hammerlab/pyensembl/commits{/sha}","git_commits_url":"https://api.github.com/repos/hammerlab/pyensembl/git/commits{/sha}","comments_url":"https://api.github.com/repos/hammerlab/pyensembl/comments{/number}","issue_comment_url":"https://api.github.com/repos/hammerlab/pyensembl/issues/comments/{number}","contents_url":"https://api.github.com/repos/hammerlab/pyensembl/contents/{+path}","compare_url":"https://api.github.com/repos/hammerlab/pyensembl/compare/{base}...{head}","merges_url":"https://api.github.com/repos/hammerlab/pyensembl/merges","archive_url":"https://api.github.com/repos/hammerlab/pyensembl/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/hammerlab/pyensembl/downloads","issues_url":"https://api.github.com/repos/hammerlab/pyensembl/issues{/number}","pulls_url":"https://api.github.com/repos/hammerlab/pyensembl/pulls{/number}","milestones_url":"https://api.github.com/repos/hammerlab/pyensembl/milestones{/number}","notifications_url":"https://api.github.com/repos/hammerlab/pyensembl/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/hammerlab/pyensembl/labels{/name}","releases_url":"https://api.github.com/repos/hammerlab/pyensembl/releases{/id}","created_at":"2014-04-14T15:23:02Z","updated_at":"2015-02-06T17:44:22Z","pushed_at":"2015-02-13T02:02:22Z","git_url":"git://github.com/hammerlab/pyensembl.git","ssh_url":"git@github.com:hammerlab/pyensembl.git","clone_url":"https://github.com/hammerlab/pyensembl.git","svn_url":"https://github.com/hammerlab/pyensembl","homepage":null,"size":911,"stargazers_count":18,"watchers_count":18,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":13,"forks":1,"open_issues":13,"watchers":18,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/hammerlab/pyensembl/pulls/35"},"html":{"href":"https://github.com/hammerlab/pyensembl/pull/35"},"issue":{"href":"https://api.github.com/repos/hammerlab/pyensembl/issues/35"},"comments":{"href":"https://api.github.com/repos/hammerlab/pyensembl/issues/35/comments"},"review_comments":{"href":"https://api.github.com/repos/hammerlab/pyensembl/pulls/35/comments"},"review_comment":{"href":"https://api.github.com/repos/hammerlab/pyensembl/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/hammerlab/pyensembl/pulls/35/commits"},"statuses":{"href":"https://api.github.com/repos/hammerlab/pyensembl/statuses/130bd9a9dabd832acbb66aa4d22e486e75cd14a3"}}}}