)]}'
{"gnocchi/rest/__init__.py":[{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"ab1590db7de9b18d29c9c8d2687e17e278f1a58d","unresolved":false,"context_lines":[{"line_number":124,"context_line":"    pecan.response.headers[\u0027Location\u0027] \u003d location"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"def body2json():"},{"line_number":128,"context_line":"    mime_type, options \u003d werkzeug.http.parse_options_header("},{"line_number":129,"context_line":"        pecan.request.headers.get(\u0027Content-Type\u0027))"},{"line_number":130,"context_line":"    if mime_type !\u003d \"application/json\":"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a2ca52d_c174c89d","line":127,"updated":"2015-10-14 08:28:17.000000000","message":"This is misnamed. This does not a \"body into JSON\": the body _is_ JSON!\n\nIt\u0027s still deserialization, but without a schema. Call it deserialize() and…","commit_id":"6aaaa0e2568e897e20d321e62151ce6afbb99163"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"442e7b086c8aa58542c8f99247071be8288fce92","unresolved":false,"context_lines":[{"line_number":124,"context_line":"    pecan.response.headers[\u0027Location\u0027] \u003d location"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"def body2json():"},{"line_number":128,"context_line":"    mime_type, options \u003d werkzeug.http.parse_options_header("},{"line_number":129,"context_line":"        pecan.request.headers.get(\u0027Content-Type\u0027))"},{"line_number":130,"context_line":"    if mime_type !\u003d \"application/json\":"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a2ca52d_bc18d385","line":127,"in_reply_to":"5a2ca52d_c174c89d","updated":"2015-10-14 09:15:48.000000000","message":"Done","commit_id":"6aaaa0e2568e897e20d321e62151ce6afbb99163"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"ab1590db7de9b18d29c9c8d2687e17e278f1a58d","unresolved":false,"context_lines":[{"line_number":137,"context_line":"    return params"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"def deserialize(schema, required\u003dTrue):"},{"line_number":141,"context_line":"    try:"},{"line_number":142,"context_line":"        return voluptuous.Schema(schema, required\u003drequired)("},{"line_number":143,"context_line":"            body2json())"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a2ca52d_416998bd","line":140,"updated":"2015-10-14 08:28:17.000000000","message":"…call this one deserialize_and_validate()! :)","commit_id":"6aaaa0e2568e897e20d321e62151ce6afbb99163"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"442e7b086c8aa58542c8f99247071be8288fce92","unresolved":false,"context_lines":[{"line_number":137,"context_line":"    return params"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"def deserialize(schema, required\u003dTrue):"},{"line_number":141,"context_line":"    try:"},{"line_number":142,"context_line":"        return voluptuous.Schema(schema, required\u003drequired)("},{"line_number":143,"context_line":"            body2json())"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a2ca52d_fc2f2b9f","line":140,"in_reply_to":"5a2ca52d_416998bd","updated":"2015-10-14 09:15:48.000000000","message":"Done","commit_id":"6aaaa0e2568e897e20d321e62151ce6afbb99163"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"ab1590db7de9b18d29c9c8d2687e17e278f1a58d","unresolved":false,"context_lines":[{"line_number":466,"context_line":"        self.enforce_metric(\"post measures\")"},{"line_number":467,"context_line":"        try:"},{"line_number":468,"context_line":"            pecan.request.storage.add_measures("},{"line_number":469,"context_line":"                self.metric, (self.to_measure(m) for m in body2json()))"},{"line_number":470,"context_line":"        except storage.MetricDoesNotExist as e:"},{"line_number":471,"context_line":"            abort(404, e)"},{"line_number":472,"context_line":"        pecan.response.status \u003d 202"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a2ca52d_6194d48a","line":469,"updated":"2015-10-14 08:28:17.000000000","message":"I\u0027m sad you didn\u0027t use map() but ok :p\n\nI also think you miss a case here in tests: what happen if body2json() returns something that is not iterable, for example the integer \"1\" because that\u0027s what the user sent as a JSON body.","commit_id":"6aaaa0e2568e897e20d321e62151ce6afbb99163"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"442e7b086c8aa58542c8f99247071be8288fce92","unresolved":false,"context_lines":[{"line_number":466,"context_line":"        self.enforce_metric(\"post measures\")"},{"line_number":467,"context_line":"        try:"},{"line_number":468,"context_line":"            pecan.request.storage.add_measures("},{"line_number":469,"context_line":"                self.metric, (self.to_measure(m) for m in body2json()))"},{"line_number":470,"context_line":"        except storage.MetricDoesNotExist as e:"},{"line_number":471,"context_line":"            abort(404, e)"},{"line_number":472,"context_line":"        pecan.response.status \u003d 202"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a2ca52d_5c23bfbd","line":469,"in_reply_to":"5a2ca52d_6194d48a","updated":"2015-10-14 09:15:48.000000000","message":"Done","commit_id":"6aaaa0e2568e897e20d321e62151ce6afbb99163"}]}
