)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"e6be71766a6cd8ee2a964e3bef6befeda1571d33","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     rajiv \u003crajiv.kumar@nectechnologies.in\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-03-23 06:36:12 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Added a function which accepts genrator object and returns dictionary."},{"line_number":8,"context_line":"This function is used by do_rate_limit function and then returned"},{"line_number":9,"context_line":"dictionry is printed"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1a6ced46_e1d8a655","line":7,"updated":"2015-03-23 15:30:19.000000000","message":"s/genrator/generator/ (femtonit)","commit_id":"331c46a259dc6e424f1bd61e3eb6c0eb07813269"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"e6be71766a6cd8ee2a964e3bef6befeda1571d33","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2015-03-23 06:36:12 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Added a function which accepts genrator object and returns dictionary."},{"line_number":8,"context_line":"This function is used by do_rate_limit function and then returned"},{"line_number":9,"context_line":"dictionry is printed"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I1344da1a3925a3f3a757e340f11381b69a668bf7"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1a6ced46_41f97ac7","line":8,"updated":"2015-03-23 15:30:19.000000000","message":"You need a blank line between the summary line and the body of the commit message.  Please see [1] for a description of how we like commit messages formatted…\n\n[1] https://wiki.openstack.org/wiki/GitCommitMessages","commit_id":"331c46a259dc6e424f1bd61e3eb6c0eb07813269"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"e6be71766a6cd8ee2a964e3bef6befeda1571d33","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Added a function which accepts genrator object and returns dictionary."},{"line_number":8,"context_line":"This function is used by do_rate_limit function and then returned"},{"line_number":9,"context_line":"dictionry is printed"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I1344da1a3925a3f3a757e340f11381b69a668bf7"},{"line_number":12,"context_line":"Closes-Bug: #1172254"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1a6ced46_810372b7","line":9,"updated":"2015-03-23 15:30:19.000000000","message":"s/dictionry/dictionary/ (femtonit)","commit_id":"331c46a259dc6e424f1bd61e3eb6c0eb07813269"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"fac68cb4d7de571a80ba83af7c7a893bb022342f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Rajiv Kumar \u003crajiv.kumar@nectechnologies.in\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-04-08 04:51:39 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"nova client now support limits subcommands"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Added new subcommand limits which displays absolute limits and"},{"line_number":10,"context_line":"rate limit both. do_limit method calls get() only once and then"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"dac4157f_be1d5c68","line":7,"updated":"2015-04-20 17:03:04.000000000","message":"I have a few English corrections to suggest.  These are no big deal, and I would still approve your patch without them, but I thought you might find them valuable.\n\nHere, I\u0027d change \"subcommands\" to the singular form, \"subcommand\", since you\u0027re only adding one new subcommand.","commit_id":"9b684e387260d79c89c595e0f741022b729c3734"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"fac68cb4d7de571a80ba83af7c7a893bb022342f","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"nova client now support limits subcommands"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Added new subcommand limits which displays absolute limits and"},{"line_number":10,"context_line":"rate limit both. do_limit method calls get() only once and then"},{"line_number":11,"context_line":"pass limits.rate and limits.absolute to _print_rate_limits and"},{"line_number":12,"context_line":"_print_absolute_limits, which formats the output."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"dac4157f_1e5c4824","line":9,"updated":"2015-04-20 17:03:04.000000000","message":"I would suggest putting quotes around \"limits\" to make it clear that that\u0027s the name of the new subcommand.","commit_id":"9b684e387260d79c89c595e0f741022b729c3734"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"fac68cb4d7de571a80ba83af7c7a893bb022342f","unresolved":false,"context_lines":[{"line_number":7,"context_line":"nova client now support limits subcommands"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Added new subcommand limits which displays absolute limits and"},{"line_number":10,"context_line":"rate limit both. do_limit method calls get() only once and then"},{"line_number":11,"context_line":"pass limits.rate and limits.absolute to _print_rate_limits and"},{"line_number":12,"context_line":"_print_absolute_limits, which formats the output."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"dac4157f_9e8df87d","line":10,"updated":"2015-04-20 17:03:04.000000000","message":"Here I\u0027d make \"rate limit\" be the plural, \"rate limits\"; that would also be consistent with the \"absolute limits\" from the previous line.\n\nAlso, the new command is \"limits\", so you should say that it\u0027s \"do_limits method\".  I personally prefer to set off functions and methods by appending \"()\" to their name, i.e. \"do_limits() method\".  Finally, it\u0027s actually technically a function; a \"method\" is a function defined as part of a class, e.g. \"get()\" would be a method.","commit_id":"9b684e387260d79c89c595e0f741022b729c3734"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"fac68cb4d7de571a80ba83af7c7a893bb022342f","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Added new subcommand limits which displays absolute limits and"},{"line_number":10,"context_line":"rate limit both. do_limit method calls get() only once and then"},{"line_number":11,"context_line":"pass limits.rate and limits.absolute to _print_rate_limits and"},{"line_number":12,"context_line":"_print_absolute_limits, which formats the output."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I1344da1a3925a3f3a757e340f11381b69a668bf7"},{"line_number":15,"context_line":"Closes-Bug: #1172254"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"dac4157f_3e0f0ce3","line":12,"updated":"2015-04-20 17:03:04.000000000","message":"The pedantically correct verb here is \"passes\" rather than \"pass\".  Also, an English speaker would often add \"respectively\" here, to indicate that the two items in the first list match up with the two items in the second list.\n\nCombining all the suggestions on this one sentence, the result would be:\n\n\"do_limit() function calls get() only once and then passes limits.rate and limits.absolute to _print_rate_limits() and _print_absolute_limits(), respectively; these functions then format the output.\"","commit_id":"9b684e387260d79c89c595e0f741022b729c3734"}],"novaclient/tests/unit/v2/test_limits.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"4d324349043e53b63b094dc1c519d54f474bcde7","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        for limit in rate_limits:"},{"line_number":87,"context_line":"            self.assertIn(limit, expected)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        expected \u003d ("},{"line_number":90,"context_line":"            limits.AbsoluteLimit(\"maxTotalRAMSize\", 51200),"},{"line_number":91,"context_line":"            limits.AbsoluteLimit(\"maxServerMeta\", 5),"},{"line_number":92,"context_line":"            limits.AbsoluteLimit(\"maxImageMeta\", 5),"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6ced46_bf269014","line":89,"updated":"2015-03-24 16:06:04.000000000","message":"This should be a separate test.  Each test method should, when practical, test exactly one thing.  (There are rare cases where it may be necessary to perform multiple tests in a single test method, but this isn\u0027t one of them.)\n\nAdditionally, I don\u0027t understand why you\u0027re adding any tests here; you only modified the shell.py, not the underlying limits.py.","commit_id":"49d78c5b105bbe292db8afb8afc4bd791666867f"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"f098068a66e3eab27a5493826258b0be68cbb557","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        rate_limits \u003d list(obj.rate)"},{"line_number":85,"context_line":"        self.assertEqual(len(rate_limits), len(expected))"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        for limit in rate_limits:"},{"line_number":88,"context_line":"            self.assertIn(limit, expected)"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa963961_29d36e3a","side":"PARENT","line":86,"updated":"2015-03-26 16:00:05.000000000","message":"Please revert this blank line change, so that test_limits.py no longer appears in your review…","commit_id":"025bcfb1e375f8ea419e6fa6368dffbb6681afa8"}],"novaclient/tests/unit/v2/test_shell.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"68ab71d1c62fa97a904581e170a7d6f14f708728","unresolved":false,"context_lines":[{"line_number":2002,"context_line":"        stdout \u003d self.run_command(\u0027rate-limits\u0027)"},{"line_number":2003,"context_line":"        self.assert_called(\u0027GET\u0027, \u0027/limits\u0027)"},{"line_number":2004,"context_line":"        stdout \u003d stdout.split(\u0027Property\u0027, 1)[1]"},{"line_number":2005,"context_line":"        self.assertTrue(stdout)"},{"line_number":2006,"context_line":""},{"line_number":2007,"context_line":"    def test_evacuate(self):"},{"line_number":2008,"context_line":"        self.run_command(\u0027evacuate sample-server new_host\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a6ced46_2bb4f4cf","line":2005,"updated":"2015-03-25 16:00:07.000000000","message":"I don\u0027t like this way of testing the output of the command.  There are many other examples of testing output from commands in this file; I would prefer you model this test on one of those.  For example, test_rebuild_password(), starting on line 934, uses self.assertIn() to verify that the text \"adminPass\" appears in the output.","commit_id":"3cb02553372a0dc14f4c79bf80137d74bc32e7b5"}],"novaclient/v2/shell.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"e6be71766a6cd8ee2a964e3bef6befeda1571d33","unresolved":false,"context_lines":[{"line_number":3013,"context_line":"    limits \u003d cs.limits.get()"},{"line_number":3014,"context_line":"    columns \u003d [\u0027Verb\u0027, \u0027URI\u0027, \u0027Value\u0027, \u0027Remain\u0027, \u0027Unit\u0027, \u0027Next_Available\u0027]"},{"line_number":3015,"context_line":"    utils.print_list(limits, columns)"},{"line_number":3016,"context_line":"    abs_genrator \u003d limits.absolute"},{"line_number":3017,"context_line":"    abs_dict \u003d _make_dict(abs_genrator)"},{"line_number":3018,"context_line":"    utils.print_dict(abs_dict)"},{"line_number":3019,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6ced46_c1a1eaaa","line":3016,"updated":"2015-03-23 15:30:19.000000000","message":"s/genrator/generator/ (femtonit)","commit_id":"331c46a259dc6e424f1bd61e3eb6c0eb07813269"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"e6be71766a6cd8ee2a964e3bef6befeda1571d33","unresolved":false,"context_lines":[{"line_number":3014,"context_line":"    columns \u003d [\u0027Verb\u0027, \u0027URI\u0027, \u0027Value\u0027, \u0027Remain\u0027, \u0027Unit\u0027, \u0027Next_Available\u0027]"},{"line_number":3015,"context_line":"    utils.print_list(limits, columns)"},{"line_number":3016,"context_line":"    abs_genrator \u003d limits.absolute"},{"line_number":3017,"context_line":"    abs_dict \u003d _make_dict(abs_genrator)"},{"line_number":3018,"context_line":"    utils.print_dict(abs_dict)"},{"line_number":3019,"context_line":""},{"line_number":3020,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6ced46_21b63eda","line":3017,"updated":"2015-03-23 15:30:19.000000000","message":"I\u0027m not sure I understand the purpose of this.  It seems to me you could do this exact thing with a simple comprehension:\n\n    abs_dict \u003d dict((lim.name, lim.value) for lim in limits.absolute())\n\n(Here I\u0027m using dict() because Python 2.6, which novaclient still supports, does not support dictionary comprehensions.)","commit_id":"331c46a259dc6e424f1bd61e3eb6c0eb07813269"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"4d324349043e53b63b094dc1c519d54f474bcde7","unresolved":false,"context_lines":[{"line_number":3002,"context_line":"    dct \u003d {}"},{"line_number":3003,"context_line":"    while True:"},{"line_number":3004,"context_line":"        try:"},{"line_number":3005,"context_line":"            dct[gen_obj.next().name] \u003d gen_obj.next().value"},{"line_number":3006,"context_line":"        except StopIteration:"},{"line_number":3007,"context_line":"            break"},{"line_number":3008,"context_line":"    return dct"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6ced46_5f359cf5","line":3005,"updated":"2015-03-24 16:06:04.000000000","message":"Wait, you\u0027re calling the generator\u0027s next() method twice; that means the value you\u0027re storing will be from the wrong object!","commit_id":"49d78c5b105bbe292db8afb8afc4bd791666867f"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"4d324349043e53b63b094dc1c519d54f474bcde7","unresolved":false,"context_lines":[{"line_number":3014,"context_line":"    columns \u003d [\u0027Verb\u0027, \u0027URI\u0027, \u0027Value\u0027, \u0027Remain\u0027, \u0027Unit\u0027, \u0027Next_Available\u0027]"},{"line_number":3015,"context_line":"    utils.print_list(limits.rate, columns)"},{"line_number":3016,"context_line":"    abs_genrator \u003d limits.absolute"},{"line_number":3017,"context_line":"    abs_dict \u003d _make_dict(abs_genrator)"},{"line_number":3018,"context_line":"    utils.print_dict(abs_dict)"},{"line_number":3019,"context_line":""},{"line_number":3020,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6ced46_1fa6c453","line":3017,"updated":"2015-03-24 16:06:04.000000000","message":"I still don\u0027t understand why you need the _make_dict() function.  Surely a comprehension would work better!","commit_id":"49d78c5b105bbe292db8afb8afc4bd791666867f"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"9ad0959ac9e0b0de61f0a2c657b429a849dbab2e","unresolved":false,"context_lines":[{"line_number":2380,"context_line":"@cliutils.arg(\u0027server\u0027, metavar\u003d\u0027\u003cserver\u003e\u0027, help\u003d_(\u0027Name or ID of server.\u0027))"},{"line_number":2381,"context_line":"@cliutils.arg(\u0027address\u0027, metavar\u003d\u0027\u003caddress\u003e\u0027, help\u003d_(\u0027IP Address.\u0027))"},{"line_number":2382,"context_line":"def do_remove_floating_ip(cs, args):"},{"line_number":2383,"context_line":"    \"\"\"DEPRECATED, use floating-ip-disassociate instead.\"\"\""},{"line_number":2384,"context_line":"    _disassociate_floating_ip(cs, args)"},{"line_number":2385,"context_line":""},{"line_number":2386,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"9aa53dc9_d90dae3f","line":2383,"updated":"2015-04-07 22:43:27.000000000","message":"Here is an example of a deprecation message.","commit_id":"e311e30e75ad9b62ff0cafe84cdfff00ad4c6a0d"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"6db435cd26eb175291d20574045bc7e5b448a03c","unresolved":false,"context_lines":[{"line_number":2934,"context_line":"    action\u003d\u0027store_true\u0027,"},{"line_number":2935,"context_line":"    default\u003dFalse,"},{"line_number":2936,"context_line":"    help\u003d_(\u0027Include reservations count.\u0027))"},{"line_number":2937,"context_line":"def do_absolute_limits(cs, args, limits\u003dNone):"},{"line_number":2938,"context_line":"    \"\"\"Print a list of absolute limits for a user\"\"\""},{"line_number":2939,"context_line":"    if not limits:"},{"line_number":2940,"context_line":"        limits \u003d cs.limits.get(args.reserved, args.tenant).absolute"}],"source_content_type":"text/x-python","patch_set":14,"id":"9aa53dc9_a2576a01","line":2937,"updated":"2015-04-07 14:59:49.000000000","message":"same here","commit_id":"e311e30e75ad9b62ff0cafe84cdfff00ad4c6a0d"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"9ad0959ac9e0b0de61f0a2c657b429a849dbab2e","unresolved":false,"context_lines":[{"line_number":2935,"context_line":"    default\u003dFalse,"},{"line_number":2936,"context_line":"    help\u003d_(\u0027Include reservations count.\u0027))"},{"line_number":2937,"context_line":"def do_absolute_limits(cs, args, limits\u003dNone):"},{"line_number":2938,"context_line":"    \"\"\"Print a list of absolute limits for a user\"\"\""},{"line_number":2939,"context_line":"    if not limits:"},{"line_number":2940,"context_line":"        limits \u003d cs.limits.get(args.reserved, args.tenant).absolute"},{"line_number":2941,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"9aa53dc9_542a857f","line":2938,"updated":"2015-04-07 22:43:27.000000000","message":"We want to change this to a deprecation note, so people will know to use the new command to get the same functionality.\n\nSee the above example, it would be like \"DEPRECATED, use limits instead.\"","commit_id":"e311e30e75ad9b62ff0cafe84cdfff00ad4c6a0d"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"6db435cd26eb175291d20574045bc7e5b448a03c","unresolved":false,"context_lines":[{"line_number":2999,"context_line":"    utils.print_list(limit_list, columns)"},{"line_number":3000,"context_line":""},{"line_number":3001,"context_line":""},{"line_number":3002,"context_line":"def do_rate_limits(cs, args, limits\u003dNone):"},{"line_number":3003,"context_line":"    \"\"\"Print a list of rate limits for a user\"\"\""},{"line_number":3004,"context_line":"    if not limits:"},{"line_number":3005,"context_line":"        limits \u003d cs.limits.get().rate"}],"source_content_type":"text/x-python","patch_set":14,"id":"9aa53dc9_023296f1","line":3002,"updated":"2015-04-07 14:59:49.000000000","message":"I prefer to not change argument of \"do functions\". Imo, it would be better to create separate function _print rate_limits(limits), witch will be used by do_rate_limits and do_limits","commit_id":"e311e30e75ad9b62ff0cafe84cdfff00ad4c6a0d"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"9ad0959ac9e0b0de61f0a2c657b429a849dbab2e","unresolved":false,"context_lines":[{"line_number":2999,"context_line":"    utils.print_list(limit_list, columns)"},{"line_number":3000,"context_line":""},{"line_number":3001,"context_line":""},{"line_number":3002,"context_line":"def do_rate_limits(cs, args, limits\u003dNone):"},{"line_number":3003,"context_line":"    \"\"\"Print a list of rate limits for a user\"\"\""},{"line_number":3004,"context_line":"    if not limits:"},{"line_number":3005,"context_line":"        limits \u003d cs.limits.get().rate"}],"source_content_type":"text/x-python","patch_set":14,"id":"9aa53dc9_d15fcc3f","line":3002,"in_reply_to":"9aa53dc9_023296f1","updated":"2015-04-07 22:43:27.000000000","message":"I agree. It\u0027s good to reuse code but I\u0027d rather not have the new command do_limits calling the old commands anyway. We want to mark the old commands as deprecated, and then remove them in the future.\n\nI think adding a couple of private functions _print_rate_limits(limits) and _print_absolute_limits(limits) is a good idea, then have the do_*limits functions use them.","commit_id":"e311e30e75ad9b62ff0cafe84cdfff00ad4c6a0d"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"9ad0959ac9e0b0de61f0a2c657b429a849dbab2e","unresolved":false,"context_lines":[{"line_number":3000,"context_line":""},{"line_number":3001,"context_line":""},{"line_number":3002,"context_line":"def do_rate_limits(cs, args, limits\u003dNone):"},{"line_number":3003,"context_line":"    \"\"\"Print a list of rate limits for a user\"\"\""},{"line_number":3004,"context_line":"    if not limits:"},{"line_number":3005,"context_line":"        limits \u003d cs.limits.get().rate"},{"line_number":3006,"context_line":"    columns \u003d [\u0027Verb\u0027, \u0027URI\u0027, \u0027Value\u0027, \u0027Remain\u0027, \u0027Unit\u0027, \u0027Next_Available\u0027]"}],"source_content_type":"text/x-python","patch_set":14,"id":"9aa53dc9_744ea970","line":3003,"updated":"2015-04-07 22:43:27.000000000","message":"Same here, a deprecation message for example \"DEPRECATED, use limits instead.\"","commit_id":"e311e30e75ad9b62ff0cafe84cdfff00ad4c6a0d"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"fac68cb4d7de571a80ba83af7c7a893bb022342f","unresolved":false,"context_lines":[{"line_number":2935,"context_line":"    default\u003dFalse,"},{"line_number":2936,"context_line":"    help\u003d_(\u0027Include reservations count.\u0027))"},{"line_number":2937,"context_line":"def do_absolute_limits(cs, args):"},{"line_number":2938,"context_line":"    \"\"\"DEPRECATED, use limits instead\"\"\""},{"line_number":2939,"context_line":"    limits \u003d cs.limits.get(args.reserved, args.tenant).absolute"},{"line_number":2940,"context_line":"    _print_absolute_limits(cs, args, limits)"},{"line_number":2941,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"dac4157f_3ee70ce6","line":2938,"updated":"2015-04-20 17:03:04.000000000","message":"Since you\u0027re going to need to respin a new patch, I\u0027d like it if you could add a period to the end of this sentence, for consistency with the other docstrings.","commit_id":"9b684e387260d79c89c595e0f741022b729c3734"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"fac68cb4d7de571a80ba83af7c7a893bb022342f","unresolved":false,"context_lines":[{"line_number":2940,"context_line":"    _print_absolute_limits(cs, args, limits)"},{"line_number":2941,"context_line":""},{"line_number":2942,"context_line":""},{"line_number":2943,"context_line":"def _print_absolute_limits(cs, args, limits):"},{"line_number":2944,"context_line":"    \"\"\"prints absolute limits \"\"\""},{"line_number":2945,"context_line":"    class Limit(object):"},{"line_number":2946,"context_line":"        def __init__(self, name, used, max, other):"}],"source_content_type":"text/x-python","patch_set":16,"id":"dac4157f_7e8fc423","line":2943,"updated":"2015-04-20 17:03:04.000000000","message":"This function does not need the \u0027cs\u0027 or \u0027args\u0027 parameters; you can simplify this to just the single parameter \u0027limits\u0027.","commit_id":"9b684e387260d79c89c595e0f741022b729c3734"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"fac68cb4d7de571a80ba83af7c7a893bb022342f","unresolved":false,"context_lines":[{"line_number":2941,"context_line":""},{"line_number":2942,"context_line":""},{"line_number":2943,"context_line":"def _print_absolute_limits(cs, args, limits):"},{"line_number":2944,"context_line":"    \"\"\"prints absolute limits \"\"\""},{"line_number":2945,"context_line":"    class Limit(object):"},{"line_number":2946,"context_line":"        def __init__(self, name, used, max, other):"},{"line_number":2947,"context_line":"            self.name \u003d name"}],"source_content_type":"text/x-python","patch_set":16,"id":"dac4157f_defff032","line":2944,"updated":"2015-04-20 17:03:04.000000000","message":"Make this:\n\n    \"\"\"Prints absolute limits.\"\"\"\n\nNote the capital letter, the period at the end, and the elimination of spaces between the text and the triple-quotes.","commit_id":"9b684e387260d79c89c595e0f741022b729c3734"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"fac68cb4d7de571a80ba83af7c7a893bb022342f","unresolved":false,"context_lines":[{"line_number":3003,"context_line":""},{"line_number":3004,"context_line":""},{"line_number":3005,"context_line":"def do_rate_limits(cs, args):"},{"line_number":3006,"context_line":"    \"\"\"DEPRECATED, use limits instead\"\"\""},{"line_number":3007,"context_line":"    limits \u003d cs.limits.get().rate"},{"line_number":3008,"context_line":"    _print_rate_limits(cs, args, limits)"},{"line_number":3009,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"dac4157f_feb0748d","line":3006,"updated":"2015-04-20 17:03:04.000000000","message":"Again, a period at the end of the sentence.","commit_id":"9b684e387260d79c89c595e0f741022b729c3734"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"fac68cb4d7de571a80ba83af7c7a893bb022342f","unresolved":false,"context_lines":[{"line_number":3008,"context_line":"    _print_rate_limits(cs, args, limits)"},{"line_number":3009,"context_line":""},{"line_number":3010,"context_line":""},{"line_number":3011,"context_line":"def _print_rate_limits(cs, args, limits):"},{"line_number":3012,"context_line":"    \"\"\"print rate limits\"\"\""},{"line_number":3013,"context_line":"    columns \u003d [\u0027Verb\u0027, \u0027URI\u0027, \u0027Value\u0027, \u0027Remain\u0027, \u0027Unit\u0027, \u0027Next_Available\u0027]"},{"line_number":3014,"context_line":"    utils.print_list(limits, columns)"}],"source_content_type":"text/x-python","patch_set":16,"id":"dac4157f_7e63441b","line":3011,"updated":"2015-04-20 17:03:04.000000000","message":"Again, no need to pass \u0027cs\u0027 or \u0027args\u0027 to this function.","commit_id":"9b684e387260d79c89c595e0f741022b729c3734"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"fac68cb4d7de571a80ba83af7c7a893bb022342f","unresolved":false,"context_lines":[{"line_number":3009,"context_line":""},{"line_number":3010,"context_line":""},{"line_number":3011,"context_line":"def _print_rate_limits(cs, args, limits):"},{"line_number":3012,"context_line":"    \"\"\"print rate limits\"\"\""},{"line_number":3013,"context_line":"    columns \u003d [\u0027Verb\u0027, \u0027URI\u0027, \u0027Value\u0027, \u0027Remain\u0027, \u0027Unit\u0027, \u0027Next_Available\u0027]"},{"line_number":3014,"context_line":"    utils.print_list(limits, columns)"},{"line_number":3015,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"dac4157f_be81dc91","line":3012,"updated":"2015-04-20 17:03:04.000000000","message":"Again, suggest:\n\n    \"\"\"Print rate limits.\"\"\"","commit_id":"9b684e387260d79c89c595e0f741022b729c3734"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"fac68cb4d7de571a80ba83af7c7a893bb022342f","unresolved":false,"context_lines":[{"line_number":3028,"context_line":"    default\u003dFalse,"},{"line_number":3029,"context_line":"    help\u003d_(\u0027Include reservations count.\u0027))"},{"line_number":3030,"context_line":"def do_limits(cs, args):"},{"line_number":3031,"context_line":"    \"\"\"Print rate and absolute limits\"\"\""},{"line_number":3032,"context_line":"    limits \u003d cs.limits.get(args.reserved, args.tenant)"},{"line_number":3033,"context_line":"    _print_rate_limits(cs, args, limits.rate)"},{"line_number":3034,"context_line":"    _print_absolute_limits(cs, args, limits.absolute)"}],"source_content_type":"text/x-python","patch_set":16,"id":"dac4157f_7e31040b","line":3031,"updated":"2015-04-20 17:03:04.000000000","message":"Again, please put a period at the end of the sentence…","commit_id":"9b684e387260d79c89c595e0f741022b729c3734"}]}
