)]}'
{"tools/what-broke.py":[{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"b53e0eed0d9a5edaa56ce03aa2a6ad5663df260a","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    reqs \u003d []"},{"line_number":58,"context_line":"    with open(\u0027global-requirements.txt\u0027) as f:"},{"line_number":59,"context_line":"        for line in f.readlines():"},{"line_number":60,"context_line":"            if not line or line.startswith(\u0027#\u0027) or line.startswith(\u0027\\n\u0027):"},{"line_number":61,"context_line":"                continue"},{"line_number":62,"context_line":"            reqs.append(_parse_pip(line))"},{"line_number":63,"context_line":"    return reqs"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6ced46_485d0d21","line":60,"updated":"2015-03-23 20:37:40.000000000","message":"FYI: startswith() accepts a tuple:\n\n   line.startswith((\u0027#\u0027, \u0027\\n\u0027))","commit_id":"792dff2e632435780bddcaf8336c285e902145dd"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"1021f1300a2466205d702c1d6d5f4d710fd6aef8","unresolved":false,"context_lines":[{"line_number":61,"context_line":"    return datetime.datetime.strptime(datestr, \"%Y-%m-%dT%H:%M:%S\")"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"def _parse_pip(line):"},{"line_number":65,"context_line":"    install_require \u003d pip.req.InstallRequirement.from_line(line)"},{"line_number":66,"context_line":"    if install_require.editable:"},{"line_number":67,"context_line":"        return pip"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa963961_2b9c8968","line":64,"updated":"2015-03-26 14:39:34.000000000","message":"import pkg_resources\n\n  pkg_resources.Requirement.parse(\"argcomplete\u003e\u003d0.6.8  # Apache-2.0\").project_name\n   \n    \u003e\u003e\u003e pkg_resources.Requirement.parse(\"argcomplete\u003e\u003d0.6.8  # Apache-2.0\").project_name\n\u0027argcomplete\u0027","commit_id":"cbc440c06496c6ada6158e32839cf45751b294a0"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"a4bf49502088b3f06fbdcd48fec9fab204ecb64f","unresolved":false,"context_lines":[{"line_number":61,"context_line":"    return datetime.datetime.strptime(datestr, \"%Y-%m-%dT%H:%M:%S\")"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"def _parse_pip(line):"},{"line_number":65,"context_line":"    install_require \u003d pip.req.InstallRequirement.from_line(line)"},{"line_number":66,"context_line":"    if install_require.editable:"},{"line_number":67,"context_line":"        return pip"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa963961_bd4ae681","line":64,"in_reply_to":"fa963961_2b9c8968","updated":"2015-03-27 21:33:59.000000000","message":"+1","commit_id":"cbc440c06496c6ada6158e32839cf45751b294a0"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"1021f1300a2466205d702c1d6d5f4d710fd6aef8","unresolved":false,"context_lines":[{"line_number":138,"context_line":"            \u0027to look for possible breakage\u0027))"},{"line_number":139,"context_line":"    parser.add_argument(\u0027-s\u0027, \u0027--since\u0027, type\u003dint,"},{"line_number":140,"context_line":"                        default\u003d14,"},{"line_number":141,"context_line":"                        help\u003d\u0027look back ``since`` days (default 14)\u0027)"},{"line_number":142,"context_line":"    return parser.parse_args()"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa963961_8bdb95ed","line":141,"updated":"2015-03-26 14:39:34.000000000","message":"nit: I think this is too large for a default. I would think 5 days or so would be about right.","commit_id":"cbc440c06496c6ada6158e32839cf45751b294a0"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"a4bf49502088b3f06fbdcd48fec9fab204ecb64f","unresolved":false,"context_lines":[{"line_number":138,"context_line":"            \u0027to look for possible breakage\u0027))"},{"line_number":139,"context_line":"    parser.add_argument(\u0027-s\u0027, \u0027--since\u0027, type\u003dint,"},{"line_number":140,"context_line":"                        default\u003d14,"},{"line_number":141,"context_line":"                        help\u003d\u0027look back ``since`` days (default 14)\u0027)"},{"line_number":142,"context_line":"    return parser.parse_args()"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa963961_7d445e73","line":141,"in_reply_to":"fa963961_8bdb95ed","updated":"2015-03-27 21:33:59.000000000","message":"+1","commit_id":"cbc440c06496c6ada6158e32839cf45751b294a0"}]}
