)]}'
{"cliff/formatters/table.py":[{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"cb6ca3ff22ecf49733b6b16207513ed7ceb7b7aa","unresolved":false,"context_lines":[{"line_number":53,"context_line":"            x.add_row(first_row)"},{"line_number":54,"context_line":"            for row in data_iter:"},{"line_number":55,"context_line":"                row \u003d list(row)"},{"line_number":56,"context_line":"                if (row[1] and isinstance(row[1], six.string_types)"},{"line_number":57,"context_line":"                        and \u0027\\r\u0027 in row[1]):"},{"line_number":58,"context_line":"                    row[1] \u003d row[1].replace(\u0027\\r\u0027, \u0027\u0027)"},{"line_number":59,"context_line":"                x.add_row(row)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_b7d393d4","line":56,"updated":"2015-07-22 14:08:44.000000000","message":"Why row 1 here?  Is this actually a tuple? Maybe something like \"for a, b in data_iter):\"  I\u0027m not to familiar with this code to know what the other values in the tuple might be.\n\nAlso, do we just want to convert it to a string now since that is going to happen soon anyway?","commit_id":"754eeac54b01609285c64dbf1e9ede3a3c16bac4"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"2209bdf9d38523835cdea1dcead1613eb2566f17","unresolved":false,"context_lines":[{"line_number":53,"context_line":"            x.add_row(first_row)"},{"line_number":54,"context_line":"            for row in data_iter:"},{"line_number":55,"context_line":"                row \u003d list(row)"},{"line_number":56,"context_line":"                if (row[1] and isinstance(row[1], six.string_types)"},{"line_number":57,"context_line":"                        and \u0027\\r\u0027 in row[1]):"},{"line_number":58,"context_line":"                    row[1] \u003d row[1].replace(\u0027\\r\u0027, \u0027\u0027)"},{"line_number":59,"context_line":"                x.add_row(row)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_2653d3e3","line":56,"in_reply_to":"3a50d1a3_b7d393d4","updated":"2015-07-22 15:01:21.000000000","message":"row \u003d (key, value), so list(row)[1] should be value. \n\nlooks good to me to use \u0027for a, b in data_iter:\u0027\n\nNot sure about the last question.","commit_id":"754eeac54b01609285c64dbf1e9ede3a3c16bac4"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"bbad3598fe64d12aeba8b872d66f1440a0de57f3","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            # Now iterate over the data and add the rows."},{"line_number":53,"context_line":"            x.add_row(first_row)"},{"line_number":54,"context_line":"            for key, value in data_iter:"},{"line_number":55,"context_line":"                if (value and isinstance(value, six.string_types)"},{"line_number":56,"context_line":"                        and \u0027\\r\u0027 in value):"},{"line_number":57,"context_line":"                    value \u003d value.replace(\u0027\\r\u0027, \u0027\u0027)"},{"line_number":58,"context_line":"                x.add_row((key, value))"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a50d1a3_dc4bde85","line":55,"updated":"2015-07-22 15:35:54.000000000","message":"My last comment was about this isinstance(value, six.string_types).  It seems like it would be easier to just convert value to a string and run the replace rather than check if it is a string and check if the string contains a carriage return.\n\nMaybe should handle newline as well?","commit_id":"b35718aea548c2fadecc4dac9f5120a61c8cba63"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"2c344410753a6f6b12d32d7429db635682237722","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            # Now iterate over the data and add the rows."},{"line_number":53,"context_line":"            x.add_row(first_row)"},{"line_number":54,"context_line":"            for key, value in data_iter:"},{"line_number":55,"context_line":"                if (value and isinstance(value, six.string_types)"},{"line_number":56,"context_line":"                        and \u0027\\r\u0027 in value):"},{"line_number":57,"context_line":"                    value \u003d value.replace(\u0027\\r\u0027, \u0027\u0027)"},{"line_number":58,"context_line":"                x.add_row((key, value))"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a50d1a3_422da8fc","line":55,"in_reply_to":"3a50d1a3_dc4bde85","updated":"2015-07-22 15:45:17.000000000","message":"do you mean this?\n\nvalue \u003d str(value).replace(\u0027\\r\u0027, \u0027\u0027) if value else value","commit_id":"b35718aea548c2fadecc4dac9f5120a61c8cba63"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"4565aac15b79ef09d8e6042635f251704edcc62d","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            x.add_row(first_row)"},{"line_number":53,"context_line":"            for row in data_iter:"},{"line_number":54,"context_line":"                row \u003d list(row)"},{"line_number":55,"context_line":"                if len(row) \u003e\u003d 2:"},{"line_number":56,"context_line":"                    value \u003d row[1]"},{"line_number":57,"context_line":"                    row[1] \u003d str(value).replace(\u0027\\r\u0027, \u0027\u0027) if value else value"},{"line_number":58,"context_line":"                x.add_row(row)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a50d1a3_4c456015","line":55,"updated":"2015-07-24 15:54:03.000000000","message":"Why is this transformation not done on all cells in the row?","commit_id":"6101d758e404f573cb39788683a9cca45203ed5c"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"254b7ace8aa40bc44b10bd335c1ae923cc533bbc","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            x.add_row(first_row)"},{"line_number":53,"context_line":"            for row in data_iter:"},{"line_number":54,"context_line":"                row \u003d list(row)"},{"line_number":55,"context_line":"                if len(row) \u003e\u003d 2:"},{"line_number":56,"context_line":"                    value \u003d row[1]"},{"line_number":57,"context_line":"                    row[1] \u003d str(value).replace(\u0027\\r\u0027, \u0027\u0027) if value else value"},{"line_number":58,"context_line":"                x.add_row(row)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a50d1a3_2d88abc4","line":55,"in_reply_to":"3a50d1a3_4c456015","updated":"2015-07-28 08:32:14.000000000","message":"Done","commit_id":"6101d758e404f573cb39788683a9cca45203ed5c"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"4565aac15b79ef09d8e6042635f251704edcc62d","unresolved":false,"context_lines":[{"line_number":54,"context_line":"                row \u003d list(row)"},{"line_number":55,"context_line":"                if len(row) \u003e\u003d 2:"},{"line_number":56,"context_line":"                    value \u003d row[1]"},{"line_number":57,"context_line":"                    row[1] \u003d str(value).replace(\u0027\\r\u0027, \u0027\u0027) if value else value"},{"line_number":58,"context_line":"                x.add_row(row)"},{"line_number":59,"context_line":"        formatted \u003d x.get_string(fields\u003dcolumn_names)"},{"line_number":60,"context_line":"        stdout.write(formatted)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a50d1a3_cce3b032","line":57,"range":{"start_line":57,"start_character":54,"end_line":57,"end_character":55},"updated":"2015-07-24 15:54:03.000000000","message":"I don\u0027t think you want to use an empty string. Maybe a single space? Unless you\u0027re seeing data with both \\n and \\r, in which case maybe just replace \"\\n\\r\" with \"\\n\" and \"\\r\" with a single space.","commit_id":"6101d758e404f573cb39788683a9cca45203ed5c"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"254b7ace8aa40bc44b10bd335c1ae923cc533bbc","unresolved":false,"context_lines":[{"line_number":54,"context_line":"                row \u003d list(row)"},{"line_number":55,"context_line":"                if len(row) \u003e\u003d 2:"},{"line_number":56,"context_line":"                    value \u003d row[1]"},{"line_number":57,"context_line":"                    row[1] \u003d str(value).replace(\u0027\\r\u0027, \u0027\u0027) if value else value"},{"line_number":58,"context_line":"                x.add_row(row)"},{"line_number":59,"context_line":"        formatted \u003d x.get_string(fields\u003dcolumn_names)"},{"line_number":60,"context_line":"        stdout.write(formatted)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a50d1a3_ed8de3d3","line":57,"in_reply_to":"3a50d1a3_cce3b032","updated":"2015-07-28 08:32:14.000000000","message":"Done","commit_id":"6101d758e404f573cb39788683a9cca45203ed5c"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"4565aac15b79ef09d8e6042635f251704edcc62d","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        x.align[\u0027Field\u0027] \u003d \u0027l\u0027"},{"line_number":73,"context_line":"        x.align[\u0027Value\u0027] \u003d \u0027l\u0027"},{"line_number":74,"context_line":"        for name, value in zip(column_names, data):"},{"line_number":75,"context_line":"            value \u003d str(value).replace(\u0027\\r\u0027, \u0027\u0027) if value else value"},{"line_number":76,"context_line":"            x.add_row((name, value))"},{"line_number":77,"context_line":"        formatted \u003d x.get_string(fields\u003d(\u0027Field\u0027, \u0027Value\u0027))"},{"line_number":78,"context_line":"        stdout.write(formatted)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a50d1a3_ec71cc78","line":75,"updated":"2015-07-24 15:54:03.000000000","message":"Same comment here about what replacement is actually made.","commit_id":"6101d758e404f573cb39788683a9cca45203ed5c"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"254b7ace8aa40bc44b10bd335c1ae923cc533bbc","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        x.align[\u0027Field\u0027] \u003d \u0027l\u0027"},{"line_number":73,"context_line":"        x.align[\u0027Value\u0027] \u003d \u0027l\u0027"},{"line_number":74,"context_line":"        for name, value in zip(column_names, data):"},{"line_number":75,"context_line":"            value \u003d str(value).replace(\u0027\\r\u0027, \u0027\u0027) if value else value"},{"line_number":76,"context_line":"            x.add_row((name, value))"},{"line_number":77,"context_line":"        formatted \u003d x.get_string(fields\u003d(\u0027Field\u0027, \u0027Value\u0027))"},{"line_number":78,"context_line":"        stdout.write(formatted)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a50d1a3_4db3b79a","line":75,"in_reply_to":"3a50d1a3_ec71cc78","updated":"2015-07-28 08:32:14.000000000","message":"Done","commit_id":"6101d758e404f573cb39788683a9cca45203ed5c"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"e47d1820776c243cde30f123fd589ca60c78d9b6","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            # Now iterate over the data and add the rows."},{"line_number":53,"context_line":"            x.add_row(first_row)"},{"line_number":54,"context_line":"            for row in data_iter:"},{"line_number":55,"context_line":"                row \u003d [r.replace(\u0027\\n\\r\u0027, \u0027\\n\u0027).replace(\u0027\\r\u0027, \u0027 \u0027)"},{"line_number":56,"context_line":"                       if isinstance(r, six.string_types)else r"},{"line_number":57,"context_line":"                       for r in list(row)]"},{"line_number":58,"context_line":"                x.add_row(row)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa1b9901_a81aee6c","line":55,"updated":"2015-08-17 20:10:47.000000000","message":"I though the DOS style line separated was CR LF, not LF CR.","commit_id":"f5f0cfa72a4949c0623c2ac9e59aeaf44e70c2df"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"7b4b1f89f952f5bb3ab76a01180e1a6197ad1bb7","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            # Now iterate over the data and add the rows."},{"line_number":53,"context_line":"            x.add_row(first_row)"},{"line_number":54,"context_line":"            for row in data_iter:"},{"line_number":55,"context_line":"                row \u003d [r.replace(\u0027\\n\\r\u0027, \u0027\\n\u0027).replace(\u0027\\r\u0027, \u0027 \u0027)"},{"line_number":56,"context_line":"                       if isinstance(r, six.string_types)else r"},{"line_number":57,"context_line":"                       for r in list(row)]"},{"line_number":58,"context_line":"                x.add_row(row)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa1b9901_904dc874","line":55,"in_reply_to":"fa1b9901_a81aee6c","updated":"2015-08-18 01:22:29.000000000","message":"Done","commit_id":"f5f0cfa72a4949c0623c2ac9e59aeaf44e70c2df"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"0c5bf809d09ea246db48467f0dc865d31f5c8fbf","unresolved":false,"context_lines":[{"line_number":53,"context_line":"            x.add_row(first_row)"},{"line_number":54,"context_line":"            for row in data_iter:"},{"line_number":55,"context_line":"                row \u003d [r.replace(\u0027\\n\\r\u0027, \u0027\\n\u0027).replace(\u0027\\r\u0027, \u0027 \u0027)"},{"line_number":56,"context_line":"                       if isinstance(r, six.string_types)else r"},{"line_number":57,"context_line":"                       for r in list(row)]"},{"line_number":58,"context_line":"                x.add_row(row)"},{"line_number":59,"context_line":"        formatted \u003d x.get_string(fields\u003dcolumn_names)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa1b9901_22828053","line":56,"updated":"2015-08-17 18:03:29.000000000","message":"nit, there\u0027s a space missing before \"else\" here","commit_id":"f5f0cfa72a4949c0623c2ac9e59aeaf44e70c2df"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"7b4b1f89f952f5bb3ab76a01180e1a6197ad1bb7","unresolved":false,"context_lines":[{"line_number":53,"context_line":"            x.add_row(first_row)"},{"line_number":54,"context_line":"            for row in data_iter:"},{"line_number":55,"context_line":"                row \u003d [r.replace(\u0027\\n\\r\u0027, \u0027\\n\u0027).replace(\u0027\\r\u0027, \u0027 \u0027)"},{"line_number":56,"context_line":"                       if isinstance(r, six.string_types)else r"},{"line_number":57,"context_line":"                       for r in list(row)]"},{"line_number":58,"context_line":"                x.add_row(row)"},{"line_number":59,"context_line":"        formatted \u003d x.get_string(fields\u003dcolumn_names)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa1b9901_b0524c12","line":56,"in_reply_to":"fa1b9901_22828053","updated":"2015-08-18 01:22:29.000000000","message":"Done","commit_id":"f5f0cfa72a4949c0623c2ac9e59aeaf44e70c2df"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"0c5bf809d09ea246db48467f0dc865d31f5c8fbf","unresolved":false,"context_lines":[{"line_number":54,"context_line":"            for row in data_iter:"},{"line_number":55,"context_line":"                row \u003d [r.replace(\u0027\\n\\r\u0027, \u0027\\n\u0027).replace(\u0027\\r\u0027, \u0027 \u0027)"},{"line_number":56,"context_line":"                       if isinstance(r, six.string_types)else r"},{"line_number":57,"context_line":"                       for r in list(row)]"},{"line_number":58,"context_line":"                x.add_row(row)"},{"line_number":59,"context_line":"        formatted \u003d x.get_string(fields\u003dcolumn_names)"},{"line_number":60,"context_line":"        stdout.write(formatted)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa1b9901_42ee9423","line":57,"updated":"2015-08-17 18:03:29.000000000","message":"We\u0027re already assuming row is iterable, so you don\u0027t need to convert it to a list here.","commit_id":"f5f0cfa72a4949c0623c2ac9e59aeaf44e70c2df"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"7b4b1f89f952f5bb3ab76a01180e1a6197ad1bb7","unresolved":false,"context_lines":[{"line_number":54,"context_line":"            for row in data_iter:"},{"line_number":55,"context_line":"                row \u003d [r.replace(\u0027\\n\\r\u0027, \u0027\\n\u0027).replace(\u0027\\r\u0027, \u0027 \u0027)"},{"line_number":56,"context_line":"                       if isinstance(r, six.string_types)else r"},{"line_number":57,"context_line":"                       for r in list(row)]"},{"line_number":58,"context_line":"                x.add_row(row)"},{"line_number":59,"context_line":"        formatted \u003d x.get_string(fields\u003dcolumn_names)"},{"line_number":60,"context_line":"        stdout.write(formatted)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa1b9901_705cb425","line":57,"in_reply_to":"fa1b9901_42ee9423","updated":"2015-08-18 01:22:29.000000000","message":"Done","commit_id":"f5f0cfa72a4949c0623c2ac9e59aeaf44e70c2df"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"e47d1820776c243cde30f123fd589ca60c78d9b6","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        x.align[\u0027Field\u0027] \u003d \u0027l\u0027"},{"line_number":73,"context_line":"        x.align[\u0027Value\u0027] \u003d \u0027l\u0027"},{"line_number":74,"context_line":"        for name, value in zip(column_names, data):"},{"line_number":75,"context_line":"            value \u003d (value.replace(\u0027\\n\\r\u0027, \u0027\\n\u0027).replace(\u0027\\r\u0027, \u0027 \u0027) if"},{"line_number":76,"context_line":"                     isinstance(value, six.string_types) else value)"},{"line_number":77,"context_line":"            x.add_row((name, value))"},{"line_number":78,"context_line":"        formatted \u003d x.get_string(fields\u003d(\u0027Field\u0027, \u0027Value\u0027))"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa1b9901_0820ba9a","line":75,"updated":"2015-08-17 20:10:47.000000000","message":"I *think* you mean \\r\\n that is the way a typewriter works :)","commit_id":"f5f0cfa72a4949c0623c2ac9e59aeaf44e70c2df"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"7b4b1f89f952f5bb3ab76a01180e1a6197ad1bb7","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        x.align[\u0027Field\u0027] \u003d \u0027l\u0027"},{"line_number":73,"context_line":"        x.align[\u0027Value\u0027] \u003d \u0027l\u0027"},{"line_number":74,"context_line":"        for name, value in zip(column_names, data):"},{"line_number":75,"context_line":"            value \u003d (value.replace(\u0027\\n\\r\u0027, \u0027\\n\u0027).replace(\u0027\\r\u0027, \u0027 \u0027) if"},{"line_number":76,"context_line":"                     isinstance(value, six.string_types) else value)"},{"line_number":77,"context_line":"            x.add_row((name, value))"},{"line_number":78,"context_line":"        formatted \u003d x.get_string(fields\u003d(\u0027Field\u0027, \u0027Value\u0027))"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa1b9901_1042183f","line":75,"in_reply_to":"fa1b9901_0820ba9a","updated":"2015-08-18 01:22:29.000000000","message":"Done","commit_id":"f5f0cfa72a4949c0623c2ac9e59aeaf44e70c2df"}],"cliff/tests/test_formatters_table.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"9246bd33f15ba8da6c8dcb00f0e4ef5fc39d429e","unresolved":false,"context_lines":[{"line_number":20,"context_line":"               \u0027| b     | B             |\\n\u0027\\"},{"line_number":21,"context_line":"               \u0027| c     | C             |\\n\u0027\\"},{"line_number":22,"context_line":"               \u0027| d     | test carriage |\\n\u0027\\"},{"line_number":23,"context_line":"               \u0027|       |  return       |\\n\u0027\\"},{"line_number":24,"context_line":"               \u0027+-------+---------------+\\n\u0027"},{"line_number":25,"context_line":"    output \u003d StringIO()"},{"line_number":26,"context_line":"    parsed_args \u003d args()"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a50d1a3_9d7afbb8","line":23,"updated":"2015-07-29 14:36:16.000000000","message":"This is why I asked about whether you had data with \\n\\r or just \\r.\n\nI think what we really want to do is replace \"\\n\\r\" with \"\\n\". We could possibly then also look for \"\\r\" and replace it with a single space. But right now where the user might reasonably expect the second line to be left justified in the column we are adding a space and indenting the value.","commit_id":"508d29f9353c94c242f7067fa599e961cfc56aef"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"357c798e7e2e4900332726542e69b9d6942ffd24","unresolved":false,"context_lines":[{"line_number":20,"context_line":"               \u0027| b     | B             |\\n\u0027\\"},{"line_number":21,"context_line":"               \u0027| c     | C             |\\n\u0027\\"},{"line_number":22,"context_line":"               \u0027| d     | test carriage |\\n\u0027\\"},{"line_number":23,"context_line":"               \u0027|       |  return       |\\n\u0027\\"},{"line_number":24,"context_line":"               \u0027+-------+---------------+\\n\u0027"},{"line_number":25,"context_line":"    output \u003d StringIO()"},{"line_number":26,"context_line":"    parsed_args \u003d args()"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a50d1a3_2bf02591","line":23,"in_reply_to":"3a50d1a3_9d7afbb8","updated":"2015-07-30 01:11:33.000000000","message":"Done","commit_id":"508d29f9353c94c242f7067fa599e961cfc56aef"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"0c5bf809d09ea246db48467f0dc865d31f5c8fbf","unresolved":false,"context_lines":[{"line_number":13,"context_line":"    sf \u003d table.TableFormatter()"},{"line_number":14,"context_line":"    c \u003d (\u0027a\u0027, \u0027b\u0027, \u0027c\u0027, \u0027d\u0027)"},{"line_number":15,"context_line":"    d \u003d (\u0027A\u0027, \u0027B\u0027, \u0027C\u0027, \u0027test\\rcarriage\\n\\rreturn\u0027)"},{"line_number":16,"context_line":"    expected \u003d u\u0027+-------+---------------+\\n\u0027\\"},{"line_number":17,"context_line":"               \u0027| Field | Value         |\\n\u0027\\"},{"line_number":18,"context_line":"               \u0027+-------+---------------+\\n\u0027\\"},{"line_number":19,"context_line":"               \u0027| a     | A             |\\n\u0027\\"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa1b9901_e20ec8e4","line":16,"updated":"2015-08-17 18:03:29.000000000","message":"These literal blocks could be handled using textwrap.dedent() but otherwise they look ok.","commit_id":"f5f0cfa72a4949c0623c2ac9e59aeaf44e70c2df"}]}
