{"action":"created","issue":{"url":"https://api.github.com/repos/ethereum/pyrlp/issues/62","repository_url":"https://api.github.com/repos/ethereum/pyrlp","labels_url":"https://api.github.com/repos/ethereum/pyrlp/issues/62/labels{/name}","comments_url":"https://api.github.com/repos/ethereum/pyrlp/issues/62/comments","events_url":"https://api.github.com/repos/ethereum/pyrlp/issues/62/events","html_url":"https://github.com/ethereum/pyrlp/pull/62","id":313538875,"number":62,"title":"Rework Serializable class.","user":{"login":"pipermerriam","id":824194,"avatar_url":"https://avatars3.githubusercontent.com/u/824194?v=4","gravatar_id":"","url":"https://api.github.com/users/pipermerriam","html_url":"https://github.com/pipermerriam","followers_url":"https://api.github.com/users/pipermerriam/followers","following_url":"https://api.github.com/users/pipermerriam/following{/other_user}","gists_url":"https://api.github.com/users/pipermerriam/gists{/gist_id}","starred_url":"https://api.github.com/users/pipermerriam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pipermerriam/subscriptions","organizations_url":"https://api.github.com/users/pipermerriam/orgs","repos_url":"https://api.github.com/users/pipermerriam/repos","events_url":"https://api.github.com/users/pipermerriam/events{/privacy}","received_events_url":"https://api.github.com/users/pipermerriam/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2018-04-12T00:53:25Z","updated_at":"2018-04-16T20:11:48Z","closed_at":null,"author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/ethereum/pyrlp/pulls/62","html_url":"https://github.com/ethereum/pyrlp/pull/62","diff_url":"https://github.com/ethereum/pyrlp/pull/62.diff","patch_url":"https://github.com/ethereum/pyrlp/pull/62.patch"},"body":"### What was wrong\r\n\r\nThe `Serializable` class was ready for some cleanup.\r\n\r\n### How was it fixed\r\n\r\n- replaced usage of `__setattr_` and `__getattr__` with metaclass mechanics and `property` based setters and getters.\r\n- removed the `cls.exclude` API.\r\n- changed `is_mutable` to be property based.\r\n- removed mutation based `make_mutable` API in favor of a copy based API.\r\n- implemented `__iter__`\r\n- improved `__eq__` implementation to only return true on equality of *rich* values rather than serialized values.\r\n- added new `obj[field_name]` and `obj[0]` based field lookups.\r\n- removed `cls.fields` in favor of `cls._meta` which holds field names, sedes and some extra meta info.\r\n- reworked `__init__` argument handling to be a bit more explicit in how it handles `args` and `kwargs`."},"comment":{"url":"https://api.github.com/repos/ethereum/pyrlp/issues/comments/381733647","html_url":"https://github.com/ethereum/pyrlp/pull/62#issuecomment-381733647","issue_url":"https://api.github.com/repos/ethereum/pyrlp/issues/62","id":381733647,"user":{"login":"pipermerriam","id":824194,"avatar_url":"https://avatars3.githubusercontent.com/u/824194?v=4","gravatar_id":"","url":"https://api.github.com/users/pipermerriam","html_url":"https://github.com/pipermerriam","followers_url":"https://api.github.com/users/pipermerriam/followers","following_url":"https://api.github.com/users/pipermerriam/following{/other_user}","gists_url":"https://api.github.com/users/pipermerriam/gists{/gist_id}","starred_url":"https://api.github.com/users/pipermerriam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pipermerriam/subscriptions","organizations_url":"https://api.github.com/users/pipermerriam/orgs","repos_url":"https://api.github.com/users/pipermerriam/repos","events_url":"https://api.github.com/users/pipermerriam/events{/privacy}","received_events_url":"https://api.github.com/users/pipermerriam/received_events","type":"User","site_admin":false},"created_at":"2018-04-16T20:11:48Z","updated_at":"2018-04-16T20:11:48Z","author_association":"MEMBER","body":"@gsalgado looking at stats, it looks like we have 2x calls to `decode` than `encode` which means this could have a significant effect on the amount of time spend dealing width decoding rlp objects since this branch almost doubles the speed of decoding rlp `Serializable` instances."}}
{"actor":{"display_login":"pipermerriam"}}