)]}'
{"quantumclient/common/utils.py":[{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"cf5d1fae3956b44b21ac349787d718c4f9f5ab69","unresolved":false,"context_lines":[{"line_number":140,"context_line":""},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"def str2dict(strdict):"},{"line_number":143,"context_line":"        \u0027\u0027\u0027"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        :param strdict: key1\u003dvalue1,key2\u003dvalue2"},{"line_number":146,"context_line":"        \u0027\u0027\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOX%2F%2F588%3D","line":143,"updated":"2013-04-08 08:29:48.000000000","message":"(Suggestion only) Not your fault at all but these newlines look strange. Consider adding a short function description even if it seems to be quite obvious.","commit_id":"d7abb6f358abe6154f79742e1f2aed2a5b095759"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"unresolved":false,"context_lines":[{"line_number":140,"context_line":""},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"def str2dict(strdict):"},{"line_number":143,"context_line":"        \u0027\u0027\u0027"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        :param strdict: key1\u003dvalue1,key2\u003dvalue2"},{"line_number":146,"context_line":"        \u0027\u0027\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOX%2F%2F5kE%3D","line":143,"in_reply_to":"AAAAOX%2F%2F588%3D","updated":"2013-04-08 16:19:04.000000000","message":"Thank you for your feedback, but this patch is strictly concerned with ensuring the codebase can pass automatic HACKING validation.  H404 (see tox.ini) - ensuring that multiline docstrings have a summary - will be addressed subsequently due to the non-mechanical nature of the task.","commit_id":"d7abb6f358abe6154f79742e1f2aed2a5b095759"}],"quantumclient/openstack/common/timeutils.py":[{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def isotime(at\u003dNone):"},{"line_number":33,"context_line":"    \"\"\"Stringify time in ISO 8601 format.\"\"\""},{"line_number":34,"context_line":"    if not at:"},{"line_number":35,"context_line":"        at \u003d utcnow()"},{"line_number":36,"context_line":"    str \u003d at.strftime(TIME_FORMAT)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOX%2F%2F578%3D","line":33,"updated":"2013-04-08 09:25:58.000000000","message":"we cannot update openstack/common files.","commit_id":"d7abb6f358abe6154f79742e1f2aed2a5b095759"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def isotime(at\u003dNone):"},{"line_number":33,"context_line":"    \"\"\"Stringify time in ISO 8601 format.\"\"\""},{"line_number":34,"context_line":"    if not at:"},{"line_number":35,"context_line":"        at \u003d utcnow()"},{"line_number":36,"context_line":"    str \u003d at.strftime(TIME_FORMAT)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOX%2F%2F5kA%3D","line":33,"in_reply_to":"AAAAOX%2F%2F578%3D","updated":"2013-04-08 16:19:04.000000000","message":"Done.","commit_id":"d7abb6f358abe6154f79742e1f2aed2a5b095759"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"def parse_isotime(timestr):"},{"line_number":43,"context_line":"    \"\"\"Parse time from ISO 8601 format.\"\"\""},{"line_number":44,"context_line":"    try:"},{"line_number":45,"context_line":"        return iso8601.parse_date(timestr)"},{"line_number":46,"context_line":"    except iso8601.ParseError as e:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOX%2F%2F574%3D","line":43,"updated":"2013-04-08 09:25:58.000000000","message":"ditto","commit_id":"d7abb6f358abe6154f79742e1f2aed2a5b095759"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"def normalize_time(timestamp):"},{"line_number":65,"context_line":"    \"\"\"Normalize time in arbitrary timezone to UTC naive object.\"\"\""},{"line_number":66,"context_line":"    offset \u003d timestamp.utcoffset()"},{"line_number":67,"context_line":"    if offset is None:"},{"line_number":68,"context_line":"        return timestamp"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOX%2F%2F570%3D","line":65,"updated":"2013-04-08 09:25:58.000000000","message":"ditto","commit_id":"d7abb6f358abe6154f79742e1f2aed2a5b095759"}],"quantumclient/v2_0/client.py":[{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"def exception_handler_v20(status_code, error_content):"},{"line_number":36,"context_line":"    \"\"\"Exception handler for API v2.0 client"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        This routine generates the appropriate"},{"line_number":39,"context_line":"        Quantum exception according to the contents of the"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAOn%2F%2F%2FYA%3D","line":36,"updated":"2013-04-08 23:23:24.000000000","message":"Why don\u0027t we need period at the end of this sentence?","commit_id":"3c193c9387308af6153c0e6e3d751b6672667c82"}],"tests/unit/test_cli20_network.py":[{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"unresolved":false,"context_lines":[{"line_number":173,"context_line":"                                 sort_dir\u003d[\u0027desc\u0027])"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"    def test_list_nets_sort_with_dirs_more_than_keys(self):"},{"line_number":176,"context_line":"        \"\"\"list nets: --sort-key name --sort-dir desc --sort-dir asc"},{"line_number":177,"context_line":"        \"\"\""},{"line_number":178,"context_line":"        cmd \u003d ListNetwork(MyApp(sys.stdout), None)"},{"line_number":179,"context_line":"        self._test_list_networks(cmd, sort_key\u003d[\u0027name\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAOn%2F%2F%2FX8%3D","side":"PARENT","line":176,"updated":"2013-04-08 23:23:24.000000000","message":"what about this line?","commit_id":"2a7527508522a6924c026e01cd55a4244426d7f5"}],"tests/unit/test_cli20_port.py":[{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"unresolved":false,"context_lines":[{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    def test_list_ports_sort(self):"},{"line_number":151,"context_line":"        \"\"\"list ports: --sort-key name --sort-key id --sort-key asc"},{"line_number":152,"context_line":"        --sort-key desc"},{"line_number":153,"context_line":"        \"\"\""},{"line_number":154,"context_line":"        resources \u003d \"ports\""},{"line_number":155,"context_line":"        cmd \u003d ListPort(MyApp(sys.stdout), None)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAOn%2F%2F%2FXw%3D","side":"PARENT","line":152,"updated":"2013-04-08 23:23:24.000000000","message":"and this line?","commit_id":"2a7527508522a6924c026e01cd55a4244426d7f5"}]}
