payload: {"action":"created","issue":{"url":"https://api.github.com/repos/sunpy/sunpy/issues/2797","repository_url":"https://api.github.com/repos/sunpy/sunpy","labels_url":"https://api.github.com/repos/sunpy/sunpy/issues/2797/labels{/name}","comments_url":"https://api.github.com/repos/sunpy/sunpy/issues/2797/comments","events_url":"https://api.github.com/repos/sunpy/sunpy/issues/2797/events","html_url":"https://github.com/sunpy/sunpy/pull/2797","id":370414163,"node_id":"MDExOlB1bGxSZXF1ZXN0MjIzMDk2NTE2","number":2797,"title":"Replace SunPy's Downloader with an asyncio version","user":{"login":"Cadair","id":1391051,"node_id":"MDQ6VXNlcjEzOTEwNTE=","avatar_url":"https://avatars2.githubusercontent.com/u/1391051?v=4","gravatar_id":"","url":"https://api.github.com/users/Cadair","html_url":"https://github.com/Cadair","followers_url":"https://api.github.com/users/Cadair/followers","following_url":"https://api.github.com/users/Cadair/following{/other_user}","gists_url":"https://api.github.com/users/Cadair/gists{/gist_id}","starred_url":"https://api.github.com/users/Cadair/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Cadair/subscriptions","organizations_url":"https://api.github.com/users/Cadair/orgs","repos_url":"https://api.github.com/users/Cadair/repos","events_url":"https://api.github.com/users/Cadair/events{/privacy}","received_events_url":"https://api.github.com/users/Cadair/received_events","type":"User","site_admin":false},"labels":[{"id":123240217,"node_id":"MDU6TGFiZWwxMjMyNDAyMTc=","url":"https://api.github.com/repos/sunpy/sunpy/labels/net","name":"net","color":"c7def8","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/sunpy/sunpy/milestones/17","html_url":"https://github.com/sunpy/sunpy/milestone/17","labels_url":"https://api.github.com/repos/sunpy/sunpy/milestones/17/labels","id":2692290,"node_id":"MDk6TWlsZXN0b25lMjY5MjI5MA==","number":17,"title":"1.0","description":"","creator":{"login":"nabobalis","id":1392107,"node_id":"MDQ6VXNlcjEzOTIxMDc=","avatar_url":"https://avatars2.githubusercontent.com/u/1392107?v=4","gravatar_id":"","url":"https://api.github.com/users/nabobalis","html_url":"https://github.com/nabobalis","followers_url":"https://api.github.com/users/nabobalis/followers","following_url":"https://api.github.com/users/nabobalis/following{/other_user}","gists_url":"https://api.github.com/users/nabobalis/gists{/gist_id}","starred_url":"https://api.github.com/users/nabobalis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nabobalis/subscriptions","organizations_url":"https://api.github.com/users/nabobalis/orgs","repos_url":"https://api.github.com/users/nabobalis/repos","events_url":"https://api.github.com/users/nabobalis/events{/privacy}","received_events_url":"https://api.github.com/users/nabobalis/received_events","type":"User","site_admin":false},"open_issues":30,"closed_issues":129,"state":"open","created_at":"2017-08-09T16:27:19Z","updated_at":"2019-03-12T15:09:52Z","due_on":"2019-05-03T07:00:00Z","closed_at":null},"comments":6,"created_at":"2018-10-16T02:29:46Z","updated_at":"2019-03-12T20:50:25Z","closed_at":null,"author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/sunpy/sunpy/pulls/2797","html_url":"https://github.com/sunpy/sunpy/pull/2797","diff_url":"https://github.com/sunpy/sunpy/pull/2797.diff","patch_url":"https://github.com/sunpy/sunpy/pull/2797.patch"},"body":"This is the first stage of #2376 It isn't finished but I am opening it to see what happens with the CI and to get some initial feedback.\r\n\r\nThis makes use of https://github.com/Cadair/parfive which I implemented independently of SunPy as it is rather more generic than just SunPy. I am interested in peoples opinions about if we should fold it into sunpy either in net or in extern? It should also be noted that `parfive` depends on `tqdm`, `aiohttp` and `aioftp` so we are pulling all of those in as dependencies with this.\r\n\r\nTODO:\r\n\r\n- [x] Handle overwriting / skipping downloads correctly.\r\n- [x] Add an example or something dealing with `.errors`.\r\n- [ ] Package parfive on conda.\r\n- [x] Remove custom overwrite handling in JSOCClient.\r\n- [ ] Documentation\r\n\r\nTo those reviewing this, it would also be worthwhile reviewing the actual downloader code which is in a reviewable format here: https://github.com/Cadair/parfive/pull/5/files\r\n\r\nThis is how it looks in a notebook:\r\n![peek 2018-12-20 14-16](https://user-images.githubusercontent.com/1391051/50290236-ecf07b00-0462-11e9-80b2-9473c918802a.gif)\r\n\r\nand this is how it looks in a terminal:\r\n![peek 2018-12-20 14-22](https://user-images.githubusercontent.com/1391051/50290239-efeb6b80-0462-11e9-8b17-dfc05f8e2a57.gif)\r\n\r\ntest script: https://gist.github.com/6dafef3cfe47e7d6659ab8df44475126\r\n\r\nFixes #555 \r\nFixes #2376 \r\nFixes #2773 \r\nFixes #2108\r\nFixes #1331\r\nFixes #1280"},"comment":{"url":"https://api.github.com/repos/sunpy/sunpy/issues/comments/472175635","html_url":"https://github.com/sunpy/sunpy/pull/2797#issuecomment-472175635","issue_url":"https://api.github.com/repos/sunpy/sunpy/issues/2797","id":472175635,"node_id":"MDEyOklzc3VlQ29tbWVudDQ3MjE3NTYzNQ==","user":{"login":"hayesla","id":4620298,"node_id":"MDQ6VXNlcjQ2MjAyOTg=","avatar_url":"https://avatars0.githubusercontent.com/u/4620298?v=4","gravatar_id":"","url":"https://api.github.com/users/hayesla","html_url":"https://github.com/hayesla","followers_url":"https://api.github.com/users/hayesla/followers","following_url":"https://api.github.com/users/hayesla/following{/other_user}","gists_url":"https://api.github.com/users/hayesla/gists{/gist_id}","starred_url":"https://api.github.com/users/hayesla/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hayesla/subscriptions","organizations_url":"https://api.github.com/users/hayesla/orgs","repos_url":"https://api.github.com/users/hayesla/repos","events_url":"https://api.github.com/users/hayesla/events{/privacy}","received_events_url":"https://api.github.com/users/hayesla/received_events","type":"User","site_admin":false},"created_at":"2019-03-12T20:50:25Z","updated_at":"2019-03-12T20:50:25Z","author_association":"NONE","body":"do you also want to use the parfive in the downloading of the sample data? "}}
other: {"actor":{"display_login":"hayesla"}}