)]}'
{"swift/common/utils.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"b5551ee307527e8907da9abb9903244f64b2ce23","unresolved":false,"context_lines":[{"line_number":4369,"context_line":"    @classmethod"},{"line_number":4370,"context_line":"    def create(cls, root_account, root_container, lower\u003d\u0027\u0027, upper\u003d\u0027\u0027,"},{"line_number":4371,"context_line":"               **kwargs):"},{"line_number":4372,"context_line":"        kwargs \u003d kwargs or {}"},{"line_number":4373,"context_line":"        timestamp \u003d kwargs.pop(\u0027created_at\u0027, Timestamp.now())"},{"line_number":4374,"context_line":"        shard_account \u003d \".sharded_%s\" % root_account"},{"line_number":4375,"context_line":"        shard_container \u003d cls._generate_name(root_container, timestamp, upper)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_23e97319","line":4372,"updated":"2018-02-06 23:11:15.000000000","message":"nit: not strictly necessary\n\n \u003e\u003e\u003e def f(**kwargs):\n ...     print(kwargs)\n ...\n \u003e\u003e\u003e f(foo\u003d\u0027bar\u0027)\n {\u0027foo\u0027: \u0027bar\u0027}\n \u003e\u003e\u003e f()\n {}","commit_id":"659f7a6914db3b905a10025366576a35db37d3e6"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"d84a2f401a06e788e0165103630042e6bed9a1cf","unresolved":false,"context_lines":[{"line_number":4369,"context_line":"    @classmethod"},{"line_number":4370,"context_line":"    def create(cls, root_account, root_container, lower\u003d\u0027\u0027, upper\u003d\u0027\u0027,"},{"line_number":4371,"context_line":"               **kwargs):"},{"line_number":4372,"context_line":"        kwargs \u003d kwargs or {}"},{"line_number":4373,"context_line":"        timestamp \u003d kwargs.pop(\u0027created_at\u0027, Timestamp.now())"},{"line_number":4374,"context_line":"        shard_account \u003d \".sharded_%s\" % root_account"},{"line_number":4375,"context_line":"        shard_container \u003d cls._generate_name(root_container, timestamp, upper)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_0fad6e87","line":4372,"in_reply_to":"3fa0c359_23e97319","updated":"2018-02-07 10:15:46.000000000","message":"doh, thanks!","commit_id":"659f7a6914db3b905a10025366576a35db37d3e6"}],"swift/container/backend.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"b5551ee307527e8907da9abb9903244f64b2ce23","unresolved":false,"context_lines":[{"line_number":1839,"context_line":"                # \u003d\u003d implies all ranges were previously found"},{"line_number":1840,"context_line":"                # \u003e implies an acceptor range has been set into which this"},{"line_number":1841,"context_line":"                # shard should cleave itself"},{"line_number":1842,"context_line":"                # TODO: this assumes that cont_upper does not change - safe?"},{"line_number":1843,"context_line":"                return [], True"},{"line_number":1844,"context_line":"        else:"},{"line_number":1845,"context_line":"            last_shard_upper \u003d own_shard_range.lower"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_836ac77d","line":1842,"range":{"start_line":1842,"start_character":42,"end_line":1842,"end_character":52},"updated":"2018-02-06 23:11:15.000000000","message":"This no longer exists. Is the TODO irrelevant, or should we update it to talk about own_shard_range.upper?","commit_id":"659f7a6914db3b905a10025366576a35db37d3e6"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"d84a2f401a06e788e0165103630042e6bed9a1cf","unresolved":false,"context_lines":[{"line_number":1839,"context_line":"                # \u003d\u003d implies all ranges were previously found"},{"line_number":1840,"context_line":"                # \u003e implies an acceptor range has been set into which this"},{"line_number":1841,"context_line":"                # shard should cleave itself"},{"line_number":1842,"context_line":"                # TODO: this assumes that cont_upper does not change - safe?"},{"line_number":1843,"context_line":"                return [], True"},{"line_number":1844,"context_line":"        else:"},{"line_number":1845,"context_line":"            last_shard_upper \u003d own_shard_range.lower"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_4f8936c8","line":1842,"range":{"start_line":1842,"start_character":42,"end_line":1842,"end_character":52},"in_reply_to":"3fa0c359_836ac77d","updated":"2018-02-07 10:15:46.000000000","message":"After some digging I found this TODO comment came in here [1] where I presume the concern was that the test was for equality. As it is the upper should never change, but we do now also test for \u003e\u003d, so if own shard range upper were to decrease then we would now consider there to be no more ranges to find, whereas at time comment was written we\u0027d look for more ranges.\n\nI will delete the TODO\n\n[1] https://review.openstack.org/#/c/505763/3/swift/container/backend.py@1758","commit_id":"659f7a6914db3b905a10025366576a35db37d3e6"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"b5551ee307527e8907da9abb9903244f64b2ce23","unresolved":false,"context_lines":[{"line_number":1864,"context_line":"            if next_shard_upper is None:"},{"line_number":1865,"context_line":"                # We reached the end of the container"},{"line_number":1866,"context_line":"                next_shard_upper \u003d own_shard_range.upper"},{"line_number":1867,"context_line":"                shard_size \u003d object_count - progress"},{"line_number":1868,"context_line":""},{"line_number":1869,"context_line":"            # NB shard ranges are created with a non-zero object count so that"},{"line_number":1870,"context_line":"            # the apparent container object count remains constant, and the"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_c3cc4f8b","line":1867,"updated":"2018-02-06 23:11:15.000000000","message":"Off topic: I wonder if this could ever go negative... and what sorts of effects that may produce...","commit_id":"659f7a6914db3b905a10025366576a35db37d3e6"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"d84a2f401a06e788e0165103630042e6bed9a1cf","unresolved":false,"context_lines":[{"line_number":1864,"context_line":"            if next_shard_upper is None:"},{"line_number":1865,"context_line":"                # We reached the end of the container"},{"line_number":1866,"context_line":"                next_shard_upper \u003d own_shard_range.upper"},{"line_number":1867,"context_line":"                shard_size \u003d object_count - progress"},{"line_number":1868,"context_line":""},{"line_number":1869,"context_line":"            # NB shard ranges are created with a non-zero object count so that"},{"line_number":1870,"context_line":"            # the apparent container object count remains constant, and the"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_4fb29696","line":1867,"in_reply_to":"3fa0c359_c3cc4f8b","updated":"2018-02-07 10:15:46.000000000","message":"added to trello...\n\nhttps://trello.com/c/hBB76Lu8","commit_id":"659f7a6914db3b905a10025366576a35db37d3e6"}]}
