)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"d22b3e6717db052f3c4e1a6f41dedf0df96429f6","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Mahesh Panchaksharaiah \u003cmaheshp@thoughtworks.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-04-25 16:03:08 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Return Customer\u0027s Quota Usgae through Admin API"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Modified the used limits API for Admin to retrieve"},{"line_number":10,"context_line":"the used limits for a customer. Changes done to the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAOn%2F%2FvQw%3D","line":7,"updated":"2013-04-25 15:23:31.000000000","message":"s/Usgae/Usage/ (femtonit)","commit_id":"f50bae1258abd7f5ec6169b1702517a2ccdcabc3"}],"novaclient/v1_1/limits.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"d22b3e6717db052f3c4e1a6f41dedf0df96429f6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2011 OpenStack Foundation"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"from novaclient import base"},{"line_number":4,"context_line":"import urllib"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"class Limits(base.Resource):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2FvQk%3D","line":4,"updated":"2013-04-25 15:23:31.000000000","message":"This is a standard library import, so it should be in an import group prior to all other third-party imports and novaclient imports; i.e., this should be done like so:\n\n    import urllib\n\n    from novaclient import base\n\n(Of course, each group should be alphabetical…)","commit_id":"f50bae1258abd7f5ec6169b1702517a2ccdcabc3"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"d22b3e6717db052f3c4e1a6f41dedf0df96429f6","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    resource_class \u003d Limits"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    def get(self, opts\u003d{}):"},{"line_number":75,"context_line":"        \"\"\""},{"line_number":76,"context_line":"        Get a specific extension."},{"line_number":77,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2FvP8%3D","line":74,"updated":"2013-04-25 15:23:31.000000000","message":"You\u0027re changing the interface on an API method, not just adding to it; that makes me nervous.  I would rather see something more like:\n\n    def get(self, reserved\u003dFalse, tenant_id\u003dNone):\n        opts \u003d {}\n        if reserved:\n            opts[\u0027reserved\u0027] \u003d 1\n        if tenant_id:\n            opts[\u0027tenant_id\u0027] \u003d tenant_id\n\n        query_string \u003d \"?%s\" % urllib.urlencode(opts) if opts else \"\"\n\n        return self._get(\"/limits%s\" % query_string, \"limits\")","commit_id":"f50bae1258abd7f5ec6169b1702517a2ccdcabc3"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"05bccbed4c7ede1f57a4ea4db45a7f8419f1d780","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2011 OpenStack Foundation"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"import urllib"},{"line_number":4,"context_line":"from novaclient import base"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"class Limits(base.Resource):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAOn%2F%2FvJc%3D","line":4,"updated":"2013-04-25 16:14:41.000000000","message":"You need a blank line between the groups, i.e.:\n\n    import urllib\n\n    from novaclient import base\n\nThe blank line visually separates the groups of imports.  Remember, we want all standard imports in the first group (this includes urllib); all third-party imports in the second group (this file has no third-party imports); and all novaclient imports in the third group.","commit_id":"bfbef2b0b92e7a24a5675f0dd9cda4f1a5dc8eb5"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"05bccbed4c7ede1f57a4ea4db45a7f8419f1d780","unresolved":false,"context_lines":[{"line_number":82,"context_line":"            opts[\u0027reserved\u0027] \u003d 1"},{"line_number":83,"context_line":"        if tenant_id:"},{"line_number":84,"context_line":"            opts[\u0027tenant_id\u0027] \u003d tenant_id"},{"line_number":85,"context_line":"        query_string \u003d \"?%s\" % urllib.urlencode(opts) if len(opts) else \"\""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        return self._get(\"/limits%s\" % query_string, \"limits\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAOn%2F%2FvJU%3D","line":85,"updated":"2013-04-25 16:14:41.000000000","message":"You don\u0027t need len(opts) in the condition here, by the way; an empty dictionary tests as False.  (femtonit)","commit_id":"bfbef2b0b92e7a24a5675f0dd9cda4f1a5dc8eb5"}],"novaclient/v1_1/shell.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"49b4cffe1e09c2ce73db6ae5580a03d2a619f390","unresolved":false,"context_lines":[{"line_number":2068,"context_line":"    nargs\u003d\u0027?\u0027,"},{"line_number":2069,"context_line":"    help\u003d\u0027Display information from single tenant (Admin only).\u0027)"},{"line_number":2070,"context_line":"@utils.arg(\u0027--reserved\u0027,"},{"line_number":2071,"context_line":"    dest\u003d\u0027reserved\u0027,"},{"line_number":2072,"context_line":"    action\u003d\u0027store_true\u0027,"},{"line_number":2073,"context_line":"    default\u003dFalse,"},{"line_number":2074,"context_line":"    help\u003d\u0027Include reservations count.\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAOn%2F%2FvE0%3D","line":2071,"updated":"2013-04-25 16:43:46.000000000","message":"Hmmm, one last question—why did you de-indent the arguments to @utils.arg()?","commit_id":"d4cbad0f407cce4db0640082224c6093d017a62d"},{"author":{"_account_id":7393,"name":"Mahesh Panchaksharaiah","email":"maheshp@thoughtworks.com","username":"panchaks"},"change_message_id":"60ba6baa69e2bd60117bdb91399e90a02c029f5e","unresolved":false,"context_lines":[{"line_number":2068,"context_line":"    nargs\u003d\u0027?\u0027,"},{"line_number":2069,"context_line":"    help\u003d\u0027Display information from single tenant (Admin only).\u0027)"},{"line_number":2070,"context_line":"@utils.arg(\u0027--reserved\u0027,"},{"line_number":2071,"context_line":"    dest\u003d\u0027reserved\u0027,"},{"line_number":2072,"context_line":"    action\u003d\u0027store_true\u0027,"},{"line_number":2073,"context_line":"    default\u003dFalse,"},{"line_number":2074,"context_line":"    help\u003d\u0027Include reservations count.\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAOn%2F%2Fp6k%3D","line":2071,"in_reply_to":"AAAAOn%2F%2FrTY%3D","updated":"2013-04-30 13:48:53.000000000","message":"Got it, thanks for the feedback.","commit_id":"d4cbad0f407cce4db0640082224c6093d017a62d"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"4e7d715ba5d4d6edb84d6175ad5cc7df907251f8","unresolved":false,"context_lines":[{"line_number":2068,"context_line":"    nargs\u003d\u0027?\u0027,"},{"line_number":2069,"context_line":"    help\u003d\u0027Display information from single tenant (Admin only).\u0027)"},{"line_number":2070,"context_line":"@utils.arg(\u0027--reserved\u0027,"},{"line_number":2071,"context_line":"    dest\u003d\u0027reserved\u0027,"},{"line_number":2072,"context_line":"    action\u003d\u0027store_true\u0027,"},{"line_number":2073,"context_line":"    default\u003dFalse,"},{"line_number":2074,"context_line":"    help\u003d\u0027Include reservations count.\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAOn%2F%2FrTY%3D","line":2071,"in_reply_to":"AAAAOn%2F%2FruU%3D","updated":"2013-04-29 15:13:47.000000000","message":"Well, I hope you\u0027re *not* using tab in this Python code :)  But yes, the preferred indentation style is to have things lined up after the opening parentheses wherever possible.  An example is probably in order, so here are the two cases of indenting arguments in a function call:\n\n    result \u003d function(arg1,\n                      arg2,\n                      arg3)\n\nvs.\n\n    result \u003d function(\n        arg1,\n        arg2,\n        arg3,\n    )\n\nThese examples should be fully compliant with what the current pep8 tool expects.  (We have the tests for these turned off, though, since large portions of novaclient are not currently fully pep8 compliant.)  Ultimately, of course, we should work through novaclient to fix up some of these and turn on the corresponding pep8 tests, but that\u0027s pretty low priority, so…","commit_id":"d4cbad0f407cce4db0640082224c6093d017a62d"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"5797e507f86d55a615e5cd7cd44be3b0f7736a05","unresolved":false,"context_lines":[{"line_number":2068,"context_line":"    nargs\u003d\u0027?\u0027,"},{"line_number":2069,"context_line":"    help\u003d\u0027Display information from single tenant (Admin only).\u0027)"},{"line_number":2070,"context_line":"@utils.arg(\u0027--reserved\u0027,"},{"line_number":2071,"context_line":"    dest\u003d\u0027reserved\u0027,"},{"line_number":2072,"context_line":"    action\u003d\u0027store_true\u0027,"},{"line_number":2073,"context_line":"    default\u003dFalse,"},{"line_number":2074,"context_line":"    help\u003d\u0027Include reservations count.\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAOn%2F%2FsS0%3D","line":2071,"in_reply_to":"AAAAOn%2F%2FvE0%3D","updated":"2013-04-28 04:01:43.000000000","message":"I agree. I\u0027d like to see these indented under the opening bracket on the first line.","commit_id":"d4cbad0f407cce4db0640082224c6093d017a62d"},{"author":{"_account_id":7393,"name":"Mahesh Panchaksharaiah","email":"maheshp@thoughtworks.com","username":"panchaks"},"change_message_id":"fcedad0c34f7a9df5b7344ddd6cd01c27f304834","unresolved":false,"context_lines":[{"line_number":2068,"context_line":"    nargs\u003d\u0027?\u0027,"},{"line_number":2069,"context_line":"    help\u003d\u0027Display information from single tenant (Admin only).\u0027)"},{"line_number":2070,"context_line":"@utils.arg(\u0027--reserved\u0027,"},{"line_number":2071,"context_line":"    dest\u003d\u0027reserved\u0027,"},{"line_number":2072,"context_line":"    action\u003d\u0027store_true\u0027,"},{"line_number":2073,"context_line":"    default\u003dFalse,"},{"line_number":2074,"context_line":"    help\u003d\u0027Include reservations count.\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAOn%2F%2FruU%3D","line":2071,"in_reply_to":"AAAAOn%2F%2FvE0%3D","updated":"2013-04-29 09:40:04.000000000","message":"I thought a tab would be right indentation, so the de-indent. And the indentation for @utils.arg() doesn\u0027t seem to be consistent.","commit_id":"d4cbad0f407cce4db0640082224c6093d017a62d"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"9c39b431150b9e40387ce12b8a7ee532a961c6c5","unresolved":false,"context_lines":[{"line_number":2179,"context_line":""},{"line_number":2180,"context_line":""},{"line_number":2181,"context_line":"@utils.arg(\u0027--tenant\u0027,"},{"line_number":2182,"context_line":"           #nova db searches by project_id"},{"line_number":2183,"context_line":"           dest\u003d\u0027tenant\u0027,"},{"line_number":2184,"context_line":"           metavar\u003d\u0027\u003ctenant\u003e\u0027,"},{"line_number":2185,"context_line":"           nargs\u003d\u0027?\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2FxXQ%3D","line":2182,"updated":"2013-06-21 16:22:50.000000000","message":"attonit: I like there to be a space separating the \u0027#\u0027 and the text in a comment.","commit_id":"ea4712369b55b28b804526326e42ff751f8b605b"}]}
