)]}'
{"nova/utils.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"bf65b11c70fcb91c422772496e30088a7eeb697a","unresolved":false,"context_lines":[{"line_number":1114,"context_line":"        raise exception.InvalidInput(message\u003dmsg)"},{"line_number":1115,"context_line":""},{"line_number":1116,"context_line":""},{"line_number":1117,"context_line":"def validate_integer_string(str_value, str_name,"},{"line_number":1118,"context_line":"                            min_value\u003dNone, max_value\u003dNone):"},{"line_number":1119,"context_line":"    try:"},{"line_number":1120,"context_line":"        value \u003d int(str(str_value))"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2F52I%3D","line":1117,"updated":"2013-07-19 14:16:36.000000000","message":"Are there unit tests for this? It would be good to extract them now this is a util method.","commit_id":"4828bb3ed8a055d0aa09a7227f9c3db1c5c432ed"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"f9ea48544baa222a592918b92f012e2f344a12b0","unresolved":false,"context_lines":[{"line_number":1114,"context_line":"        raise exception.InvalidInput(message\u003dmsg)"},{"line_number":1115,"context_line":""},{"line_number":1116,"context_line":""},{"line_number":1117,"context_line":"def validate_integer_string(str_value, str_name,"},{"line_number":1118,"context_line":"                            min_value\u003dNone, max_value\u003dNone):"},{"line_number":1119,"context_line":"    try:"},{"line_number":1120,"context_line":"        value \u003d int(str(str_value))"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2F5zk%3D","line":1117,"in_reply_to":"AAAAQn%2F%2F52I%3D","updated":"2013-07-19 14:25:33.000000000","message":"There were none to begin with - the API is tested however.\n\nIt\u0027s a *really* straight forward function - any chance we can not hold this up on this and add a low-hanging fruit bug instead - so more people can contribute :)","commit_id":"4828bb3ed8a055d0aa09a7227f9c3db1c5c432ed"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d759f39938cec693e3cdf471c5117374292ef164","unresolved":false,"context_lines":[{"line_number":1114,"context_line":"        raise exception.InvalidInput(message\u003dmsg)"},{"line_number":1115,"context_line":""},{"line_number":1116,"context_line":""},{"line_number":1117,"context_line":"def validate_integer_string(str_value, str_name,"},{"line_number":1118,"context_line":"                            min_value\u003dNone, max_value\u003dNone):"},{"line_number":1119,"context_line":"    try:"},{"line_number":1120,"context_line":"        value \u003d int(str(str_value))"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2F5cU%3D","line":1117,"in_reply_to":"AAAAQn%2F%2F5zk%3D","updated":"2013-07-19 16:24:17.000000000","message":"I think \"parity\" is not a good test strategy. I think tests should be included in this patch.","commit_id":"4828bb3ed8a055d0aa09a7227f9c3db1c5c432ed"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"9935856c1945d5f8872a7a0d9209e194dd501c4c","unresolved":false,"context_lines":[{"line_number":1117,"context_line":"def validate_integer_string(str_value, str_name,"},{"line_number":1118,"context_line":"                            min_value\u003dNone, max_value\u003dNone):"},{"line_number":1119,"context_line":"    try:"},{"line_number":1120,"context_line":"        value \u003d int(str(str_value))"},{"line_number":1121,"context_line":"    except ValueError:"},{"line_number":1122,"context_line":"        msg \u003d _(\u0027%(value_name)s must be an integer\u0027)"},{"line_number":1123,"context_line":"        raise exception.InvalidInput(reason\u003d("}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2F5Uk%3D","line":1120,"updated":"2013-07-19 17:13:12.000000000","message":"why we are doing here str()?","commit_id":"91f9537d9f7a321215061729fcf5a1cb813a8bb3"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"2cba17abcab15cb2e8cf45ccbd12d24351bd6286","unresolved":false,"context_lines":[{"line_number":1117,"context_line":"def validate_integer_string(str_value, str_name,"},{"line_number":1118,"context_line":"                            min_value\u003dNone, max_value\u003dNone):"},{"line_number":1119,"context_line":"    try:"},{"line_number":1120,"context_line":"        value \u003d int(str(str_value))"},{"line_number":1121,"context_line":"    except ValueError:"},{"line_number":1122,"context_line":"        msg \u003d _(\u0027%(value_name)s must be an integer\u0027)"},{"line_number":1123,"context_line":"        raise exception.InvalidInput(reason\u003d("}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2F2Ko%3D","line":1120,"in_reply_to":"AAAAQn%2F%2F5Uk%3D","updated":"2013-07-22 08:00:12.000000000","message":"Hmmm well the function name might be a bit misleading actually. \n\nWe do str() (I assume that is - I just moved this code around, I didn\u0027t write it) - to avoid that in case a float is passed by any chance - it gets rounded down, and throws an ex instead - so passing a 2.3 would result in an error instead of 2. I am +1 on this but might rename the func actually.","commit_id":"91f9537d9f7a321215061729fcf5a1cb813a8bb3"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"9935856c1945d5f8872a7a0d9209e194dd501c4c","unresolved":false,"context_lines":[{"line_number":1123,"context_line":"        raise exception.InvalidInput(reason\u003d("},{"line_number":1124,"context_line":"            msg % {\u0027value_name\u0027: str_name}))"},{"line_number":1125,"context_line":""},{"line_number":1126,"context_line":"    if min_value is not None:"},{"line_number":1127,"context_line":"        if value \u003c min_value:"},{"line_number":1128,"context_line":"            msg \u003d _(\u0027%(value_name)s must be \u003e\u003d %(min_value)d\u0027)"},{"line_number":1129,"context_line":"            raise exception.InvalidInput("}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2F5LU%3D","line":1126,"updated":"2013-07-19 17:13:12.000000000","message":"I just don\u0027t like copy paste:\n\n  checkers \u003d [(operator.lte, min_val, \"\u003c\u003d\"), (opertaor.gte), max_val, \"\u003e\u003d\"]\n\n  for op, val, op_repr in checkers:\n      if op(value, val):\n         msg \u003d  _(\u0027%(value_name)s must be %(op) %(value)d\u0027)\n         raise Excpetion...\n\n\n But it doesn\u0027t look cleaner\u003d)","commit_id":"91f9537d9f7a321215061729fcf5a1cb813a8bb3"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"2cba17abcab15cb2e8cf45ccbd12d24351bd6286","unresolved":false,"context_lines":[{"line_number":1123,"context_line":"        raise exception.InvalidInput(reason\u003d("},{"line_number":1124,"context_line":"            msg % {\u0027value_name\u0027: str_name}))"},{"line_number":1125,"context_line":""},{"line_number":1126,"context_line":"    if min_value is not None:"},{"line_number":1127,"context_line":"        if value \u003c min_value:"},{"line_number":1128,"context_line":"            msg \u003d _(\u0027%(value_name)s must be \u003e\u003d %(min_value)d\u0027)"},{"line_number":1129,"context_line":"            raise exception.InvalidInput("}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2F2KU%3D","line":1126,"in_reply_to":"AAAAQn%2F%2F5LU%3D","updated":"2013-07-22 08:00:12.000000000","message":"I think this is slightly more what people are used to, so I will leave it.\n\n+1 for rewriting nova in Haskell though :)","commit_id":"91f9537d9f7a321215061729fcf5a1cb813a8bb3"}]}
