{"push_id":1415841695,"size":2,"distinct_size":0,"ref":"refs/heads/fix/optimize-payload","head":"1a3b1bd8f84b84dbb430a375c5ea5a9f21dc3e0b","before":"cc69f87b5558f010867b9bb62c1ccabff254f499","commits":[{"sha":"9aa7a615c20b6823c4eb60f57b54b3507cd731fe","author":{"name":"misakwa","email":"18a6d3fb8e3b256903706f54b2b368404a43c6cc@noreply.com"},"message":"Slot optimization\n\n- Replace class with a newer one with slot fields\n- Implement subclass and instance checks","distinct":false,"url":"https://api.github.com/repos/misakwa/thriftpy/commits/9aa7a615c20b6823c4eb60f57b54b3507cd731fe"},{"sha":"1a3b1bd8f84b84dbb430a375c5ea5a9f21dc3e0b","author":{"name":"misakwa","email":"18a6d3fb8e3b256903706f54b2b368404a43c6cc@noreply.com"},"message":"Rewrite class during creation with supported slots\n\nDuring the first creation of the loaded class with slots, a new class is\ninserted into the inheritance chain to ensure that the slot fields are defined.\n\nThis is done because of the need to create an empty struct during the\nparsing phase and fill it in later - slots require the fields to be known before hand.\n\nAll checks on the new replacement class will have it looking like the\noriginal except an equality comparison between the replaced class and\nits replacement.\n\n>>> import thriftpy\n>>> ab = thriftpy.load('addressbook.thrift', use_slots=True)\n>>> ab_inst = ab.AddressBook()\n>>> ab_inst.__class__ == ab.AddressBook # will return False\n>>> # all other checks should work as expected\n>>> isinstance(ab_inst, ab.AddressBook) # will return True\n>>> issubclass(ab_inst.__class__, ab.AddressBook) # will return True\n\nIn order to get pickling to work as expected, a new extension type is\nregistered with copyreg (copy_reg for py2x) to avoid pickling errors.","distinct":false,"url":"https://api.github.com/repos/misakwa/thriftpy/commits/1a3b1bd8f84b84dbb430a375c5ea5a9f21dc3e0b"}]}
{"actor":{"display_login":"misakwa"}}