)]}'
{"novaclient/utils.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"b203fede6a2b4fc820bd53d2e75966fd64cd026e","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"def _word_wrap(string, max_length\u003d0):"},{"line_number":171,"context_line":"    \"\"\"wrap long strings to be no longer then max_length\"\"\""},{"line_number":172,"context_line":"    if max_length \u003c\u003d 0:"},{"line_number":173,"context_line":"        return string"},{"line_number":174,"context_line":"    return \u0027\\n\u0027.join([string[i:i + max_length] for i in"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAANH%2F%2F8ho%3D","line":171,"updated":"2013-03-01 23:33:45.000000000","message":"femtonit: s/then/than/.  Also, consider s/wrap/Wrap/","commit_id":"f69ef4d494c673047feb87f6471e69ad76c8f2f1"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"cc18a42f448697928c3ed904a3730f8f5c3d2f02","unresolved":false,"context_lines":[{"line_number":172,"context_line":"    if max_length \u003c\u003d 0:"},{"line_number":173,"context_line":"        return string"},{"line_number":174,"context_line":"    return \u0027\\n\u0027.join([string[i:i + max_length] for i in"},{"line_number":175,"context_line":"                     range(0, len(string), max_length)])"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"def print_dict(d, dict_property\u003d\"Property\", wrap\u003d0):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAN3%2F%2F4YY%3D","line":175,"updated":"2013-03-07 19:38:46.000000000","message":"Why not use textwrap.wrap?","commit_id":"b0c62bbd6f9a73d32b0e650491e7273d77bfd953"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"fa6c4f48bc81d8aaaafa470103d1bab62ae7dcaf","unresolved":false,"context_lines":[{"line_number":165,"context_line":"    if sortby is not None:"},{"line_number":166,"context_line":"        print(pt.get_string(sortby\u003dsortby))"},{"line_number":167,"context_line":"    else:"},{"line_number":168,"context_line":"        print(pt.get_string())"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"def print_dict(d, dict_property\u003d\"Property\", wrap\u003d0):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAN3%2F%2F3Io%3D","line":168,"updated":"2013-03-08 14:20:33.000000000","message":"from __future__ import print_function","commit_id":"21dca44202a3f0899a997ee8b1678017052c2731"}],"novaclient/v1_1/shell.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"b203fede6a2b4fc820bd53d2e75966fd64cd026e","unresolved":false,"context_lines":[{"line_number":2601,"context_line":"           help\u003d\u0027wrap PKI tokens to a specified length, or 0 to disable\u0027)"},{"line_number":2602,"context_line":"def do_credentials(cs, _args):"},{"line_number":2603,"context_line":"    \"\"\"Show user credentials returned from auth\"\"\""},{"line_number":2604,"context_line":"    print _args.wrap"},{"line_number":2605,"context_line":"    ensure_service_catalog_present(cs)"},{"line_number":2606,"context_line":"    catalog \u003d cs.client.service_catalog.catalog"},{"line_number":2607,"context_line":"    utils.print_dict(catalog[\u0027access\u0027][\u0027user\u0027], \"User Credentials\","}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAANH%2F%2F8hc%3D","line":2604,"updated":"2013-03-01 23:33:45.000000000","message":"Debugging code accidentally left in?","commit_id":"f69ef4d494c673047feb87f6471e69ad76c8f2f1"},{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"e96d898c02c315388a5a49ac4ab792453ab6758e","unresolved":false,"context_lines":[{"line_number":2597,"context_line":"        utils.print_dict(e[\u0027endpoints\u0027][0], e[\u0027name\u0027])"},{"line_number":2598,"context_line":""},{"line_number":2599,"context_line":""},{"line_number":2600,"context_line":"@utils.arg(\u0027--wrap\u0027, dest\u003d\u0027wrap\u0027, metavar\u003d\u0027\u003cinteger\u003e\u0027, default\u003d0,"},{"line_number":2601,"context_line":"           help\u003d\u0027wrap PKI tokens to a specified length, or 0 to disable\u0027)"},{"line_number":2602,"context_line":"def do_credentials(cs, _args):"},{"line_number":2603,"context_line":"    \"\"\"Show user credentials returned from auth\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAN3%2F%2F4%2Bg%3D","line":2600,"updated":"2013-03-07 14:31:17.000000000","message":"Can we default this to 80?  I tested this out and it works great.  I think the output is so horrendous and useless without this option that I think we should make it the default since PKI tokens are also the default now.  The output won\u0027t look any different if using UUID tokens.","commit_id":"b0c62bbd6f9a73d32b0e650491e7273d77bfd953"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"89db10ba7780b61f3e114dab244be009c07db175","unresolved":false,"context_lines":[{"line_number":2597,"context_line":"        utils.print_dict(e[\u0027endpoints\u0027][0], e[\u0027name\u0027])"},{"line_number":2598,"context_line":""},{"line_number":2599,"context_line":""},{"line_number":2600,"context_line":"@utils.arg(\u0027--wrap\u0027, dest\u003d\u0027wrap\u0027, metavar\u003d\u0027\u003cinteger\u003e\u0027, default\u003d0,"},{"line_number":2601,"context_line":"           help\u003d\u0027wrap PKI tokens to a specified length, or 0 to disable\u0027)"},{"line_number":2602,"context_line":"def do_credentials(cs, _args):"},{"line_number":2603,"context_line":"    \"\"\"Show user credentials returned from auth\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAN3%2F%2F4u4%3D","line":2600,"in_reply_to":"AAAAN3%2F%2F4%2Bg%3D","updated":"2013-03-07 16:39:25.000000000","message":"I have no problem with that idea, but I suggest a lower value; IIRC, the wrapping does not take into account the table printing overhead, and I would like the table to fit nicely on an 80 column terminal…","commit_id":"b0c62bbd6f9a73d32b0e650491e7273d77bfd953"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"9f37a8af1e850eaeff303da340684a6ed2bd18bf","unresolved":false,"context_lines":[{"line_number":2597,"context_line":"        utils.print_dict(e[\u0027endpoints\u0027][0], e[\u0027name\u0027])"},{"line_number":2598,"context_line":""},{"line_number":2599,"context_line":""},{"line_number":2600,"context_line":"@utils.arg(\u0027--wrap\u0027, dest\u003d\u0027wrap\u0027, metavar\u003d\u0027\u003cinteger\u003e\u0027, default\u003d0,"},{"line_number":2601,"context_line":"           help\u003d\u0027wrap PKI tokens to a specified length, or 0 to disable\u0027)"},{"line_number":2602,"context_line":"def do_credentials(cs, _args):"},{"line_number":2603,"context_line":"    \"\"\"Show user credentials returned from auth\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAN3%2F%2F4QY%3D","line":2600,"in_reply_to":"AAAAN3%2F%2F4cI%3D","updated":"2013-03-07 20:49:44.000000000","message":"Well, I figure there\u0027s always a call for being able to write some things in the shell.  I\u0027m really just suggesting --porcelain for that kind of case, though; making the wrapping be default makes sense…","commit_id":"b0c62bbd6f9a73d32b0e650491e7273d77bfd953"},{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"e315273d822f49aeb2e7ca24558623aff36f79e3","unresolved":false,"context_lines":[{"line_number":2597,"context_line":"        utils.print_dict(e[\u0027endpoints\u0027][0], e[\u0027name\u0027])"},{"line_number":2598,"context_line":""},{"line_number":2599,"context_line":""},{"line_number":2600,"context_line":"@utils.arg(\u0027--wrap\u0027, dest\u003d\u0027wrap\u0027, metavar\u003d\u0027\u003cinteger\u003e\u0027, default\u003d0,"},{"line_number":2601,"context_line":"           help\u003d\u0027wrap PKI tokens to a specified length, or 0 to disable\u0027)"},{"line_number":2602,"context_line":"def do_credentials(cs, _args):"},{"line_number":2603,"context_line":"    \"\"\"Show user credentials returned from auth\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAN3%2F%2F4cI%3D","line":2600,"in_reply_to":"AAAAN3%2F%2F4gA%3D","updated":"2013-03-07 19:09:02.000000000","message":"Good call on \u003c 80, that was my intention, I just didn\u0027t think it through.\n\nIs machine readability of this seriously a concern?  IMO, writing a program that parses the output of these clients is just asking for trouble.  There\u0027s a real API for a reason.  :-)","commit_id":"b0c62bbd6f9a73d32b0e650491e7273d77bfd953"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"3510d4197955eea6dfe9b13eb9495b9c5634966c","unresolved":false,"context_lines":[{"line_number":2597,"context_line":"        utils.print_dict(e[\u0027endpoints\u0027][0], e[\u0027name\u0027])"},{"line_number":2598,"context_line":""},{"line_number":2599,"context_line":""},{"line_number":2600,"context_line":"@utils.arg(\u0027--wrap\u0027, dest\u003d\u0027wrap\u0027, metavar\u003d\u0027\u003cinteger\u003e\u0027, default\u003d0,"},{"line_number":2601,"context_line":"           help\u003d\u0027wrap PKI tokens to a specified length, or 0 to disable\u0027)"},{"line_number":2602,"context_line":"def do_credentials(cs, _args):"},{"line_number":2603,"context_line":"    \"\"\"Show user credentials returned from auth\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAN3%2F%2F4gA%3D","line":2600,"in_reply_to":"AAAAN3%2F%2F4go%3D","updated":"2013-03-07 18:18:14.000000000","message":"That makes me wonder if perhaps we should blueprint a long-term plan to add something akin to --porcelain to the clients?","commit_id":"b0c62bbd6f9a73d32b0e650491e7273d77bfd953"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"88ce309b47b654dbbb5408e597d27e42f0329d91","unresolved":false,"context_lines":[{"line_number":2597,"context_line":"        utils.print_dict(e[\u0027endpoints\u0027][0], e[\u0027name\u0027])"},{"line_number":2598,"context_line":""},{"line_number":2599,"context_line":""},{"line_number":2600,"context_line":"@utils.arg(\u0027--wrap\u0027, dest\u003d\u0027wrap\u0027, metavar\u003d\u0027\u003cinteger\u003e\u0027, default\u003d0,"},{"line_number":2601,"context_line":"           help\u003d\u0027wrap PKI tokens to a specified length, or 0 to disable\u0027)"},{"line_number":2602,"context_line":"def do_credentials(cs, _args):"},{"line_number":2603,"context_line":"    \"\"\"Show user credentials returned from auth\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAN3%2F%2F4go%3D","line":2600,"in_reply_to":"AAAAN3%2F%2F4u4%3D","updated":"2013-03-07 18:14:23.000000000","message":"We had this same discussion in the keystone client (https://review.openstack.org/13430) and the conclusion was to disable wrap by default in order to preserve machine readability (for scripts)","commit_id":"b0c62bbd6f9a73d32b0e650491e7273d77bfd953"},{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"6f7bd7973708d93a9077b41d5b41820584d6b156","unresolved":false,"context_lines":[{"line_number":2597,"context_line":"        utils.print_dict(e[\u0027endpoints\u0027][0], e[\u0027name\u0027])"},{"line_number":2598,"context_line":""},{"line_number":2599,"context_line":""},{"line_number":2600,"context_line":"@utils.arg(\u0027--wrap\u0027, dest\u003d\u0027wrap\u0027, metavar\u003d\u0027\u003cinteger\u003e\u0027, default\u003d72,"},{"line_number":2601,"context_line":"           help\u003d\u0027wrap PKI tokens to a specified length, or 0 to disable\u0027)"},{"line_number":2602,"context_line":"def do_credentials(cs, _args):"},{"line_number":2603,"context_line":"    \"\"\"Show user credentials returned from auth\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAN3%2F%2F34o%3D","line":2600,"updated":"2013-03-08 00:48:56.000000000","message":"as discussed on irc, needs to be 64 or lower to fit in an 80 char terminal","commit_id":"aa285e1f37a194674dbc7166b1dd6d2ee3777a9c"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"fa6c4f48bc81d8aaaafa470103d1bab62ae7dcaf","unresolved":false,"context_lines":[{"line_number":357,"context_line":"        if status in final_ok_states:"},{"line_number":358,"context_line":"            if not silent:"},{"line_number":359,"context_line":"                print_progress(100)"},{"line_number":360,"context_line":"                print(\"\\nFinished\")"},{"line_number":361,"context_line":"            break"},{"line_number":362,"context_line":"        elif status \u003d\u003d \"error\":"},{"line_number":363,"context_line":"            if not silent:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAN3%2F%2F3I8%3D","line":360,"updated":"2013-03-08 14:20:33.000000000","message":"Are you trying to be Python 3 compatible with print()?  In that case you need from __future__ import print_function up top.  Otherwise you\u0027re just wrapping the argument in parentheses, which sometimes turns it into a tuple, which means you\u0027ll sometimes get extra parentheses and commas in your output.","commit_id":"21dca44202a3f0899a997ee8b1678017052c2731"},{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"88191d7add9c3761f1a370ca457d0364bea2e1f8","unresolved":false,"context_lines":[{"line_number":357,"context_line":"        if status in final_ok_states:"},{"line_number":358,"context_line":"            if not silent:"},{"line_number":359,"context_line":"                print_progress(100)"},{"line_number":360,"context_line":"                print(\"\\nFinished\")"},{"line_number":361,"context_line":"            break"},{"line_number":362,"context_line":"        elif status \u003d\u003d \"error\":"},{"line_number":363,"context_line":"            if not silent:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAN3%2F%2F1Y0%3D","line":360,"in_reply_to":"AAAAN3%2F%2F3I8%3D","updated":"2013-03-10 15:06:01.000000000","message":"That code isn\u0027t changed in this patch, though","commit_id":"21dca44202a3f0899a997ee8b1678017052c2731"}]}
