)]}'
{"swift/obj/server.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"9eb7cd1633e2a9b40f5cbf83d32fc09f799ad6cd","unresolved":false,"context_lines":[{"line_number":1035,"context_line":"                    res \u003d HTTPMethodNotAllowed()"},{"line_number":1036,"context_line":"                else:"},{"line_number":1037,"context_line":"                    method \u003d getattr(self, req.method)"},{"line_number":1038,"context_line":"                    res \u003d method(req)"},{"line_number":1039,"context_line":"            except DiskFileCollision:"},{"line_number":1040,"context_line":"                res \u003d HTTPForbidden(request\u003dreq)"},{"line_number":1041,"context_line":"            except HTTPException as error_response:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_cf756898","line":1038,"updated":"2016-06-15 00:55:28.000000000","message":"Not gonna combine these like you did in the other places?","commit_id":"3944d820387f08372c1a29444f4af7d8e6090ae9"}],"swift/proxy/server.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"9eb7cd1633e2a9b40f5cbf83d32fc09f799ad6cd","unresolved":false,"context_lines":[{"line_number":384,"context_line":"            self.logger.client_ip \u003d get_remote_client(req)"},{"line_number":385,"context_line":""},{"line_number":386,"context_line":"            handler \u003d getattr(controller, req.method, None)"},{"line_number":387,"context_line":"            if not getattr(handler, \u0027publicly_accessible\u0027, False):"},{"line_number":388,"context_line":"                allowed_methods \u003d getattr(controller, \u0027allowed_methods\u0027, set())"},{"line_number":389,"context_line":"                return HTTPMethodNotAllowed("},{"line_number":390,"context_line":"                    request\u003dreq, headers\u003d{\u0027Allow\u0027: \u0027, \u0027.join(allowed_methods)})"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_0ff13001","line":387,"updated":"2016-06-15 00:55:28.000000000","message":"Do we not have a self.allowed_methods property available?\n\nIf not, should we add one?","commit_id":"3944d820387f08372c1a29444f4af7d8e6090ae9"},{"author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"change_message_id":"15fb1f38c7f1b13a86f4476be6cd89744584168a","unresolved":false,"context_lines":[{"line_number":384,"context_line":"            self.logger.client_ip \u003d get_remote_client(req)"},{"line_number":385,"context_line":""},{"line_number":386,"context_line":"            handler \u003d getattr(controller, req.method, None)"},{"line_number":387,"context_line":"            if not getattr(handler, \u0027publicly_accessible\u0027, False):"},{"line_number":388,"context_line":"                allowed_methods \u003d getattr(controller, \u0027allowed_methods\u0027, set())"},{"line_number":389,"context_line":"                return HTTPMethodNotAllowed("},{"line_number":390,"context_line":"                    request\u003dreq, headers\u003d{\u0027Allow\u0027: \u0027, \u0027.join(allowed_methods)})"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_8f18801f","line":387,"in_reply_to":"7aa08908_0ff13001","updated":"2016-06-15 01:02:38.000000000","message":"We do have one. I could use that here if you like; I was mostly focused on getting rid of the \"except AttributeError\" so I kept the rest how it was.","commit_id":"3944d820387f08372c1a29444f4af7d8e6090ae9"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"928b1afac0494b72ef3d19011abdea0fa7c2ef6a","unresolved":false,"context_lines":[{"line_number":384,"context_line":"            self.logger.client_ip \u003d get_remote_client(req)"},{"line_number":385,"context_line":""},{"line_number":386,"context_line":"            handler \u003d getattr(controller, req.method, None)"},{"line_number":387,"context_line":"            if not getattr(handler, \u0027publicly_accessible\u0027, False):"},{"line_number":388,"context_line":"                allowed_methods \u003d getattr(controller, \u0027allowed_methods\u0027, set())"},{"line_number":389,"context_line":"                return HTTPMethodNotAllowed("},{"line_number":390,"context_line":"                    request\u003dreq, headers\u003d{\u0027Allow\u0027: \u0027, \u0027.join(allowed_methods)})"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_af1c5c77","line":387,"in_reply_to":"7aa08908_8f18801f","updated":"2016-06-15 01:29:38.000000000","message":"Not strictly necessary, but I like consistency. Your call.","commit_id":"3944d820387f08372c1a29444f4af7d8e6090ae9"}]}
