)]}'
{"doc/source/conf.py":[{"author":{"_account_id":16051,"name":"Ronald Bradford","email":"ronald.bradford@gmail.com","username":"ronaldbradford"},"change_message_id":"5642607643118a0ce31a76e6dd13865492c320f6","unresolved":false,"context_lines":[{"line_number":40,"context_line":"# General information about the project."},{"line_number":41,"context_line":"project \u003d u\u0027oslo.versionedobjects\u0027"},{"line_number":42,"context_line":"copyright \u003d u\u00272014, OpenStack Foundation\u0027"},{"line_number":43,"context_line":"source_tree \u003d \u0027http://git.openstack.org/cgit/openstack/oslo.versionedobjects/tree\u0027"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"# If true, \u0027()\u0027 will be appended to :func: etc. cross-reference text."},{"line_number":46,"context_line":"add_function_parentheses \u003d True"}],"source_content_type":"text/x-python","patch_set":2,"id":"1af94dfe_f6115953","line":43,"updated":"2016-03-18 15:36:29.000000000","message":"if we use project variable, this would be abstracted for copying to other projects.","commit_id":"94c16c2d26a236347810e7fdec7ad351c539d7fb"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"8e8d2e7b071c0702b108e3bf785617ebf659d7d6","unresolved":false,"context_lines":[{"line_number":40,"context_line":"# General information about the project."},{"line_number":41,"context_line":"project \u003d u\u0027oslo.versionedobjects\u0027"},{"line_number":42,"context_line":"copyright \u003d u\u00272014, OpenStack Foundation\u0027"},{"line_number":43,"context_line":"source_tree \u003d \u0027http://git.openstack.org/cgit/openstack/oslo.versionedobjects/tree\u0027"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"# If true, \u0027()\u0027 will be appended to :func: etc. cross-reference text."},{"line_number":46,"context_line":"add_function_parentheses \u003d True"}],"source_content_type":"text/x-python","patch_set":2,"id":"1af94dfe_1676856f","line":43,"in_reply_to":"1af94dfe_f6115953","updated":"2016-03-18 15:40:24.000000000","message":"Will do","commit_id":"94c16c2d26a236347810e7fdec7ad351c539d7fb"},{"author":{"_account_id":16051,"name":"Ronald Bradford","email":"ronald.bradford@gmail.com","username":"ronaldbradford"},"change_message_id":"5642607643118a0ce31a76e6dd13865492c320f6","unresolved":false,"context_lines":[{"line_number":52,"context_line":"# Shortened external links."},{"line_number":53,"context_line":"extlinks \u003d {"},{"line_number":54,"context_line":"    \u0027example\u0027: (source_tree + \u0027/oslo_versionedobjects/examples/%s.py\u0027, \u0027\u0027),"},{"line_number":55,"context_line":"}"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"# The name of the Pygments (syntax highlighting) style to use."},{"line_number":58,"context_line":"pygments_style \u003d \u0027sphinx\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"1af94dfe_9b1bde80","line":55,"updated":"2016-03-18 15:36:29.000000000","message":"nice idea, I\u0027ll incorporate that in other examples.","commit_id":"94c16c2d26a236347810e7fdec7ad351c539d7fb"}],"doc/source/examples.rst":[{"author":{"_account_id":16051,"name":"Ronald Bradford","email":"ronald.bradford@gmail.com","username":"ronaldbradford"},"change_message_id":"01bc2beb0896b24ebfde28ef50566e508ec06be9","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Expected (or similar) output::"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    IOTLightbulb(manufactured_on\u003d2016-03-17T23:22:51Z,serial\u003d\u0027abc-123\u0027)"},{"line_number":20,"context_line":"    abc-123"},{"line_number":21,"context_line":"    {\u0027versioned_object.version\u0027: \u00271.0\u0027, \u0027versioned_object.changes\u0027: [\u0027serial\u0027, \u0027manufactured_on\u0027], \u0027versioned_object.name\u0027: \u0027IOTLightbulb\u0027, \u0027versioned_object.data\u0027: {\u0027serial\u0027: u\u0027abc-123\u0027, \u0027manufactured_on\u0027: \u00272016-03-17T23:22:51Z\u0027}, \u0027versioned_object.namespace\u0027: \u0027versionedobjects.examples\u0027}"},{"line_number":22,"context_line":"    IOTLightbulb(manufactured_on\u003d2016-03-17T23:22:51Z,serial\u003d\u0027abc-123\u0027)"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1af94dfe_fb9e5d61","line":19,"updated":"2016-03-18 16:43:42.000000000","message":"You missed updating the example output","commit_id":"3355d6eb4a0f742c8e1d706d6f47e78d92908778"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"3777638e8173f7d8877ac110205df9663458d228","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Expected (or similar) output::"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    The automatically built repr of this new object: IOTLightbulb(manufactured_on\u003d2016-03-18T09:49:59Z,serial\u003d\u0027abc-123\u0027)"},{"line_number":20,"context_line":"    One of the fields we declared in this object: abc-123"},{"line_number":21,"context_line":"    Primitive representation of this object: {\u0027versioned_object.version\u0027: \u00271.0\u0027, \u0027versioned_object.changes\u0027: [\u0027serial\u0027, \u0027manufactured_on\u0027], \u0027versioned_object.name\u0027: \u0027IOTLightbulb\u0027, \u0027versioned_object.data\u0027: {\u0027serial\u0027: u\u0027abc-123\u0027, \u0027manufactured_on\u0027: \u00272016-03-18T09:49:59Z\u0027}, \u0027versioned_object.namespace\u0027: \u0027versionedobjects.examples\u0027}"},{"line_number":22,"context_line":"    The automatically built repr of this new (reconstructed) object: IOTLightbulb(manufactured_on\u003d2016-03-18T09:49:59Z,serial\u003d\u0027abc-123\u0027)"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a1ff146_be3722e2","line":19,"updated":"2017-03-15 11:42:11.000000000","message":"I think you need to regenerate this page?","commit_id":"fa8a0cd524939c239d077b15ee9b9cefbf58894f"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"c6be6ef2ffbc168d7e9c2b25366db95750442e33","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Expected (or similar) output::"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    The automatically built repr of this new object: IOTLightbulb(manufactured_on\u003d2016-03-18T09:49:59Z,serial\u003d\u0027abc-123\u0027)"},{"line_number":20,"context_line":"    One of the fields we declared in this object: abc-123"},{"line_number":21,"context_line":"    Primitive representation of this object: {\u0027versioned_object.version\u0027: \u00271.0\u0027, \u0027versioned_object.changes\u0027: [\u0027serial\u0027, \u0027manufactured_on\u0027], \u0027versioned_object.name\u0027: \u0027IOTLightbulb\u0027, \u0027versioned_object.data\u0027: {\u0027serial\u0027: u\u0027abc-123\u0027, \u0027manufactured_on\u0027: \u00272016-03-18T09:49:59Z\u0027}, \u0027versioned_object.namespace\u0027: \u0027versionedobjects.examples\u0027}"},{"line_number":22,"context_line":"    The automatically built repr of this new (reconstructed) object: IOTLightbulb(manufactured_on\u003d2016-03-18T09:49:59Z,serial\u003d\u0027abc-123\u0027)"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a1ff146_011e0f0c","line":19,"in_reply_to":"3a1ff146_be3722e2","updated":"2017-03-15 15:28:02.000000000","message":"yeah, will update it","commit_id":"fa8a0cd524939c239d077b15ee9b9cefbf58894f"}],"oslo_versionedobjects/examples/iot_bulb.py":[{"author":{"_account_id":16051,"name":"Ronald Bradford","email":"ronald.bradford@gmail.com","username":"ronaldbradford"},"change_message_id":"5642607643118a0ce31a76e6dd13865492c320f6","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"# Now do some basic operations on a light bulb."},{"line_number":43,"context_line":"bulb \u003d IOTLightbulb(serial\u003d\u0027abc-123\u0027, manufactured_on\u003ddatetime.now())"},{"line_number":44,"context_line":"print(bulb)"},{"line_number":45,"context_line":"print(bulb.serial)"},{"line_number":46,"context_line":"bulb_prim \u003d bulb.obj_to_primitive()"},{"line_number":47,"context_line":"print(bulb_prim)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1af94dfe_5b81568e","line":44,"updated":"2016-03-18 15:36:29.000000000","message":"Can I suggest you prefix what you are printing with a comment, so the uninitiated user can look at the output (and not the code).\n\ne.g.\n\nCreated new Light Bulb:\nBulb serial number:\nBulb changes:","commit_id":"94c16c2d26a236347810e7fdec7ad351c539d7fb"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"e6052a4ebf4b237e80c361baa7ed8ce002d3792b","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"# Now do some basic operations on a light bulb."},{"line_number":43,"context_line":"bulb \u003d IOTLightbulb(serial\u003d\u0027abc-123\u0027, manufactured_on\u003ddatetime.now())"},{"line_number":44,"context_line":"print(bulb)"},{"line_number":45,"context_line":"print(bulb.serial)"},{"line_number":46,"context_line":"bulb_prim \u003d bulb.obj_to_primitive()"},{"line_number":47,"context_line":"print(bulb_prim)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1af94dfe_d6253d5c","line":44,"in_reply_to":"1af94dfe_5b81568e","updated":"2016-03-18 15:40:49.000000000","message":"Yup yup, will do that.","commit_id":"94c16c2d26a236347810e7fdec7ad351c539d7fb"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"f012580e35aea5a4ee9eeaf22044f58451aea605","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class IOTLightbulb(base.VersionedObject):"},{"line_number":27,"context_line":"    \"\"\"Simple light bulb class with some data about it.\"\"\""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    #: Namespace these examples will use."},{"line_number":30,"context_line":"    OBJ_PROJECT_NAMESPACE \u003d \u0027versionedobjects.examples\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"bab6814e_4a056978","line":27,"updated":"2016-05-19 18:39:23.000000000","message":"Probably good to put the common:\n\n VERSION \u003d 1.0  # Initial version\n\nthings in here.","commit_id":"89eba81025891f4cb6f1467730e0f423f0970783"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"5da5524e96b85a535072c8db61b4fbc67094371b","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class IOTLightbulb(base.VersionedObject):"},{"line_number":27,"context_line":"    \"\"\"Simple light bulb class with some data about it.\"\"\""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    #: Namespace these examples will use."},{"line_number":30,"context_line":"    OBJ_PROJECT_NAMESPACE \u003d \u0027versionedobjects.examples\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba2be162_12f55082","line":27,"in_reply_to":"bab6814e_4a056978","updated":"2017-03-02 09:18:13.000000000","message":"Done","commit_id":"89eba81025891f4cb6f1467730e0f423f0970783"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"f012580e35aea5a4ee9eeaf22044f58451aea605","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        \u0027manufactured_on\u0027: obj_fields.DateTimeField(),"},{"line_number":36,"context_line":"    }"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"# Ensure that we always register our object with the global object"},{"line_number":39,"context_line":"# registry, so that it can be deserialized from its primitive form."},{"line_number":40,"context_line":"base.VersionedObjectRegistry.register(IOTLightbulb)"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"bab6814e_2a08e590","line":38,"updated":"2016-05-19 18:39:23.000000000","message":"s/the global object registry/an object registry/","commit_id":"89eba81025891f4cb6f1467730e0f423f0970783"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"5da5524e96b85a535072c8db61b4fbc67094371b","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        \u0027manufactured_on\u0027: obj_fields.DateTimeField(),"},{"line_number":36,"context_line":"    }"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"# Ensure that we always register our object with the global object"},{"line_number":39,"context_line":"# registry, so that it can be deserialized from its primitive form."},{"line_number":40,"context_line":"base.VersionedObjectRegistry.register(IOTLightbulb)"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ba2be162_f227dc0f","line":38,"in_reply_to":"bab6814e_2a08e590","updated":"2017-03-02 09:18:13.000000000","message":"Done","commit_id":"89eba81025891f4cb6f1467730e0f423f0970783"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"4d74b2450fc6bcda9386137f4de102c6d4f26ef7","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"# Ensure that we always register our object with the global object"},{"line_number":39,"context_line":"# registry, so that it can be deserialized from its primitive form."},{"line_number":40,"context_line":"base.VersionedObjectRegistry.register(IOTLightbulb)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"# Now do some basic operations on a light bulb."},{"line_number":43,"context_line":"bulb \u003d IOTLightbulb(serial\u003d\u0027abc-123\u0027, manufactured_on\u003ddatetime.now())"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa0719c6_c4309fa1","line":40,"updated":"2016-03-21 01:56:08.000000000","message":"This should use the decorator syntax. This might work I guess, but decorating the class is how everyone uses it and we intend for it to be used. If we returned a modified class from the decorator, then this would stop working.","commit_id":"89eba81025891f4cb6f1467730e0f423f0970783"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"5da5524e96b85a535072c8db61b4fbc67094371b","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"# Ensure that we always register our object with the global object"},{"line_number":39,"context_line":"# registry, so that it can be deserialized from its primitive form."},{"line_number":40,"context_line":"base.VersionedObjectRegistry.register(IOTLightbulb)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"# Now do some basic operations on a light bulb."},{"line_number":43,"context_line":"bulb \u003d IOTLightbulb(serial\u003d\u0027abc-123\u0027, manufactured_on\u003ddatetime.now())"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba2be162_d2a3b84d","line":40,"in_reply_to":"fa0719c6_c4309fa1","updated":"2017-03-02 09:18:13.000000000","message":"Done","commit_id":"89eba81025891f4cb6f1467730e0f423f0970783"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"4d74b2450fc6bcda9386137f4de102c6d4f26ef7","unresolved":false,"context_lines":[{"line_number":49,"context_line":"# Now convert the primitive back to an object (isn\u0027t it easy!)"},{"line_number":50,"context_line":"bulb \u003d IOTLightbulb.obj_from_primitive(bulb_prim)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"# TODO(harlowja): should this be needed?"},{"line_number":53,"context_line":"bulb.obj_reset_changes()"},{"line_number":54,"context_line":"print(\"The automatically built repr of this new (reconstructed)\""},{"line_number":55,"context_line":"      \" object: %s\" % bulb)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa0719c6_8417c7ec","line":52,"updated":"2016-03-21 01:56:08.000000000","message":"Yes, otherwise this very common pattern wouldn\u0027t work:\n\n b \u003d IOTLightBulb(context\u003dcontext, foo\u003d123)\n b.save()","commit_id":"89eba81025891f4cb6f1467730e0f423f0970783"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"0f689397fb54d463370d0555c65543811c245a6d","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"# Now do some basic operations on a light bulb."},{"line_number":44,"context_line":"bulb \u003d IOTLightbulb(serial\u003d\u0027abc-123\u0027, manufactured_on\u003ddatetime.now())"},{"line_number":45,"context_line":"print(\"The automatically built repr of this new object: %s\" % bulb)"},{"line_number":46,"context_line":"print(\"One of the fields we declared in this object: %s\" % bulb.serial)"},{"line_number":47,"context_line":"bulb_prim \u003d bulb.obj_to_primitive()"},{"line_number":48,"context_line":"print(\"Primitive representation of this object: %s\" % bulb_prim)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a1ff146_d3c5c95b","line":45,"range":{"start_line":45,"start_character":56,"end_line":45,"end_character":58},"updated":"2017-03-15 02:27:11.000000000","message":"This will serialize the __str__() of the object, not the __repr__() of the object. %r would serialize the __repr__() of the object. Might be useful to say \"The __str__() output of this new object: %s\"","commit_id":"67a88e9b5a88f87ef5a8eeec37fa6230a8769cf0"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"82661a759f81660b456d619f14bda8999112994c","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"# Now do some basic operations on a light bulb."},{"line_number":44,"context_line":"bulb \u003d IOTLightbulb(serial\u003d\u0027abc-123\u0027, manufactured_on\u003ddatetime.now())"},{"line_number":45,"context_line":"print(\"The automatically built repr of this new object: %s\" % bulb)"},{"line_number":46,"context_line":"print(\"One of the fields we declared in this object: %s\" % bulb.serial)"},{"line_number":47,"context_line":"bulb_prim \u003d bulb.obj_to_primitive()"},{"line_number":48,"context_line":"print(\"Primitive representation of this object: %s\" % bulb_prim)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a1ff146_d18dc17c","line":45,"range":{"start_line":45,"start_character":56,"end_line":45,"end_character":58},"in_reply_to":"3a1ff146_d3c5c95b","updated":"2017-03-15 03:27:05.000000000","message":"Done","commit_id":"67a88e9b5a88f87ef5a8eeec37fa6230a8769cf0"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"0f689397fb54d463370d0555c65543811c245a6d","unresolved":false,"context_lines":[{"line_number":43,"context_line":"# Now do some basic operations on a light bulb."},{"line_number":44,"context_line":"bulb \u003d IOTLightbulb(serial\u003d\u0027abc-123\u0027, manufactured_on\u003ddatetime.now())"},{"line_number":45,"context_line":"print(\"The automatically built repr of this new object: %s\" % bulb)"},{"line_number":46,"context_line":"print(\"One of the fields we declared in this object: %s\" % bulb.serial)"},{"line_number":47,"context_line":"bulb_prim \u003d bulb.obj_to_primitive()"},{"line_number":48,"context_line":"print(\"Primitive representation of this object: %s\" % bulb_prim)"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3a1ff146_d39ce96b","line":46,"updated":"2017-03-15 02:27:11.000000000","message":"how about being specific?\n\n print(\"The \u0027serial\u0027 field of the object: %s\u0027 % bulb.serial)","commit_id":"67a88e9b5a88f87ef5a8eeec37fa6230a8769cf0"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"82661a759f81660b456d619f14bda8999112994c","unresolved":false,"context_lines":[{"line_number":43,"context_line":"# Now do some basic operations on a light bulb."},{"line_number":44,"context_line":"bulb \u003d IOTLightbulb(serial\u003d\u0027abc-123\u0027, manufactured_on\u003ddatetime.now())"},{"line_number":45,"context_line":"print(\"The automatically built repr of this new object: %s\" % bulb)"},{"line_number":46,"context_line":"print(\"One of the fields we declared in this object: %s\" % bulb.serial)"},{"line_number":47,"context_line":"bulb_prim \u003d bulb.obj_to_primitive()"},{"line_number":48,"context_line":"print(\"Primitive representation of this object: %s\" % bulb_prim)"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3a1ff146_f1e8fd18","line":46,"in_reply_to":"3a1ff146_d39ce96b","updated":"2017-03-15 03:27:05.000000000","message":"Done","commit_id":"67a88e9b5a88f87ef5a8eeec37fa6230a8769cf0"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"0f689397fb54d463370d0555c65543811c245a6d","unresolved":false,"context_lines":[{"line_number":51,"context_line":"bulb \u003d IOTLightbulb.obj_from_primitive(bulb_prim)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"bulb.obj_reset_changes()"},{"line_number":54,"context_line":"print(\"The automatically built repr of this new (reconstructed)\""},{"line_number":55,"context_line":"      \" object: %s\" % bulb)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"# Mutating a field and showing what changed."}],"source_content_type":"text/x-python","patch_set":5,"id":"3a1ff146_b3768d3c","line":54,"updated":"2017-03-15 02:27:11.000000000","message":"Same comment above about being specific and saying \"the __str__() output...\"","commit_id":"67a88e9b5a88f87ef5a8eeec37fa6230a8769cf0"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"82661a759f81660b456d619f14bda8999112994c","unresolved":false,"context_lines":[{"line_number":51,"context_line":"bulb \u003d IOTLightbulb.obj_from_primitive(bulb_prim)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"bulb.obj_reset_changes()"},{"line_number":54,"context_line":"print(\"The automatically built repr of this new (reconstructed)\""},{"line_number":55,"context_line":"      \" object: %s\" % bulb)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"# Mutating a field and showing what changed."}],"source_content_type":"text/x-python","patch_set":5,"id":"3a1ff146_31f3750c","line":54,"in_reply_to":"3a1ff146_b3768d3c","updated":"2017-03-15 03:27:05.000000000","message":"Done","commit_id":"67a88e9b5a88f87ef5a8eeec37fa6230a8769cf0"}]}
