)]}'
{"swift/common/swob.py":[{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"5e1ebdbeca01a34f6b07ffcde07d335d9249f828","unresolved":false,"context_lines":[{"line_number":618,"context_line":"            if start1 \u003e start2:"},{"line_number":619,"context_line":"                ascending \u003d False"},{"line_number":620,"context_line":"                break"},{"line_number":621,"context_line":"        if not ascending and len(all_ranges) \u003e\u003d 8:"},{"line_number":622,"context_line":"            return []"},{"line_number":623,"context_line":""},{"line_number":624,"context_line":"        return all_ranges"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_0785a1ac","line":621,"updated":"2014-09-02 01:15:11.000000000","message":"To make it easy to \"update\" in future this might be a good candidate for a global variable in contraints.py.\n\n  MAX_UNORDERED_RANGES \u003d 8","commit_id":"1718a1bd314b57db7cb4575d12ee9d26aa2b1c44"},{"author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"change_message_id":"b330bcfde2620f273f6ec967b4379f11308a5468","unresolved":false,"context_lines":[{"line_number":618,"context_line":"            if start1 \u003e start2:"},{"line_number":619,"context_line":"                ascending \u003d False"},{"line_number":620,"context_line":"                break"},{"line_number":621,"context_line":"        if not ascending and len(all_ranges) \u003e\u003d 8:"},{"line_number":622,"context_line":"            return []"},{"line_number":623,"context_line":""},{"line_number":624,"context_line":"        return all_ranges"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_3d145143","line":621,"in_reply_to":"fa98f980_0785a1ac","updated":"2014-09-02 17:57:26.000000000","message":"Yeah, probably not a bad idea. I might not chuck it all the way up in constraints because I don\u0027t expect it to be configurable, but certainly a constant is good.","commit_id":"1718a1bd314b57db7cb4575d12ee9d26aa2b1c44"}],"test/unit/common/test_swob.py":[{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"5e1ebdbeca01a34f6b07ffcde07d335d9249f828","unresolved":false,"context_lines":[{"line_number":234,"context_line":"        range \u003d swift.common.swob.Range(\u0027bytes\u003d10-19,30-39,-9\u0027)"},{"line_number":235,"context_line":"        self.assertEquals(range.ranges_for_length(100),"},{"line_number":236,"context_line":"                          [(10, 20), (30, 40), (91, 100)])"},{"line_number":237,"context_line":"        self.assertEquals(range.ranges_for_length(40), [])"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"    def test_ranges_for_length_nonascending(self):"},{"line_number":240,"context_line":"        few_ranges \u003d (\"bytes\u003d100-109,200-209,300-309,500-509,\""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_8a78b890","line":237,"updated":"2014-09-02 01:15:11.000000000","message":"In the case of 40, shouldn\u0027t this be ok, as it is only 2 ranges overlapping? (2 of the 3) or is this one of the edge cases, in which case we may need to make more clear.. unless I missed something (which is possible).","commit_id":"1718a1bd314b57db7cb4575d12ee9d26aa2b1c44"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"0ff55986591987fd0211bf83690102f2727fc11f","unresolved":false,"context_lines":[{"line_number":234,"context_line":"        range \u003d swift.common.swob.Range(\u0027bytes\u003d10-19,30-39,-9\u0027)"},{"line_number":235,"context_line":"        self.assertEquals(range.ranges_for_length(100),"},{"line_number":236,"context_line":"                          [(10, 20), (30, 40), (91, 100)])"},{"line_number":237,"context_line":"        self.assertEquals(range.ranges_for_length(40), [])"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"    def test_ranges_for_length_nonascending(self):"},{"line_number":240,"context_line":"        few_ranges \u003d (\"bytes\u003d100-109,200-209,300-309,500-509,\""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_22d09e1e","line":237,"in_reply_to":"fa98f980_43abf2d5","updated":"2014-09-02 23:31:10.000000000","message":"Fair enough, I\u0027m actually basing it off your commit message:\n\n\"servers may reject ranged GET requests with more than two overlapping ranges\" \n\nIn the case of 40 above there is only 1 overlapping range.. I\u0027ll go read the RFC and see what it says. If it is (a) then the commit message should be updated :)\n\nOK.. just read the section 6.1, which is where you got the quote for the commit message:\n\n\"such as requests for more than two overlapping ranges\"\n\nI do read this as any request that has more then 2 overlapping changes, so it doesn\u0027t matter how many ranges it has, it should fail if there are 3 or more range requests that overlap.. however, the RFC is using such as, which isn\u0027t specific RFC language, so I read it as a suggestion, so we can use whatever we feel is best for swift (like 8 \u003d\u003d many). \nSo if we decide (a) \u003e2 ranges and 1 overlap, (b) \u003e2 ranges with 2 overlaps or (c) \u003e2 overlaps (so \u003e2 ranges is implicit). then that\u0027s fine with me, so long as we  have a quorum from other reviewers then. :)","commit_id":"1718a1bd314b57db7cb4575d12ee9d26aa2b1c44"},{"author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"change_message_id":"b330bcfde2620f273f6ec967b4379f11308a5468","unresolved":false,"context_lines":[{"line_number":234,"context_line":"        range \u003d swift.common.swob.Range(\u0027bytes\u003d10-19,30-39,-9\u0027)"},{"line_number":235,"context_line":"        self.assertEquals(range.ranges_for_length(100),"},{"line_number":236,"context_line":"                          [(10, 20), (30, 40), (91, 100)])"},{"line_number":237,"context_line":"        self.assertEquals(range.ranges_for_length(40), [])"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"    def test_ranges_for_length_nonascending(self):"},{"line_number":240,"context_line":"        few_ranges \u003d (\"bytes\u003d100-109,200-209,300-309,500-509,\""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_43abf2d5","line":237,"in_reply_to":"fa98f980_8a78b890","updated":"2014-09-02 17:57:26.000000000","message":"I guess the RFC can be read in two ways, either (a) more than two ranges, at least one pair of which overlap, or (b) more than two ranges where at least two distinct pairs of ranges overlap.\n\nI read it the first way, and I think you read it the second. I\u0027m not sure which is correct.","commit_id":"1718a1bd314b57db7cb4575d12ee9d26aa2b1c44"}]}
