)]}'
{"nova/objects/fields.py":[{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"54aad9164cf3e0c689ff61a52615538237b42aaf","unresolved":false,"context_lines":[{"line_number":234,"context_line":"class HexInteger(Integer):"},{"line_number":235,"context_line":"    @staticmethod"},{"line_number":236,"context_line":"    def coerce(obj, attr, value):"},{"line_number":237,"context_line":"        if isinstance(value, (int, long, float)):"},{"line_number":238,"context_line":"            return int(value)"},{"line_number":239,"context_line":"        elif isinstance(value, six.string_types):"},{"line_number":240,"context_line":"            # FIXME(shane-wang): We should handle negative number"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAT3%2F%2F86o%3D","line":237,"updated":"2013-12-26 12:44:34.000000000","message":"long is not defined in python3: instead you can use six.integer_types","commit_id":"8748108594fdf1a44d37d11b7d4ecca24d6d70bf"},{"author":{"_account_id":4458,"name":"Shane Wang","email":"shane.wang@intel.com","username":"shane-wang"},"change_message_id":"3d172788603ec8cf65cb810916ad3f19824720f8","unresolved":false,"context_lines":[{"line_number":234,"context_line":"class HexInteger(Integer):"},{"line_number":235,"context_line":"    @staticmethod"},{"line_number":236,"context_line":"    def coerce(obj, attr, value):"},{"line_number":237,"context_line":"        if isinstance(value, (int, long, float)):"},{"line_number":238,"context_line":"            return int(value)"},{"line_number":239,"context_line":"        elif isinstance(value, six.string_types):"},{"line_number":240,"context_line":"            # FIXME(shane-wang): We should handle negative number"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAT3%2F%2F7Sw%3D","line":237,"in_reply_to":"AAAAT3%2F%2F86o%3D","updated":"2013-12-27 00:59:45.000000000","message":"Done","commit_id":"8748108594fdf1a44d37d11b7d4ecca24d6d70bf"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"54aad9164cf3e0c689ff61a52615538237b42aaf","unresolved":false,"context_lines":[{"line_number":240,"context_line":"            # FIXME(shane-wang): We should handle negative number"},{"line_number":241,"context_line":"            if value.isdigit():"},{"line_number":242,"context_line":"                return int(value)"},{"line_number":243,"context_line":"            if value.startswith(\u00270x\u0027):"},{"line_number":244,"context_line":"                for char in value[2:]:"},{"line_number":245,"context_line":"                    if (not char.isdigit() and not \u0027a\u0027 \u003c\u003d char \u003c\u003d \u0027f\u0027"},{"line_number":246,"context_line":"                        and not \u0027A\u0027 \u003c\u003d char \u003c\u003d \u0027F\u0027):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAT3%2F%2F88M%3D","line":243,"updated":"2013-12-26 12:44:34.000000000","message":"micronit: It would be clearer to use EAFP python coding style\n\ntry:\n  return int(value[2:], 16)\nraise ValueError:\n  raise ValueError(_(\u0027\"%s\" is not a valid hexadecimal\u0027) % value)","commit_id":"8748108594fdf1a44d37d11b7d4ecca24d6d70bf"},{"author":{"_account_id":4458,"name":"Shane Wang","email":"shane.wang@intel.com","username":"shane-wang"},"change_message_id":"3d172788603ec8cf65cb810916ad3f19824720f8","unresolved":false,"context_lines":[{"line_number":240,"context_line":"            # FIXME(shane-wang): We should handle negative number"},{"line_number":241,"context_line":"            if value.isdigit():"},{"line_number":242,"context_line":"                return int(value)"},{"line_number":243,"context_line":"            if value.startswith(\u00270x\u0027):"},{"line_number":244,"context_line":"                for char in value[2:]:"},{"line_number":245,"context_line":"                    if (not char.isdigit() and not \u0027a\u0027 \u003c\u003d char \u003c\u003d \u0027f\u0027"},{"line_number":246,"context_line":"                        and not \u0027A\u0027 \u003c\u003d char \u003c\u003d \u0027F\u0027):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAT3%2F%2F7Sk%3D","line":243,"in_reply_to":"AAAAT3%2F%2F88M%3D","updated":"2013-12-27 00:59:45.000000000","message":"Thank you for your comment. Good point, I correct it.","commit_id":"8748108594fdf1a44d37d11b7d4ecca24d6d70bf"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"da8cc44817c5205770bb8747df523ce52190ee0c","unresolved":false,"context_lines":[{"line_number":234,"context_line":"class HexInteger(Integer):"},{"line_number":235,"context_line":"    @staticmethod"},{"line_number":236,"context_line":"    def coerce(obj, attr, value):"},{"line_number":237,"context_line":"        if isinstance(value, six.integer_types):"},{"line_number":238,"context_line":"            return int(value)"},{"line_number":239,"context_line":"        elif isinstance(value, six.string_types):"},{"line_number":240,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAT3%2F%2F5NY%3D","line":237,"updated":"2013-12-27 17:50:32.000000000","message":"six.integer_types does not include float type so you no more support float value ? (i think it\u0027s better to disable float to avoid int truncation).\nif so, you can remove the explicit int cast","commit_id":"153ddf851b8b53ef63e0157ff4854bafc1b8331b"},{"author":{"_account_id":8430,"name":"Christopher Lefelhocz","email":"christopher.lefelhoc@rackspace.com","username":"leif"},"change_message_id":"a010f0cf844527f793498fc5fa257be3f94d24a4","unresolved":false,"context_lines":[{"line_number":239,"context_line":"        elif isinstance(value, six.string_types):"},{"line_number":240,"context_line":"            try:"},{"line_number":241,"context_line":"                if (value.lower().startswith(\u00270x\u0027) or"},{"line_number":242,"context_line":"                    value.lower().startswith(\u0027-0x\u0027)):"},{"line_number":243,"context_line":"                    return int(value, 16)"},{"line_number":244,"context_line":"                else:"},{"line_number":245,"context_line":"                    return int(value)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAT3%2F%2F0pQ%3D","line":242,"updated":"2013-12-30 19:21:52.000000000","message":"Do we need to consider leading whitespace?  int() will still parse correctly?\n\nAlso It\u0027s probably worth including \u0027+0x\u0027 as it\u0027s valid hex (albeit rarely used).","commit_id":"377b060ec3e64af5d472d449bfc82e0b0e848f4b"}],"nova/tests/objects/test_fields.py":[{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"a80ac30b9efa18e50c67b3221de975049b9d4bc2","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        self.coerce_good_values \u003d [(1, 1), (\u00271\u0027, 1), (11, 11),"},{"line_number":96,"context_line":"                                   (0x11, 0x11), (\u00270x11\u0027, 0x11), (\u002711\u0027, 11),"},{"line_number":97,"context_line":"                                   (0xff, 0xff), (\u00270xff\u0027, 0xff),"},{"line_number":98,"context_line":"                                   (\u00270x0000\u0027, 0x0), (0x0000, 0x0000)]"},{"line_number":99,"context_line":"        self.coerce_bad_values \u003d [\u0027foo\u0027, None]"},{"line_number":100,"context_line":"        self.to_primitive_values \u003d [(0xff, \u00270xff\u0027), (0x0, \u00270x0\u0027),"},{"line_number":101,"context_line":"                                    (0x11, \u00270x11\u0027), (11, \u00270xb\u0027)]"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAT3%2F%2F80I%3D","line":98,"updated":"2013-12-26 13:09:05.000000000","message":"you could also check a bad hex value like 0xgg :)","commit_id":"8748108594fdf1a44d37d11b7d4ecca24d6d70bf"},{"author":{"_account_id":4458,"name":"Shane Wang","email":"shane.wang@intel.com","username":"shane-wang"},"change_message_id":"3d172788603ec8cf65cb810916ad3f19824720f8","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        self.coerce_good_values \u003d [(1, 1), (\u00271\u0027, 1), (11, 11),"},{"line_number":96,"context_line":"                                   (0x11, 0x11), (\u00270x11\u0027, 0x11), (\u002711\u0027, 11),"},{"line_number":97,"context_line":"                                   (0xff, 0xff), (\u00270xff\u0027, 0xff),"},{"line_number":98,"context_line":"                                   (\u00270x0000\u0027, 0x0), (0x0000, 0x0000)]"},{"line_number":99,"context_line":"        self.coerce_bad_values \u003d [\u0027foo\u0027, None]"},{"line_number":100,"context_line":"        self.to_primitive_values \u003d [(0xff, \u00270xff\u0027), (0x0, \u00270x0\u0027),"},{"line_number":101,"context_line":"                                    (0x11, \u00270x11\u0027), (11, \u00270xb\u0027)]"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAT3%2F%2F7R8%3D","line":98,"in_reply_to":"AAAAT3%2F%2F80I%3D","updated":"2013-12-27 00:59:45.000000000","message":"Done","commit_id":"8748108594fdf1a44d37d11b7d4ecca24d6d70bf"}]}
