{"action":"created","issue":{"url":"https://api.github.com/repos/KeepSafe/aiohttp/issues/1038","repository_url":"https://api.github.com/repos/KeepSafe/aiohttp","labels_url":"https://api.github.com/repos/KeepSafe/aiohttp/issues/1038/labels{/name}","comments_url":"https://api.github.com/repos/KeepSafe/aiohttp/issues/1038/comments","events_url":"https://api.github.com/repos/KeepSafe/aiohttp/issues/1038/events","html_url":"https://github.com/KeepSafe/aiohttp/issues/1038","id":168928062,"number":1038,"title":"Deprecate custom ClientRequest and ClientResponse classes","user":{"login":"asvetlov","id":356399,"avatar_url":"https://avatars.githubusercontent.com/u/356399?v=3","gravatar_id":"","url":"https://api.github.com/users/asvetlov","html_url":"https://github.com/asvetlov","followers_url":"https://api.github.com/users/asvetlov/followers","following_url":"https://api.github.com/users/asvetlov/following{/other_user}","gists_url":"https://api.github.com/users/asvetlov/gists{/gist_id}","starred_url":"https://api.github.com/users/asvetlov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/asvetlov/subscriptions","organizations_url":"https://api.github.com/users/asvetlov/orgs","repos_url":"https://api.github.com/users/asvetlov/repos","events_url":"https://api.github.com/users/asvetlov/events{/privacy}","received_events_url":"https://api.github.com/users/asvetlov/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2016-08-02T16:20:01Z","updated_at":"2016-08-02T22:12:16Z","closed_at":null,"body":"I believe everything may be solved by *embeddig* `ClientSession` instead of adding custom classes.\r\nKeeping current approach exposes too much of internal implementation details to user-level.\r\nThese details (`ClientResponse` lifecycle and especially `ClientRequest` existanse) are not documented right now and I don't want to make them public.\r\nMoreover exposing too much prevents deep optimizations because these optimizations breaks API.\r\n\r\nCustomization support will be removed in an year and half.\r\n\r\nObjections?\r\nWhat needs are not covered by current API without client/response customization?"},"comment":{"url":"https://api.github.com/repos/KeepSafe/aiohttp/issues/comments/237062041","html_url":"https://github.com/KeepSafe/aiohttp/issues/1038#issuecomment-237062041","issue_url":"https://api.github.com/repos/KeepSafe/aiohttp/issues/1038","id":237062041,"user":{"login":"kxepal","id":785983,"avatar_url":"https://avatars.githubusercontent.com/u/785983?v=3","gravatar_id":"","url":"https://api.github.com/users/kxepal","html_url":"https://github.com/kxepal","followers_url":"https://api.github.com/users/kxepal/followers","following_url":"https://api.github.com/users/kxepal/following{/other_user}","gists_url":"https://api.github.com/users/kxepal/gists{/gist_id}","starred_url":"https://api.github.com/users/kxepal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kxepal/subscriptions","organizations_url":"https://api.github.com/users/kxepal/orgs","repos_url":"https://api.github.com/users/kxepal/repos","events_url":"https://api.github.com/users/kxepal/events{/privacy}","received_events_url":"https://api.github.com/users/kxepal/received_events","type":"User","site_admin":false},"created_at":"2016-08-02T22:12:16Z","updated_at":"2016-08-02T22:12:16Z","body":"@asvetlov \r\nInitially, there was a need in them to use custom flow control, but I have a plan to use ijson parser instead of relaying on chunked protocol, especially since it unstable and will be broken in nearest future.\r\n\r\nFor today, I think I can throw away custom Response class and few more else bits, but not Request one since there I have to define some defaults and the way to correctly serialize body and query parameters and I hardly can imagine any else good place for that logic. \r\n\r\nBut actually, I don't see any problem to have an option to allow Request/Response classes customization and keep that feature private. Most users don't need in that, but those who does here is your \"dragons ahead\" cross line. For instance, there were already breaking changes in ClientRequest class, but it's fine since that is my subclass which was broken because it didn't kept the interface in sync with the parent class.\r\n\r\nSo I'm fine with removal them from public API land while there would be a way to customize them without much pain. \r\n"}}
{"actor":{"display_login":"kxepal"}}