)]}'
{"tools/hacking.py":[{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"0c6ed970829fce521405a195c997051e8a514f9c","unresolved":false,"context_lines":[{"line_number":261,"context_line":""},{"line_number":262,"context_line":"def nova_import_alphabetical(logical_line, blank_lines, previous_logical,"},{"line_number":263,"context_line":"                             indent_level, previous_indent_level):"},{"line_number":264,"context_line":"    r\"\"\""},{"line_number":265,"context_line":"    Check for imports in alphabetical order."},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"    nova HACKING guide recommendation for imports:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2Fw%2F4%3D","line":264,"updated":"2013-01-07 02:24:26.000000000","message":"Whatfore is this \"r\"?","commit_id":"05f1b63ec0847d8ddd8e78f84f83b0a85074b39b"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"f5a9f6e3b99dff5a5f39336b45a1afffab92ce00","unresolved":false,"context_lines":[{"line_number":261,"context_line":""},{"line_number":262,"context_line":"def nova_import_alphabetical(logical_line, blank_lines, previous_logical,"},{"line_number":263,"context_line":"                             indent_level, previous_indent_level):"},{"line_number":264,"context_line":"    r\"\"\""},{"line_number":265,"context_line":"    Check for imports in alphabetical order."},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"    nova HACKING guide recommendation for imports:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2Fw%2FU%3D","line":264,"in_reply_to":"AAAAM3%2F%2Fw%2F4%3D","updated":"2013-01-07 02:27:13.000000000","message":"that lets you put interpretted newlines into the docstring, you\u0027ll see it in the pep8.py as well","commit_id":"05f1b63ec0847d8ddd8e78f84f83b0a85074b39b"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"0c6ed970829fce521405a195c997051e8a514f9c","unresolved":false,"context_lines":[{"line_number":332,"context_line":""},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"def nova_docstring_multiline_end(physical_line):"},{"line_number":335,"context_line":"    r\"\"\"Check multi line docstring end."},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"    nova HACKING guide recommendation for docstring:"},{"line_number":338,"context_line":"    Docstring should end on a new line"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2Fw%2F0%3D","line":335,"updated":"2013-01-07 02:24:26.000000000","message":"Ditto","commit_id":"05f1b63ec0847d8ddd8e78f84f83b0a85074b39b"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"74e5dd2aef46d2623eecae0f349308b5c53a834b","unresolved":false,"context_lines":[{"line_number":349,"context_line":"    Okay: \u0027\u0027\u0027\\nfoo\\nbar\\n\u0027\u0027\u0027"},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"    # This test is not triggered, don\u0027t think it\u0027s right, removing"},{"line_number":352,"context_line":"    # the color prevents it from running"},{"line_number":353,"context_line":"    N403 \u0027\u0027\u0027\\nfoo\\nbar\\n    \u0027\u0027\u0027 \\n\\n"},{"line_number":354,"context_line":"    \"\"\""},{"line_number":355,"context_line":"    # TODO(sdague) actually get these tests working"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAM3%2F%2FmBk%3D","line":352,"updated":"2013-01-14 19:01:48.000000000","message":"color\u003d\u003ecolon?","commit_id":"771adb78cacaa96a3304cb4cbdad65b91e9a2688"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"74e5dd2aef46d2623eecae0f349308b5c53a834b","unresolved":false,"context_lines":[{"line_number":441,"context_line":"    N701: _(\u0027\u0027)"},{"line_number":442,"context_line":"    N702: _(\"Bob\" + \" foo\")"},{"line_number":443,"context_line":"    N702: _(\"Bob %s\" % foo)"},{"line_number":444,"context_line":"    # N703 check is quite right, disabled by removing colon"},{"line_number":445,"context_line":"    N703 _(\"%s %s\" % (foo, bar))"},{"line_number":446,"context_line":"    \"\"\""},{"line_number":447,"context_line":"    # TODO(sdague) actually get these tests working"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAM3%2F%2FmB0%3D","line":444,"updated":"2013-01-14 19:01:48.000000000","message":"\u0027check is quite right\u0027 \u003d\u003e \u0027is not quite right\u0027?","commit_id":"771adb78cacaa96a3304cb4cbdad65b91e9a2688"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"74e5dd2aef46d2623eecae0f349308b5c53a834b","unresolved":false,"context_lines":[{"line_number":535,"context_line":"    #Run once tests (not per line)"},{"line_number":536,"context_line":"    once_error \u003d once_git_check_commit_title()"},{"line_number":537,"context_line":"    #NOVA error codes start with an N"},{"line_number":538,"context_line":"    pep8.SELFTEST_REGEX \u003d re.compile(r\u0027(Okay|[EWN]\\d{3}):\\s(.*)\u0027)"},{"line_number":539,"context_line":"    pep8.ERRORCODE_REGEX \u003d re.compile(r\u0027[EWN]\\d{3}\u0027)"},{"line_number":540,"context_line":"    add_nova()"},{"line_number":541,"context_line":"    pep8.current_file \u003d current_file"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAM3%2F%2FmBw%3D","line":538,"updated":"2013-01-14 19:01:48.000000000","message":"ahh more REGEX monkey patching","commit_id":"771adb78cacaa96a3304cb4cbdad65b91e9a2688"}]}
