)]}'
{"tools/hacking.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"825f2cb51e29ebdf0550ed3250a737d9847cb020","unresolved":false,"context_lines":[{"line_number":368,"context_line":"    N901 import os\\r\\nimport sys"},{"line_number":369,"context_line":"    \"\"\""},{"line_number":370,"context_line":"    pos \u003d physical_line.find(\u0027\\r\u0027)"},{"line_number":371,"context_line":"    if pos !\u003d -1 and (pos \u003d\u003d 0 or pos \u003d\u003d (len(physical_line) - 2)):"},{"line_number":372,"context_line":"        return (pos, \"N901: \\\\r not allowed in code\")"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FjG8%3D","line":371,"updated":"2013-01-16 14:45:33.000000000","message":"Is it not enough to just do:\n\nif \"\\r\" in physical_line:\n  fail()\n\n?","commit_id":"a3fb48e40e5f9c94caa0844b2fa63ac09b557fa5"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"d646720b75a75176466c63c32e1088f68e89c99c","unresolved":false,"context_lines":[{"line_number":368,"context_line":"    N901 import os\\r\\nimport sys"},{"line_number":369,"context_line":"    \"\"\""},{"line_number":370,"context_line":"    pos \u003d physical_line.find(\u0027\\r\u0027)"},{"line_number":371,"context_line":"    if pos !\u003d -1 and (pos \u003d\u003d 0 or pos \u003d\u003d (len(physical_line) - 2)):"},{"line_number":372,"context_line":"        return (pos, \"N901: \\\\r not allowed in code\")"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FipM%3D","line":371,"in_reply_to":"AAAAM3%2F%2Fi6g%3D","updated":"2013-01-16 18:16:27.000000000","message":"the way physical lines are processed, the pos \u003d\u003d (len(physical_line - 2)) does that. I can remove the pos \u003d\u003d 0.","commit_id":"a3fb48e40e5f9c94caa0844b2fa63ac09b557fa5"},{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"b7841b092de5ed27a21619c7c484a0f4ac9d461c","unresolved":false,"context_lines":[{"line_number":368,"context_line":"    N901 import os\\r\\nimport sys"},{"line_number":369,"context_line":"    \"\"\""},{"line_number":370,"context_line":"    pos \u003d physical_line.find(\u0027\\r\u0027)"},{"line_number":371,"context_line":"    if pos !\u003d -1 and (pos \u003d\u003d 0 or pos \u003d\u003d (len(physical_line) - 2)):"},{"line_number":372,"context_line":"        return (pos, \"N901: \\\\r not allowed in code\")"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2Fi6g%3D","line":371,"in_reply_to":"AAAAM3%2F%2FjB4%3D","updated":"2013-01-16 16:21:05.000000000","message":"Should this be more paranoid and only raise a failure if the \\r is followed by \\n?","commit_id":"a3fb48e40e5f9c94caa0844b2fa63ac09b557fa5"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"4470e0df0dcce8144a9fb232c06db80e9c18d5e6","unresolved":false,"context_lines":[{"line_number":368,"context_line":"    N901 import os\\r\\nimport sys"},{"line_number":369,"context_line":"    \"\"\""},{"line_number":370,"context_line":"    pos \u003d physical_line.find(\u0027\\r\u0027)"},{"line_number":371,"context_line":"    if pos !\u003d -1 and (pos \u003d\u003d 0 or pos \u003d\u003d (len(physical_line) - 2)):"},{"line_number":372,"context_line":"        return (pos, \"N901: \\\\r not allowed in code\")"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FjB4%3D","line":371,"in_reply_to":"AAAAM3%2F%2FjG8%3D","updated":"2013-01-16 15:25:02.000000000","message":"there may be reasons why templates (inline docstrings), or protocols include them. So ensuring it\u0027s either windows style (last char on line), or the inverted case (\\r on the first char) is really required.","commit_id":"a3fb48e40e5f9c94caa0844b2fa63ac09b557fa5"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"aeb5db7465b96d8c4f6fec9a48df02bc0ff20d29","unresolved":false,"context_lines":[{"line_number":363,"context_line":"    r\"\"\"Check that we only use newlines not cariage returns."},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"    Okay: import os\\nimport sys"},{"line_number":366,"context_line":"    # pep8 doesn\u0027t yet replace \\r in strings, will work on an"},{"line_number":367,"context_line":"    # upstream fix"},{"line_number":368,"context_line":"    N901 import os\\r\\nimport sys"},{"line_number":369,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2Fh4s%3D","line":366,"updated":"2013-01-17 05:01:26.000000000","message":"heh","commit_id":"6556b8650f11ceebe0c59fe88e6c6bdf65e439b5"}]}
