)]}'
{"nova/hacking/checks.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"1599f77cf9a0050c0f49d9a332e92ef100c04b29","unresolved":false,"context_lines":[{"line_number":732,"context_line":"        yield(0, msg)"},{"line_number":733,"context_line":""},{"line_number":734,"context_line":""},{"line_number":735,"context_line":"def cfg_help_with_enough_text(logical_line, physical_line, tokens):"},{"line_number":736,"context_line":"    # TODO(markus_z): The count of 10 chars is the *highest* number I could"},{"line_number":737,"context_line":"    # use to introduce this new check without breaking the gate. IOW, if I"},{"line_number":738,"context_line":"    # use a value of 15 for example, the gate checks will fail because we have"}],"source_content_type":"text/x-python","patch_set":2,"id":"9ad45d7e_bc2cf999","line":735,"updated":"2016-08-10 20:27:36.000000000","message":"How can you just change the signature of the hacking check like this and things still work without changing whatever is *calling* this function? I don\u0027t get it... is there some magic signature introspection going on in the hacking/checks.py stuff?","commit_id":"6cbff73f017e8b7440181dc548e49b7d9f420407"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"15c4f13cf9ee0d524ab1ae85659e6118cbcb40e9","unresolved":false,"context_lines":[{"line_number":732,"context_line":"        yield(0, msg)"},{"line_number":733,"context_line":""},{"line_number":734,"context_line":""},{"line_number":735,"context_line":"def cfg_help_with_enough_text(logical_line, physical_line, tokens):"},{"line_number":736,"context_line":"    # TODO(markus_z): The count of 10 chars is the *highest* number I could"},{"line_number":737,"context_line":"    # use to introduce this new check without breaking the gate. IOW, if I"},{"line_number":738,"context_line":"    # use a value of 15 for example, the gate checks will fail because we have"}],"source_content_type":"text/x-python","patch_set":2,"id":"9ad45d7e_08a7a3aa","line":735,"in_reply_to":"9ad45d7e_a2b2f8e2","updated":"2016-08-11 11:14:41.000000000","message":"Yes, it\u0027s the pep8 architecture","commit_id":"6cbff73f017e8b7440181dc548e49b7d9f420407"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"53cb2cc0ef5d13a7a321f50763d10c0a2e71c869","unresolved":false,"context_lines":[{"line_number":732,"context_line":"        yield(0, msg)"},{"line_number":733,"context_line":""},{"line_number":734,"context_line":""},{"line_number":735,"context_line":"def cfg_help_with_enough_text(logical_line, physical_line, tokens):"},{"line_number":736,"context_line":"    # TODO(markus_z): The count of 10 chars is the *highest* number I could"},{"line_number":737,"context_line":"    # use to introduce this new check without breaking the gate. IOW, if I"},{"line_number":738,"context_line":"    # use a value of 15 for example, the gate checks will fail because we have"}],"source_content_type":"text/x-python","patch_set":2,"id":"9ad45d7e_a2b2f8e2","line":735,"in_reply_to":"9ad45d7e_bc2cf999","updated":"2016-08-11 10:36:16.000000000","message":"@Jay: Yeah, spooky, eh? :) The magic should happen in \"register_check\" at https://pep8.readthedocs.io/en/1.7.0/_modules/pep8.html","commit_id":"6cbff73f017e8b7440181dc548e49b7d9f420407"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"6d74f0334caf9508ac4f765c02a8ce792494be2b","unresolved":false,"context_lines":[{"line_number":732,"context_line":"        yield(0, msg)"},{"line_number":733,"context_line":""},{"line_number":734,"context_line":""},{"line_number":735,"context_line":"def cfg_help_with_enough_text(logical_line, physical_line, tokens):"},{"line_number":736,"context_line":"    # TODO(markus_z): The count of 10 chars is the *highest* number I could"},{"line_number":737,"context_line":"    # use to introduce this new check without breaking the gate. IOW, if I"},{"line_number":738,"context_line":"    # use a value of 15 for example, the gate checks will fail because we have"}],"source_content_type":"text/x-python","patch_set":2,"id":"9ad45d7e_e77a5ef0","line":735,"in_reply_to":"9ad45d7e_bc2cf999","updated":"2016-08-10 21:03:44.000000000","message":"Yeah, there apparently is.  All these functions are registered with the same call, despite the difference in signature between, say, check_python3_no_itervalues() and the original version of cfg_help_with_enough_text()…yet all of them get registered with a simple call to the register() function that\u0027s passed to the factory() function at line 835.","commit_id":"6cbff73f017e8b7440181dc548e49b7d9f420407"}]}
