)]}'
{"openstack/object_store/v1/obj.py":[{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"6652ba3b7a45d0fa704005ba7a5e0a41c90b7b00","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    # Object details"},{"line_number":39,"context_line":"    hash \u003d resource.headerProp(\"hash\")"},{"line_number":40,"context_line":"    bytes \u003d resource.headerProp(\"bytes\")"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    # Headers for HEAD and GET requests"},{"line_number":43,"context_line":"    #: Authentication token."}],"source_content_type":"text/x-python","patch_set":1,"id":"ba7be1f8_d388c524","line":40,"updated":"2015-02-21 17:12:44.000000000","message":"These two are body values.","commit_id":"a2103854ab6083a73116750d3185990866a74a8a"}],"openstack/resource.py":[{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"6652ba3b7a45d0fa704005ba7a5e0a41c90b7b00","unresolved":false,"context_lines":[{"line_number":152,"context_line":"                pass"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"HEADERS \u003d \u0027headers\u0027"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"class headerProp(prop):"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba7be1f8_93ad6d8b","line":155,"updated":"2015-02-21 17:12:44.000000000","message":"Maybe better as a class attribute inside the header class?","commit_id":"a2103854ab6083a73116750d3185990866a74a8a"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"da2987408568955be48f591e360957c4494b830c","unresolved":false,"context_lines":[{"line_number":152,"context_line":"                pass"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"HEADERS \u003d \u0027headers\u0027"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"class headerProp(prop):"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba7be1f8_76860e15","line":155,"in_reply_to":"ba7be1f8_93ad6d8b","updated":"2015-02-23 14:15:12.000000000","message":"I tried that out, but it got cumbersome because of external references to this value.","commit_id":"a2103854ab6083a73116750d3185990866a74a8a"},{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"6652ba3b7a45d0fa704005ba7a5e0a41c90b7b00","unresolved":false,"context_lines":[{"line_number":155,"context_line":"HEADERS \u003d \u0027headers\u0027"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"class headerProp(prop):"},{"line_number":159,"context_line":"    def _get_headers(self, instance):"},{"line_number":160,"context_line":"        if instance is None:"},{"line_number":161,"context_line":"            return None"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba7be1f8_53a3f59d","line":158,"updated":"2015-02-21 17:12:44.000000000","message":"What about just calling this `header`?","commit_id":"a2103854ab6083a73116750d3185990866a74a8a"},{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"8ef106d30f8f96c2f7776af850780b078ad0da46","unresolved":false,"context_lines":[{"line_number":201,"context_line":"        headers \u003d self._get_headers(instance)"},{"line_number":202,"context_line":"        instance._dirty.add(HEADERS)"},{"line_number":203,"context_line":"        raise Exception(str(instance._dirty))"},{"line_number":204,"context_line":"        super(header, self).__delete__(headers, instance)"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"@six.add_metaclass(abc.ABCMeta)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_8c58d233","line":204,"updated":"2015-02-23 15:55:16.000000000","message":"This super ends up being unreachable. Was that raise left in there from debugging or something?","commit_id":"1c4abcac98030fd98465cf995ab0201dd8e42a18"},{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"7d9f58778d8aa6e7df47a45ce3fff190deb52f37","unresolved":false,"context_lines":[{"line_number":201,"context_line":"        headers \u003d self._get_headers(instance)"},{"line_number":202,"context_line":"        instance._dirty.add(HEADERS)"},{"line_number":203,"context_line":"        raise Exception(str(instance._dirty))"},{"line_number":204,"context_line":"        super(header, self).__delete__(headers, instance)"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"@six.add_metaclass(abc.ABCMeta)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_5573b2b0","line":204,"in_reply_to":"ba7be1f8_725fec41","updated":"2015-02-23 20:08:15.000000000","message":"Should I change the CID review to only implement that dict and not actually use it anywhere? That way this change can be the application of it.","commit_id":"1c4abcac98030fd98465cf995ab0201dd8e42a18"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"268d207149551ee4422936545432d9429f61b2dd","unresolved":false,"context_lines":[{"line_number":201,"context_line":"        headers \u003d self._get_headers(instance)"},{"line_number":202,"context_line":"        instance._dirty.add(HEADERS)"},{"line_number":203,"context_line":"        raise Exception(str(instance._dirty))"},{"line_number":204,"context_line":"        super(header, self).__delete__(headers, instance)"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"@six.add_metaclass(abc.ABCMeta)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_725fec41","line":204,"in_reply_to":"ba7be1f8_8c58d233","updated":"2015-02-23 20:03:56.000000000","message":"I didn\u0027t sleep well last night.\n\nGood topic of conversation.  If we bring in the case insensitve dict here, maybe we can do something.  The problem is the _attrs[\u0027headers\u0027] points to a normal dict, so the delete doesn\u0027t get called when you do \"del container[\u0027headers\u0027][\u0027x-header-tag\u0027]\" because the resource doesn\u0027t override that.\n\nThe delete would be called on \"del container[\u0027headers\u0027]\" and in that case, the base class will probably do the job.","commit_id":"1c4abcac98030fd98465cf995ab0201dd8e42a18"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"6e4221a69a5764f9186c9b1db75df76a0bf8c06b","unresolved":false,"context_lines":[{"line_number":196,"context_line":"            headers \u003d instance._attrs[HEADERS] \u003d {}"},{"line_number":197,"context_line":"        headers[self.name] \u003d value"},{"line_number":198,"context_line":"        instance.set_headers(headers)"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"@six.add_metaclass(abc.ABCMeta)"},{"line_number":202,"context_line":"class Resource(collections.MutableMapping):"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba7be1f8_16a77d0d","line":199,"updated":"2015-02-23 22:39:07.000000000","message":"I deleted the __delete__ method for now and opened this ticket https://bugs.launchpad.net/python-openstacksdk/+bug/1424854\n\nI also deleted the test for now.","commit_id":"6d868b844438c01e6f8f347b637c3dc62b44bab3"}],"openstack/tests/test_resource.py":[{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"fcc6dce40c704672c209bfae6d469bb2f54a069c","unresolved":false,"context_lines":[{"line_number":180,"context_line":"    class Test(resource.Resource):"},{"line_number":181,"context_line":"        hey \u003d resource.header(\"vocals\")"},{"line_number":182,"context_line":"        ho \u003d resource.header(\"guitar\")"},{"line_number":183,"context_line":"        letsgo \u003d resource.header(\"bass\")"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    def test_get(self):"},{"line_number":186,"context_line":"        val \u003d \"joey\""}],"source_content_type":"text/x-python","patch_set":5,"id":"ba7be1f8_76d99982","line":183,"updated":"2015-02-23 22:41:57.000000000","message":"As much as I like my baseball references, this is a pretty good set of test data.","commit_id":"6d868b844438c01e6f8f347b637c3dc62b44bab3"}]}
