{"action":"created","issue":{"url":"https://api.github.com/repos/python/mypy/issues/4397","repository_url":"https://api.github.com/repos/python/mypy","labels_url":"https://api.github.com/repos/python/mypy/issues/4397/labels{/name}","comments_url":"https://api.github.com/repos/python/mypy/issues/4397/comments","events_url":"https://api.github.com/repos/python/mypy/issues/4397/events","html_url":"https://github.com/python/mypy/pull/4397","id":283462137,"number":4397,"title":"Plugin to typecheck attrs-generated classes","user":{"login":"euresti","id":1081858,"avatar_url":"https://avatars0.githubusercontent.com/u/1081858?v=4","gravatar_id":"","url":"https://api.github.com/users/euresti","html_url":"https://github.com/euresti","followers_url":"https://api.github.com/users/euresti/followers","following_url":"https://api.github.com/users/euresti/following{/other_user}","gists_url":"https://api.github.com/users/euresti/gists{/gist_id}","starred_url":"https://api.github.com/users/euresti/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/euresti/subscriptions","organizations_url":"https://api.github.com/users/euresti/orgs","repos_url":"https://api.github.com/users/euresti/repos","events_url":"https://api.github.com/users/euresti/events{/privacy}","received_events_url":"https://api.github.com/users/euresti/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"ilevkivskyi","id":12005495,"avatar_url":"https://avatars1.githubusercontent.com/u/12005495?v=4","gravatar_id":"","url":"https://api.github.com/users/ilevkivskyi","html_url":"https://github.com/ilevkivskyi","followers_url":"https://api.github.com/users/ilevkivskyi/followers","following_url":"https://api.github.com/users/ilevkivskyi/following{/other_user}","gists_url":"https://api.github.com/users/ilevkivskyi/gists{/gist_id}","starred_url":"https://api.github.com/users/ilevkivskyi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ilevkivskyi/subscriptions","organizations_url":"https://api.github.com/users/ilevkivskyi/orgs","repos_url":"https://api.github.com/users/ilevkivskyi/repos","events_url":"https://api.github.com/users/ilevkivskyi/events{/privacy}","received_events_url":"https://api.github.com/users/ilevkivskyi/received_events","type":"User","site_admin":false},"assignees":[{"login":"ilevkivskyi","id":12005495,"avatar_url":"https://avatars1.githubusercontent.com/u/12005495?v=4","gravatar_id":"","url":"https://api.github.com/users/ilevkivskyi","html_url":"https://github.com/ilevkivskyi","followers_url":"https://api.github.com/users/ilevkivskyi/followers","following_url":"https://api.github.com/users/ilevkivskyi/following{/other_user}","gists_url":"https://api.github.com/users/ilevkivskyi/gists{/gist_id}","starred_url":"https://api.github.com/users/ilevkivskyi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ilevkivskyi/subscriptions","organizations_url":"https://api.github.com/users/ilevkivskyi/orgs","repos_url":"https://api.github.com/users/ilevkivskyi/repos","events_url":"https://api.github.com/users/ilevkivskyi/events{/privacy}","received_events_url":"https://api.github.com/users/ilevkivskyi/received_events","type":"User","site_admin":false}],"milestone":null,"comments":31,"created_at":"2017-12-20T06:31:41Z","updated_at":"2018-02-05T11:26:56Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/python/mypy/pulls/4397","html_url":"https://github.com/python/mypy/pull/4397","diff_url":"https://github.com/python/mypy/pull/4397.diff","patch_url":"https://github.com/python/mypy/pull/4397.patch"},"body":"See http://www.attrs.org/en/stable/how-does-it-work.html for information on how attrs works.\r\n\r\nThe plugin walks the class declaration (including superclasses) looking for \"attributes\" then depending on how the decorator was called, makes modification to the classes as follows:\r\n* `init=True` adds an `__init__` method.\r\n* `cmp=True` adds all of the necessary `__cmp__` methods.\r\n* `frozen=True` turns all attributes into properties to make the class read only.\r\n* Remove any `@x.default` and `@y.validator` decorators which are only part of class creation.\r\n\r\nFixes #2088\r\n\r\n  "},"comment":{"url":"https://api.github.com/repos/python/mypy/issues/comments/363057536","html_url":"https://github.com/python/mypy/pull/4397#issuecomment-363057536","issue_url":"https://api.github.com/repos/python/mypy/issues/4397","id":363057536,"user":{"login":"ambv","id":55281,"avatar_url":"https://avatars1.githubusercontent.com/u/55281?v=4","gravatar_id":"","url":"https://api.github.com/users/ambv","html_url":"https://github.com/ambv","followers_url":"https://api.github.com/users/ambv/followers","following_url":"https://api.github.com/users/ambv/following{/other_user}","gists_url":"https://api.github.com/users/ambv/gists{/gist_id}","starred_url":"https://api.github.com/users/ambv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ambv/subscriptions","organizations_url":"https://api.github.com/users/ambv/orgs","repos_url":"https://api.github.com/users/ambv/repos","events_url":"https://api.github.com/users/ambv/events{/privacy}","received_events_url":"https://api.github.com/users/ambv/received_events","type":"User","site_admin":false},"created_at":"2018-02-05T11:26:56Z","updated_at":"2018-02-05T11:26:56Z","author_association":"CONTRIBUTOR","body":"Cool! This looks much better. I won't block you on this basis alone but we might want to split `attr_class_maker_callback` further in a future refactor. [Paraphrasing Linus Torvalds](https://www.kernel.org/doc/html/v4.10/process/coding-style.html#indentation), \"if you need more than 3 levels of indentation, you’re screwed anyway, and should fix your program\". Another rule of thumb that applies here: if you need comments to name separate sections in your function, those should really be separate functions :-)\r\n\r\nAs I said though, I won't bother you with doing this right now. Just something to keep in mind for future work."}}
{"actor":{"display_login":"ambv"}}