)]}'
{"tools/hacking.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"2c881c1a6e00bde9293346ddc39534acb1630869","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"def is_import_exception(mod):"},{"line_number":43,"context_line":"    return mod in IMPORT_EXCEPTIONS or \\"},{"line_number":44,"context_line":"        any(mod.startswith(m + \u0027.\u0027) for m in IMPORT_EXCEPTIONS)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAE3%2F%2F%2FmI%3D","line":43,"updated":"2012-03-12 15:20:13.000000000","message":"Let\u0027s surround this expression in parentheses so we can get rid of this backslash.","commit_id":"a08741a749092c3b48aa405170da9d1360df6fe0"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"2c881c1a6e00bde9293346ddc39534acb1630869","unresolved":false,"context_lines":[{"line_number":89,"context_line":"    pos \u003d logical_line.find(\u0027,\u0027)"},{"line_number":90,"context_line":"    parts \u003d logical_line.split()"},{"line_number":91,"context_line":"    if pos \u003e -1 and (parts[0] \u003d\u003d \"import\" or"},{"line_number":92,"context_line":"       parts[0] \u003d\u003d \"from\" and parts[2] \u003d\u003d \"import\") and \\"},{"line_number":93,"context_line":"       not is_import_exception(parts[1]):"},{"line_number":94,"context_line":"        return pos, \"NOVA N301: one import per line\""},{"line_number":95,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAE3%2F%2F%2FmE%3D","line":92,"updated":"2012-03-12 15:20:13.000000000","message":"Let\u0027s surround this entire expression in parentheses so we can lose the backslash.","commit_id":"a08741a749092c3b48aa405170da9d1360df6fe0"}]}
