)]}'
{"swiftclient/client.py":[{"author":{"_account_id":9625,"name":"Thiago da Silva","email":"thiagodasilva@gmail.com","username":"thiago"},"change_message_id":"0f2c06d4f921562e6a5ddffc13b435bb9f466982","unresolved":false,"context_lines":[{"line_number":1788,"context_line":"        # listing with each retry. Need to make a better version that just"},{"line_number":1789,"context_line":"        # retries where it left off."},{"line_number":1790,"context_line":"        return self._retry(None, get_account, marker\u003dmarker, limit\u003dlimit,"},{"line_number":1791,"context_line":"                           prefix\u003dprefix, delimiter\u003dNone,"},{"line_number":1792,"context_line":"                           end_marker\u003dend_marker, full_listing\u003dfull_listing,"},{"line_number":1793,"context_line":"                           headers\u003dheaders)"},{"line_number":1794,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_1dd9c97f","line":1791,"range":{"start_line":1791,"start_character":42,"end_line":1791,"end_character":56},"updated":"2018-11-24 12:40:40.000000000","message":"should it be delimeter\u003ddelimeter?","commit_id":"cdf1a645876b04b2f5b9ff583936d015ed44d5fe"},{"author":{"_account_id":17363,"name":"Timur Alperovich","email":"timur@timuralp.com","username":"timuralp"},"change_message_id":"a810d97bb05069e5c11d1187171182b6ae00c1a0","unresolved":false,"context_lines":[{"line_number":1788,"context_line":"        # listing with each retry. Need to make a better version that just"},{"line_number":1789,"context_line":"        # retries where it left off."},{"line_number":1790,"context_line":"        return self._retry(None, get_account, marker\u003dmarker, limit\u003dlimit,"},{"line_number":1791,"context_line":"                           prefix\u003dprefix, delimiter\u003dNone,"},{"line_number":1792,"context_line":"                           end_marker\u003dend_marker, full_listing\u003dfull_listing,"},{"line_number":1793,"context_line":"                           headers\u003dheaders)"},{"line_number":1794,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_01d95f7f","line":1791,"range":{"start_line":1791,"start_character":42,"end_line":1791,"end_character":56},"in_reply_to":"3f79a3b5_1dd9c97f","updated":"2018-11-26 06:25:10.000000000","message":"Done","commit_id":"cdf1a645876b04b2f5b9ff583936d015ed44d5fe"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"ee6f3a0fe77add48e21ca9064c36f0d55b32e295","unresolved":false,"context_lines":[{"line_number":756,"context_line":""},{"line_number":757,"context_line":""},{"line_number":758,"context_line":"def get_account(url, token, marker\u003dNone, limit\u003dNone, prefix\u003dNone,"},{"line_number":759,"context_line":"                delimiter\u003dNone, end_marker\u003dNone, http_conn\u003dNone,"},{"line_number":760,"context_line":"                full_listing\u003dFalse, service_token\u003dNone, headers\u003dNone):"},{"line_number":761,"context_line":"    \"\"\""},{"line_number":762,"context_line":"    Get a listing of containers for the account."}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_fbe083cc","line":759,"updated":"2018-11-26 17:52:43.000000000","message":"How much do we need to worry about people using positional args? Should we add it at the end to avoid a compat break?","commit_id":"b376c567b7aba4b97d904da8763c3408a93058db"},{"author":{"_account_id":17363,"name":"Timur Alperovich","email":"timur@timuralp.com","username":"timuralp"},"change_message_id":"f3aba32c8731db3a1ffaa2fb60f5c8baf7e1865d","unresolved":false,"context_lines":[{"line_number":756,"context_line":""},{"line_number":757,"context_line":""},{"line_number":758,"context_line":"def get_account(url, token, marker\u003dNone, limit\u003dNone, prefix\u003dNone,"},{"line_number":759,"context_line":"                delimiter\u003dNone, end_marker\u003dNone, http_conn\u003dNone,"},{"line_number":760,"context_line":"                full_listing\u003dFalse, service_token\u003dNone, headers\u003dNone):"},{"line_number":761,"context_line":"    \"\"\""},{"line_number":762,"context_line":"    Get a listing of containers for the account."}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_9fab5b6e","line":759,"in_reply_to":"3f79a3b5_fbe083cc","updated":"2018-11-27 22:01:41.000000000","message":"Done","commit_id":"b376c567b7aba4b97d904da8763c3408a93058db"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"ee6f3a0fe77add48e21ca9064c36f0d55b32e295","unresolved":false,"context_lines":[{"line_number":863,"context_line":""},{"line_number":864,"context_line":""},{"line_number":865,"context_line":"def post_account(url, token, headers, http_conn\u003dNone, response_dict\u003dNone,"},{"line_number":866,"context_line":"                 service_token\u003dNone, query_string\u003dNone, data\u003dNone):"},{"line_number":867,"context_line":"    \"\"\""},{"line_number":868,"context_line":"    Update an account\u0027s metadata."},{"line_number":869,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_bbef6bb0","line":866,"range":{"start_line":866,"start_character":37,"end_line":866,"end_character":49},"updated":"2018-11-26 17:52:43.000000000","message":"I wonder if we should bite the bullet and just allow arbitrary query strings like we do here... and append marker, limit, etc. if specified...","commit_id":"b376c567b7aba4b97d904da8763c3408a93058db"},{"author":{"_account_id":17363,"name":"Timur Alperovich","email":"timur@timuralp.com","username":"timuralp"},"change_message_id":"f3aba32c8731db3a1ffaa2fb60f5c8baf7e1865d","unresolved":false,"context_lines":[{"line_number":863,"context_line":""},{"line_number":864,"context_line":""},{"line_number":865,"context_line":"def post_account(url, token, headers, http_conn\u003dNone, response_dict\u003dNone,"},{"line_number":866,"context_line":"                 service_token\u003dNone, query_string\u003dNone, data\u003dNone):"},{"line_number":867,"context_line":"    \"\"\""},{"line_number":868,"context_line":"    Update an account\u0027s metadata."},{"line_number":869,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_df031374","line":866,"range":{"start_line":866,"start_character":37,"end_line":866,"end_character":49},"in_reply_to":"3f79a3b5_bbef6bb0","updated":"2018-11-27 22:01:41.000000000","message":"Maybe. I wanted to make the smallest change to expose the delimiter. In a follow on patch, we could merge the container and object listings, as most of the code is duplicated.","commit_id":"b376c567b7aba4b97d904da8763c3408a93058db"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"42bd8abe84a620cd60051249567142d49da0c691","unresolved":false,"context_lines":[{"line_number":766,"context_line":"    :param marker: marker query"},{"line_number":767,"context_line":"    :param limit: limit query"},{"line_number":768,"context_line":"    :param prefix: prefix query"},{"line_number":769,"context_line":"    :param delimiter: delimiter query"},{"line_number":770,"context_line":"    :param end_marker: end_marker query"},{"line_number":771,"context_line":"    :param http_conn: a tuple of (parsed url, HTTPConnection object),"},{"line_number":772,"context_line":"                      (If None, it will create the conn object)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_7aadff81","line":769,"updated":"2018-11-29 20:20:03.000000000","message":"nit: this oughta get kicked down now, to match the order of arguments.","commit_id":"3bc4e7396b943c7c55d2044ca233f2ebd5b7dcc6"},{"author":{"_account_id":17363,"name":"Timur Alperovich","email":"timur@timuralp.com","username":"timuralp"},"change_message_id":"4356fdfdc71749628ceb369e637b6dd20e2023b0","unresolved":false,"context_lines":[{"line_number":766,"context_line":"    :param marker: marker query"},{"line_number":767,"context_line":"    :param limit: limit query"},{"line_number":768,"context_line":"    :param prefix: prefix query"},{"line_number":769,"context_line":"    :param delimiter: delimiter query"},{"line_number":770,"context_line":"    :param end_marker: end_marker query"},{"line_number":771,"context_line":"    :param http_conn: a tuple of (parsed url, HTTPConnection object),"},{"line_number":772,"context_line":"                      (If None, it will create the conn object)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_5a52836c","line":769,"in_reply_to":"3f79a3b5_7aadff81","updated":"2018-11-29 20:22:37.000000000","message":"Done","commit_id":"3bc4e7396b943c7c55d2044ca233f2ebd5b7dcc6"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"42bd8abe84a620cd60051249567142d49da0c691","unresolved":false,"context_lines":[{"line_number":1781,"context_line":"        \"\"\"Wrapper for :func:`head_account`\"\"\""},{"line_number":1782,"context_line":"        return self._retry(None, head_account, headers\u003dheaders)"},{"line_number":1783,"context_line":""},{"line_number":1784,"context_line":"    def get_account(self, marker\u003dNone, limit\u003dNone, prefix\u003dNone, delimiter\u003dNone,"},{"line_number":1785,"context_line":"                    end_marker\u003dNone, full_listing\u003dFalse, headers\u003dNone):"},{"line_number":1786,"context_line":"        \"\"\"Wrapper for :func:`get_account`\"\"\""},{"line_number":1787,"context_line":"        # TODO(unknown): With full_listing\u003dTrue this will restart the entire"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_7ae2dfd5","line":1784,"updated":"2018-11-29 20:20:03.000000000","message":":-/ similar positional-arg backwards-compat concern...\n\nI kinda wish we could do py3\u0027s\n\n def get_account(self, *, marker\u003dNone, ...):\n\nand require that these all be passed as kwargs...","commit_id":"3bc4e7396b943c7c55d2044ca233f2ebd5b7dcc6"},{"author":{"_account_id":17363,"name":"Timur Alperovich","email":"timur@timuralp.com","username":"timuralp"},"change_message_id":"4356fdfdc71749628ceb369e637b6dd20e2023b0","unresolved":false,"context_lines":[{"line_number":1781,"context_line":"        \"\"\"Wrapper for :func:`head_account`\"\"\""},{"line_number":1782,"context_line":"        return self._retry(None, head_account, headers\u003dheaders)"},{"line_number":1783,"context_line":""},{"line_number":1784,"context_line":"    def get_account(self, marker\u003dNone, limit\u003dNone, prefix\u003dNone, delimiter\u003dNone,"},{"line_number":1785,"context_line":"                    end_marker\u003dNone, full_listing\u003dFalse, headers\u003dNone):"},{"line_number":1786,"context_line":"        \"\"\"Wrapper for :func:`get_account`\"\"\""},{"line_number":1787,"context_line":"        # TODO(unknown): With full_listing\u003dTrue this will restart the entire"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_7a573f5b","line":1784,"in_reply_to":"3f79a3b5_7ae2dfd5","updated":"2018-11-29 20:22:37.000000000","message":"Done and +100. This will keep causing grief for us.","commit_id":"3bc4e7396b943c7c55d2044ca233f2ebd5b7dcc6"}],"tests/functional/test_swiftclient.py":[{"author":{"_account_id":9625,"name":"Thiago da Silva","email":"thiagodasilva@gmail.com","username":"thiago"},"change_message_id":"0f2c06d4f921562e6a5ddffc13b435bb9f466982","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        # Test prefix"},{"line_number":158,"context_line":"        headers, containers \u003d self.conn.get_account(prefix\u003d\u0027dne\u0027)"},{"line_number":159,"context_line":"        self.assertEmpty(containers)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        # Test delimiter"},{"line_number":162,"context_line":"        headers, containers \u003d self.conn.get_account(delimiter\u003d\u0027_\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_9dc6399b","line":159,"range":{"start_line":159,"start_character":8,"end_line":159,"end_character":35},"updated":"2018-11-24 12:40:40.000000000","message":"should use something similar to line 146 above","commit_id":"cdf1a645876b04b2f5b9ff583936d015ed44d5fe"},{"author":{"_account_id":17363,"name":"Timur Alperovich","email":"timur@timuralp.com","username":"timuralp"},"change_message_id":"a810d97bb05069e5c11d1187171182b6ae00c1a0","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        # Test prefix"},{"line_number":158,"context_line":"        headers, containers \u003d self.conn.get_account(prefix\u003d\u0027dne\u0027)"},{"line_number":159,"context_line":"        self.assertEmpty(containers)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        # Test delimiter"},{"line_number":162,"context_line":"        headers, containers \u003d self.conn.get_account(delimiter\u003d\u0027_\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_e1db0378","line":159,"range":{"start_line":159,"start_character":8,"end_line":159,"end_character":35},"in_reply_to":"3f79a3b5_9dc6399b","updated":"2018-11-26 06:25:10.000000000","message":"Done","commit_id":"cdf1a645876b04b2f5b9ff583936d015ed44d5fe"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"ee6f3a0fe77add48e21ca9064c36f0d55b32e295","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        self.assertEqual(self.containername_2, containers[0].get(\u0027name\u0027))"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        # Test prefix"},{"line_number":158,"context_line":"        headers, containers \u003d self.conn.get_account(prefix\u003d\u0027dne\u0027)"},{"line_number":159,"context_line":"        self.assertEqual(0, len(containers))"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        # Test delimiter"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_dbe02796","line":158,"updated":"2018-11-26 17:52:43.000000000","message":"Thanks for adding a func test for prefix! I feel like we should maybe also have a test for\n\n prefix\u003dfunctional-tests-container-\n\nor something, too.","commit_id":"b376c567b7aba4b97d904da8763c3408a93058db"},{"author":{"_account_id":17363,"name":"Timur Alperovich","email":"timur@timuralp.com","username":"timuralp"},"change_message_id":"f3aba32c8731db3a1ffaa2fb60f5c8baf7e1865d","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        self.assertEqual(self.containername_2, containers[0].get(\u0027name\u0027))"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        # Test prefix"},{"line_number":158,"context_line":"        headers, containers \u003d self.conn.get_account(prefix\u003d\u0027dne\u0027)"},{"line_number":159,"context_line":"        self.assertEqual(0, len(containers))"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        # Test delimiter"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_bf25f717","line":158,"in_reply_to":"3f79a3b5_dbe02796","updated":"2018-11-27 22:01:41.000000000","message":"Sure -- will add it.","commit_id":"b376c567b7aba4b97d904da8763c3408a93058db"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"ee6f3a0fe77add48e21ca9064c36f0d55b32e295","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        # Test delimiter"},{"line_number":162,"context_line":"        headers, containers \u003d self.conn.get_account(delimiter\u003d\u0027_\u0027)"},{"line_number":163,"context_line":"        self.assertEqual(2, len(containers))"},{"line_number":164,"context_line":"        self.assertEqual(self.containername, containers[0].get(\u0027name\u0027))"},{"line_number":165,"context_line":"        self.assertTrue("},{"line_number":166,"context_line":"            self.containername_2.startswith(containers[1].get(\u0027subdir\u0027)))"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_3b935b01","line":163,"range":{"start_line":163,"start_character":13,"end_line":163,"end_character":44},"updated":"2018-11-26 17:52:43.000000000","message":"Looking at the other func tests above, I think there may be an expectation that we can run these in an already-populated swift account...","commit_id":"b376c567b7aba4b97d904da8763c3408a93058db"},{"author":{"_account_id":17363,"name":"Timur Alperovich","email":"timur@timuralp.com","username":"timuralp"},"change_message_id":"f3aba32c8731db3a1ffaa2fb60f5c8baf7e1865d","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        # Test delimiter"},{"line_number":162,"context_line":"        headers, containers \u003d self.conn.get_account(delimiter\u003d\u0027_\u0027)"},{"line_number":163,"context_line":"        self.assertEqual(2, len(containers))"},{"line_number":164,"context_line":"        self.assertEqual(self.containername, containers[0].get(\u0027name\u0027))"},{"line_number":165,"context_line":"        self.assertTrue("},{"line_number":166,"context_line":"            self.containername_2.startswith(containers[1].get(\u0027subdir\u0027)))"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_df76b30b","line":163,"range":{"start_line":163,"start_character":13,"end_line":163,"end_character":44},"in_reply_to":"3f79a3b5_3b935b01","updated":"2018-11-27 22:01:41.000000000","message":"The setup creates at least two of the three containers, so we could add a prefix to scope down this listing. On the other hand, maybe it\u0027s not crazy to assume a clean environment for tests?","commit_id":"b376c567b7aba4b97d904da8763c3408a93058db"}]}
