)]}'
{"swiftclient/client.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b30840ece84ab589d1478f89fe622dd7484f4329","unresolved":false,"context_lines":[{"line_number":442,"context_line":"        def __del__(self):"},{"line_number":443,"context_line":"            \"\"\"Cleanup resources other than memory\"\"\""},{"line_number":444,"context_line":"            if self.request_session:"},{"line_number":445,"context_line":"                # The session we create must be closed to free up file descriptors"},{"line_number":446,"context_line":"                try:"},{"line_number":447,"context_line":"                    self.request_session.close()"},{"line_number":448,"context_line":"                finally:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4c43b2_8c0b77d4","line":445,"updated":"2020-04-19 07:17:13.000000000","message":"pep8: E501 line too long (82 \u003e 79 characters)","commit_id":"cb17f95e797f0151f8a20195b156be5baa0d692d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"ba1f522f567d17bd6184aafc9fadc267e9218405","unresolved":false,"context_lines":[{"line_number":450,"context_line":"        def __del__(self):"},{"line_number":451,"context_line":"            \"\"\"Cleanup resources other than memory\"\"\""},{"line_number":452,"context_line":"            if self.request_session:"},{"line_number":453,"context_line":"                # The session we create must be closed to free up file descriptors"},{"line_number":454,"context_line":"                try:"},{"line_number":455,"context_line":"                    self.request_session.close()"},{"line_number":456,"context_line":"                finally:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_8fcce461","line":453,"updated":"2020-09-08 21:32:32.000000000","message":"pep8: E501 line too long (82 \u003e 79 characters)","commit_id":"65c3e31634a584beb69a83143ab9dfb537f97f02"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"69faee710cd18b310ff375e4618de13aa64f3e77","unresolved":false,"context_lines":[{"line_number":297,"context_line":"    def close(self):"},{"line_number":298,"context_line":"        self.resp.close()"},{"line_number":299,"context_line":"        if self.conn_to_close:"},{"line_number":300,"context_line":"            self.conn_to_close.close()"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"class _RetryBody(_ObjectBody):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_7d274164","line":300,"updated":"2020-09-11 19:47:36.000000000","message":"do we do anything to try and encourage callers of get_object to actually use this method?","commit_id":"338d66e493c9677542e851fdb62c461f187d037f"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"f84d1291f18b4336f5eed0c93437d629d9c7481a","unresolved":false,"context_lines":[{"line_number":297,"context_line":"    def close(self):"},{"line_number":298,"context_line":"        self.resp.close()"},{"line_number":299,"context_line":"        if self.conn_to_close:"},{"line_number":300,"context_line":"            self.conn_to_close.close()"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"class _RetryBody(_ObjectBody):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_51d34638","line":300,"in_reply_to":"9f560f44_7d274164","updated":"2020-09-11 22:07:32.000000000","message":"I would\u0027ve expected most users would look to call close() after opening up some indefinite stream of bytes, but maybe I\u0027m biased.\n\nI could see an argument for having us call it automatically\n\n* just before raising StopIteration in next() and\n* whenever we\u0027ve got a short read().\n\n_RetryBody can be even smarter since it knows the expected length...","commit_id":"338d66e493c9677542e851fdb62c461f187d037f"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"b3493d8126991c93c33a4506818b1d88f953bd7b","unresolved":false,"context_lines":[{"line_number":446,"context_line":"        if timeout:"},{"line_number":447,"context_line":"            self.requests_args[\u0027timeout\u0027] \u003d timeout"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"    if not six.PY2:"},{"line_number":450,"context_line":"        def __del__(self):"},{"line_number":451,"context_line":"            \"\"\"Cleanup resources other than memory\"\"\""},{"line_number":452,"context_line":"            if self.request_session:"},{"line_number":453,"context_line":"                # The session we create must be closed to free up"},{"line_number":454,"context_line":"                # file descriptors"},{"line_number":455,"context_line":"                try:"},{"line_number":456,"context_line":"                    self.request_session.close()"},{"line_number":457,"context_line":"                finally:"},{"line_number":458,"context_line":"                    self.request_session \u003d None"},{"line_number":459,"context_line":""},{"line_number":460,"context_line":"    def _request(self, *arg, **kwarg):"},{"line_number":461,"context_line":"        \"\"\"Final wrapper before requests call, to be patched in tests\"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_71e64ae9","line":458,"range":{"start_line":449,"start_character":4,"end_line":458,"end_character":47},"updated":"2020-09-11 22:09:34.000000000","message":"So here\u0027s a question: do we keep this, or can it go now?","commit_id":"338d66e493c9677542e851fdb62c461f187d037f"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"69faee710cd18b310ff375e4618de13aa64f3e77","unresolved":false,"context_lines":[{"line_number":1285,"context_line":"    :param resp_chunk_size: if defined, chunk size of data to read. NOTE: If"},{"line_number":1286,"context_line":"                            you specify a resp_chunk_size you must fully read"},{"line_number":1287,"context_line":"                            the object\u0027s contents before making another"},{"line_number":1288,"context_line":"                            request."},{"line_number":1289,"context_line":"    :param query_string: if set will be appended with \u0027?\u0027 to generated path"},{"line_number":1290,"context_line":"    :param response_dict: an optional dictionary into which to place"},{"line_number":1291,"context_line":"                     the response - status, reason and headers"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_fd1231fc","line":1288,"updated":"2020-09-11 19:47:36.000000000","message":"perhaps not strictly true, if you\u0027re getting a new connection every requests","commit_id":"338d66e493c9677542e851fdb62c461f187d037f"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"69faee710cd18b310ff375e4618de13aa64f3e77","unresolved":false,"context_lines":[{"line_number":1325,"context_line":"        raise ClientException.from_response(resp, \u0027Object GET failed\u0027, body)"},{"line_number":1326,"context_line":"    if resp_chunk_size:"},{"line_number":1327,"context_line":"        object_body \u003d _ObjectBody(resp, resp_chunk_size,"},{"line_number":1328,"context_line":"                                  conn_to_close\u003dconn if close_conn else None)"},{"line_number":1329,"context_line":"    else:"},{"line_number":1330,"context_line":"        object_body \u003d resp.read()"},{"line_number":1331,"context_line":"        if close_conn:"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_5d2ebd42","line":1328,"updated":"2020-09-11 19:47:36.000000000","message":"so this is actually some fairly responsible resource management - kudos.","commit_id":"338d66e493c9677542e851fdb62c461f187d037f"}],"test/unit/test_swiftclient.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"218299bc8b6d63e8f60599dd2c313a7febd90629","unresolved":false,"context_lines":[{"line_number":785,"context_line":"        self.assertRequests(["},{"line_number":786,"context_line":"            (\u0027HEAD\u0027, \u0027http://www.tests.com\u0027, \u0027\u0027, {\u0027x-auth-token\u0027: \u0027asdf\u0027})"},{"line_number":787,"context_line":"        ])"},{"line_number":788,"context_line":"        self.assertTrue(self.request_log[-1][-1]._closed)"},{"line_number":789,"context_line":""},{"line_number":790,"context_line":"    def test_server_error(self):"},{"line_number":791,"context_line":"        body \u003d \u0027c\u0027 * 65"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f6b1bfe_eb31b1ee","line":788,"updated":"2020-10-13 17:20:12.000000000","message":"I assume a similar assert would pass on MOST of the module level function tests","commit_id":"82672b9deeff5547e960e673afce2f73cf902090"}]}
