)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"bd62b26b471cba608ccd7bbe58579a6c99917067","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"41527b37_55fa8865","updated":"2023-09-28 14:35:23.000000000","message":"I\u0027m going to steal this and change it some","commit_id":"2b14d606c7537f7a49d20c11caabf7b0a0afff3e"}],"swift/common/middleware/slo.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"bd62b26b471cba608ccd7bbe58579a6c99917067","unresolved":true,"context_lines":[{"line_number":560,"context_line":"                except ValueError:"},{"line_number":561,"context_line":"                    continue"},{"line_number":562,"context_line":"            elif header \u003d\u003d \u0027x-backend-timestamp\u0027:"},{"line_number":563,"context_line":"                timestamp \u003d value"},{"line_number":564,"context_line":"        # a \"legacy manifest\" didn\u0027t get etag and size sysmeta"},{"line_number":565,"context_line":"        is_legacy \u003d not all((etag, size))"},{"line_number":566,"context_line":"        return cls(is_slo, is_legacy, etag, size, timestamp)"}],"source_content_type":"text/x-python","patch_set":1,"id":"a0dc8cb7_d90cdc26","side":"PARENT","line":563,"updated":"2023-09-28 14:35:23.000000000","message":"maybe avoid the __new__ and just cast this to a timestamp\n\nit was weird the initial/zero value was a timestamp instance","commit_id":"0d9245d8c1c30689e48e275c2cf133155410e80b"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"fed8eeee6491504fc9059ec135f7debec6015618","unresolved":true,"context_lines":[{"line_number":560,"context_line":"                except ValueError:"},{"line_number":561,"context_line":"                    continue"},{"line_number":562,"context_line":"            elif header \u003d\u003d \u0027x-backend-timestamp\u0027:"},{"line_number":563,"context_line":"                timestamp \u003d value"},{"line_number":564,"context_line":"        # a \"legacy manifest\" didn\u0027t get etag and size sysmeta"},{"line_number":565,"context_line":"        is_legacy \u003d not all((etag, size))"},{"line_number":566,"context_line":"        return cls(is_slo, is_legacy, etag, size, timestamp)"}],"source_content_type":"text/x-python","patch_set":1,"id":"f9cef3ce_8ac73f99","side":"PARENT","line":563,"in_reply_to":"a0dc8cb7_d90cdc26","updated":"2023-09-28 14:50:34.000000000","message":"+1 oh, of course, much better than __new__","commit_id":"0d9245d8c1c30689e48e275c2cf133155410e80b"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"bd62b26b471cba608ccd7bbe58579a6c99917067","unresolved":true,"context_lines":[{"line_number":579,"context_line":"        ``timestamp`` and ``is_legacy \u003d True`` properties of this instance."},{"line_number":580,"context_line":""},{"line_number":581,"context_line":"        If ``is_legacy`` is ``False`` for this instance then this instance is"},{"line_number":582,"context_line":"        returned unmodified."},{"line_number":583,"context_line":""},{"line_number":584,"context_line":"        :returns: an instance of ``SloAttrs``."},{"line_number":585,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"42585830_02eea30a","line":582,"updated":"2023-09-28 14:35:23.000000000","message":"i think this speaks more to the \"what\" (duplicates the code) rather than the \"why\" - which maybe was a bit \"vauge\" with \"just\"\n\n\u003e Used for legacy manifests, calculate slo_attrs we wouldn\u0027t have gotten from sysmeta.\n\nperhaps\n\n\u003e Only useful for legacy manifests to update the size/etag attributes that we couldn\u0027t get from sysmeta.\n\nThe fact that `slo_attrs is slo_attrs.update(segments)` for is_legacy and `slo_attrs is not slo_attrs.update(segments)` is *SO* not important.  The only thing that matters is that callers must write `slo_attrs \u003d slo_attrs.update(segments)` and if you *just* `slo_attrs.update(segments)` your slo_attrs variable is unchanged is the only thing that matters - the returns isn\u0027t just \"an\" instance - it\u0027s THE \"new\" instance you want your code to use.","commit_id":"2b14d606c7537f7a49d20c11caabf7b0a0afff3e"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"fed8eeee6491504fc9059ec135f7debec6015618","unresolved":true,"context_lines":[{"line_number":579,"context_line":"        ``timestamp`` and ``is_legacy \u003d True`` properties of this instance."},{"line_number":580,"context_line":""},{"line_number":581,"context_line":"        If ``is_legacy`` is ``False`` for this instance then this instance is"},{"line_number":582,"context_line":"        returned unmodified."},{"line_number":583,"context_line":""},{"line_number":584,"context_line":"        :returns: an instance of ``SloAttrs``."},{"line_number":585,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"e8a604da_5340210e","line":582,"in_reply_to":"42585830_02eea30a","updated":"2023-09-28 14:50:34.000000000","message":"think I commented elsewhere, but \"update\" is the wrong verb for me precisely because the return value really does matter - the method is not updating the instance!","commit_id":"2b14d606c7537f7a49d20c11caabf7b0a0afff3e"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"bd62b26b471cba608ccd7bbe58579a6c99917067","unresolved":true,"context_lines":[{"line_number":839,"context_line":"        resp_iter \u003d self._app_call(get_req.environ)"},{"line_number":840,"context_line":"        new_slo_attrs \u003d SloAttrs.from_headers(self._response_headers)"},{"line_number":841,"context_line":"        if not new_slo_attrs.is_slo:"},{"line_number":842,"context_line":"            if new_slo_attrs.timestamp \u003e\u003d orig_slo_attrs.timestamp:"},{"line_number":843,"context_line":"                # We\u0027ve got a newer response available, so serve that."},{"line_number":844,"context_line":"                # Note that if there\u0027s data, it\u0027s going to be a 200 now,"},{"line_number":845,"context_line":"                # not a 206, and we\u0027re not going to drop bytes in the"}],"source_content_type":"text/x-python","patch_set":1,"id":"83eb9dff_47b5a911","line":842,"updated":"2023-09-28 14:35:23.000000000","message":"this is nice!","commit_id":"2b14d606c7537f7a49d20c11caabf7b0a0afff3e"}]}
