{"action":"created","issue":{"url":"https://api.github.com/repos/aio-libs/aiohttp/issues/1900","repository_url":"https://api.github.com/repos/aio-libs/aiohttp","labels_url":"https://api.github.com/repos/aio-libs/aiohttp/issues/1900/labels{/name}","comments_url":"https://api.github.com/repos/aio-libs/aiohttp/issues/1900/comments","events_url":"https://api.github.com/repos/aio-libs/aiohttp/issues/1900/events","html_url":"https://github.com/aio-libs/aiohttp/pull/1900","id":229367444,"number":1900,"title":"aiohttp/http_parser.py: pure-python fix for big chunk decoding (#1899)","user":{"login":"Anvil","id":708473,"avatar_url":"https://avatars3.githubusercontent.com/u/708473?v=3","gravatar_id":"","url":"https://api.github.com/users/Anvil","html_url":"https://github.com/Anvil","followers_url":"https://api.github.com/users/Anvil/followers","following_url":"https://api.github.com/users/Anvil/following{/other_user}","gists_url":"https://api.github.com/users/Anvil/gists{/gist_id}","starred_url":"https://api.github.com/users/Anvil/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Anvil/subscriptions","organizations_url":"https://api.github.com/users/Anvil/orgs","repos_url":"https://api.github.com/users/Anvil/repos","events_url":"https://api.github.com/users/Anvil/events{/privacy}","received_events_url":"https://api.github.com/users/Anvil/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":15,"created_at":"2017-05-17T14:15:17Z","updated_at":"2017-05-22T10:43:49Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/aio-libs/aiohttp/pulls/1900","html_url":"https://github.com/aio-libs/aiohttp/pull/1900","diff_url":"https://github.com/aio-libs/aiohttp/pull/1900.diff","patch_url":"https://github.com/aio-libs/aiohttp/pull/1900.patch"},"body":"<!-- Thank you for your contribution!\r\n\r\n     Before submit your Pull Request, make sure you picked\r\n     the right branch:\r\n\r\n     - If you propose a new feature or improvement, select \"master\"\r\n       as a target branch;\r\n     - If this is a bug fix or documentation amendment, select\r\n       the latest release branch (which looks like \"0.xx\") -->\r\n\r\n## What do these changes do?\r\n\r\nIt should be a pure-python fix #1899 \r\nThe .pyx implementation is not done. Not sure I'll be able to do that.\r\n\r\n## Are there changes in behavior for the user?\r\n\r\nresponse.content.iter_any() will not yield partial chunk\r\n\r\n## Related issue number\r\n\r\n#1899 \r\n\r\n## Checklist\r\n\r\n- [X] I think the code is well written\r\n- [ ] Unit tests for the changes exist\r\n- [X] Documentation reflects the changes\r\n- [X] If you provide code modification, please add yourself to `CONTRIBUTORS.txt`\r\n  * The format is &lt;Name&gt; &lt;Surname&gt;.\r\n  * Please keep alphabetical order, the file is sorted by names. \r\n- [X] Add a new entry to `CHANGES.rst`\r\n  * Choose any open position to avoid merge conflicts with other PRs.\r\n  * Add a link to the issue you are fixing (if any) using `#issue_number` format at the end of changelog message. Use Pull Request number if there are no issues for PR or PR covers the issue only partially.\r\n"},"comment":{"url":"https://api.github.com/repos/aio-libs/aiohttp/issues/comments/303064930","html_url":"https://github.com/aio-libs/aiohttp/pull/1900#issuecomment-303064930","issue_url":"https://api.github.com/repos/aio-libs/aiohttp/issues/1900","id":303064930,"user":{"login":"hubo1016","id":14069404,"avatar_url":"https://avatars0.githubusercontent.com/u/14069404?v=3","gravatar_id":"","url":"https://api.github.com/users/hubo1016","html_url":"https://github.com/hubo1016","followers_url":"https://api.github.com/users/hubo1016/followers","following_url":"https://api.github.com/users/hubo1016/following{/other_user}","gists_url":"https://api.github.com/users/hubo1016/gists{/gist_id}","starred_url":"https://api.github.com/users/hubo1016/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hubo1016/subscriptions","organizations_url":"https://api.github.com/users/hubo1016/orgs","repos_url":"https://api.github.com/users/hubo1016/repos","events_url":"https://api.github.com/users/hubo1016/events{/privacy}","received_events_url":"https://api.github.com/users/hubo1016/received_events","type":"User","site_admin":false},"created_at":"2017-05-22T10:43:49Z","updated_at":"2017-05-22T10:43:49Z","body":"And also I would like to remind that for usages that yields multiple JSON objects through chunked-encoded data, it is not necessary to depend on the chunk boundary to split it. JSON *objects* (data surrounded by {}) can be splitted by a state machine e.g. counting the braces in a smart way, this is used in JSON-RPC protocol.\r\nActually many implementations are just returning JSON objects on different lines, and using readline() is enough. Usually we would consider chunked encoding as an implementation detail of HTTP protocol, but not an attribute of content; if the HTTP is transferred through a proxy, the proxy may break the chunked boundary - because RFC does not say NO."}}
{"actor":{"display_login":"hubo1016"}}