)]}'
{"higgins/api/controllers/types.py":[{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"0437fb1d5f4d1ad36a04fd1634fe156195f6ef39","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        return value"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class StringType(object):"},{"line_number":37,"context_line":"    type_name \u003d \u0027String\u0027"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_5f9ded08","line":36,"range":{"start_line":36,"start_character":6,"end_line":36,"end_character":16},"updated":"2016-06-08 09:08:15.000000000","message":"why not keep it consistent with above class names like Text, List? Better to rename it to String.","commit_id":"a0ef07837588e06dfbb2d98f0dbd5429f88b214b"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"af24786c122db95125c3560abfe208286de2ff81","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        return value"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class StringType(object):"},{"line_number":37,"context_line":"    type_name \u003d \u0027String\u0027"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_411640a8","line":36,"range":{"start_line":36,"start_character":6,"end_line":36,"end_character":16},"in_reply_to":"7aa08908_5f9ded08","updated":"2016-06-09 19:58:59.000000000","message":"I can do that, or change others to TextType, ListType, ... what do you think?","commit_id":"a0ef07837588e06dfbb2d98f0dbd5429f88b214b"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"0437fb1d5f4d1ad36a04fd1634fe156195f6ef39","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        return value"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"class IntegerType(object):"},{"line_number":58,"context_line":"    type_name \u003d \u0027Integer\u0027"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_9fb2b592","line":57,"range":{"start_line":57,"start_character":6,"end_line":57,"end_character":17},"updated":"2016-06-08 09:08:15.000000000","message":"ditto","commit_id":"a0ef07837588e06dfbb2d98f0dbd5429f88b214b"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"0437fb1d5f4d1ad36a04fd1634fe156195f6ef39","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        return value"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"class BoolType(object):"},{"line_number":78,"context_line":"    type_name \u003d \u0027Bool\u0027"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_df91ddf2","line":77,"range":{"start_line":77,"start_character":6,"end_line":77,"end_character":14},"updated":"2016-06-08 09:08:15.000000000","message":"ditto","commit_id":"a0ef07837588e06dfbb2d98f0dbd5429f88b214b"}],"higgins/api/controllers/v1/higgins_services.py":[{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"b5131130f1f61b0da9cc38d242b09fb287a08b3f","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"class HigginsServiceCollection(collection.Collection):"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    mservices \u003d [HigginsService]"},{"line_number":62,"context_line":"    \"\"\"A list containing bays objects\"\"\""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    def __init__(self, **kwargs):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_ffd27d33","line":61,"range":{"start_line":61,"start_character":4,"end_line":61,"end_character":13},"updated":"2016-06-05 10:02:52.000000000","message":"s/mservices/hservices/g","commit_id":"d4486a929f308c8113ba3d8a0563bfa52dec1e25"}],"zun/api/controllers/root.py":[{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"c526b252b6b3c6402cfc13c38c8d4b25d35e94c0","unresolved":false,"context_lines":[{"line_number":76,"context_line":"    _default_version \u003d \u0027v1\u0027"},{"line_number":77,"context_line":"    \"\"\"The default API version\"\"\""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    v1 \u003d v1.Controller()"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    @pecan.expose(\u0027json\u0027)"},{"line_number":82,"context_line":"    def get(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a9d85d2_d8ae7c84","line":79,"range":{"start_line":79,"start_character":4,"end_line":79,"end_character":24},"updated":"2016-06-21 13:22:00.000000000","message":"not good statement, are you shadowing v1 module ?","commit_id":"605bff18a4c865f3fe0911fb21bb6bbb4c6acc1f"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"f92642403d4acc4b7bcdcf73ae7737945a19c26e","unresolved":false,"context_lines":[{"line_number":76,"context_line":"    _default_version \u003d \u0027v1\u0027"},{"line_number":77,"context_line":"    \"\"\"The default API version\"\"\""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    v1 \u003d v1.Controller()"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    @pecan.expose(\u0027json\u0027)"},{"line_number":82,"context_line":"    def get(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"3aaa91ec_1f1db366","line":79,"range":{"start_line":79,"start_character":4,"end_line":79,"end_character":24},"in_reply_to":"5a9d85d2_d8ae7c84","updated":"2016-06-27 23:00:49.000000000","message":"This is the way to make the routing work in pecan. See here: https://pecan.readthedocs.io/en/latest/routing.html","commit_id":"605bff18a4c865f3fe0911fb21bb6bbb4c6acc1f"}],"zun/api/controllers/types.py":[{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"c526b252b6b3c6402cfc13c38c8d4b25d35e94c0","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    @classmethod"},{"line_number":28,"context_line":"    def validate(cls, value):"},{"line_number":29,"context_line":"        if not isinstance(value, str):"},{"line_number":30,"context_line":"            raise exception.InvalidValue(value\u003dvalue, type\u003dcls.type_name)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        return value"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a9d85d2_b04d7b9b","line":29,"range":{"start_line":29,"start_character":33,"end_line":29,"end_character":38},"updated":"2016-06-21 13:22:00.000000000","message":"This is not Python3 compatible, maybe we need:\nif not isinstance(value, six.string_types)\n\nhttp://pythonhosted.org/six/#six.string_types","commit_id":"605bff18a4c865f3fe0911fb21bb6bbb4c6acc1f"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"f92642403d4acc4b7bcdcf73ae7737945a19c26e","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    @classmethod"},{"line_number":28,"context_line":"    def validate(cls, value):"},{"line_number":29,"context_line":"        if not isinstance(value, str):"},{"line_number":30,"context_line":"            raise exception.InvalidValue(value\u003dvalue, type\u003dcls.type_name)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        return value"}],"source_content_type":"text/x-python","patch_set":7,"id":"3aaa91ec_e4249ec7","line":29,"range":{"start_line":29,"start_character":33,"end_line":29,"end_character":38},"in_reply_to":"5a9d85d2_b04d7b9b","updated":"2016-06-27 23:00:49.000000000","message":"Good suggestion. Thanks.","commit_id":"605bff18a4c865f3fe0911fb21bb6bbb4c6acc1f"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"c526b252b6b3c6402cfc13c38c8d4b25d35e94c0","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    @classmethod"},{"line_number":39,"context_line":"    def validate(cls, value, min_length\u003dNone, max_length\u003dNone):"},{"line_number":40,"context_line":"        if not isinstance(value, str):"},{"line_number":41,"context_line":"            raise exception.InvalidValue(value\u003dvalue, type\u003dcls.type_name)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        if min_length is not None and len(value) \u003c min_length:"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a9d85d2_ab022a07","line":40,"range":{"start_line":40,"start_character":33,"end_line":40,"end_character":36},"updated":"2016-06-21 13:22:00.000000000","message":"Can we use check_string_length from oslo.utils\n\nin https://github.com/openstack/oslo.utils/blob/master/oslo_utils/strutils.py#L386","commit_id":"605bff18a4c865f3fe0911fb21bb6bbb4c6acc1f"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"f92642403d4acc4b7bcdcf73ae7737945a19c26e","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    @classmethod"},{"line_number":39,"context_line":"    def validate(cls, value, min_length\u003dNone, max_length\u003dNone):"},{"line_number":40,"context_line":"        if not isinstance(value, str):"},{"line_number":41,"context_line":"            raise exception.InvalidValue(value\u003dvalue, type\u003dcls.type_name)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        if min_length is not None and len(value) \u003c min_length:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3aaa91ec_c421a2b6","line":40,"range":{"start_line":40,"start_character":33,"end_line":40,"end_character":36},"in_reply_to":"5a9d85d2_ab022a07","updated":"2016-06-27 23:00:49.000000000","message":"Good suggestion. Thanks.","commit_id":"605bff18a4c865f3fe0911fb21bb6bbb4c6acc1f"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"c526b252b6b3c6402cfc13c38c8d4b25d35e94c0","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    @classmethod"},{"line_number":60,"context_line":"    def validate(cls, value, minimum\u003dNone):"},{"line_number":61,"context_line":"        if not isinstance(value, int):"},{"line_number":62,"context_line":"            try:"},{"line_number":63,"context_line":"                value \u003d int(value)"},{"line_number":64,"context_line":"            except Exception:"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a9d85d2_6ba9627b","line":61,"range":{"start_line":61,"start_character":33,"end_line":61,"end_character":36},"updated":"2016-06-21 13:22:00.000000000","message":"please use six.integer_types\n\nhttp://pythonhosted.org/six/#six.integer_types","commit_id":"605bff18a4c865f3fe0911fb21bb6bbb4c6acc1f"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"f92642403d4acc4b7bcdcf73ae7737945a19c26e","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    @classmethod"},{"line_number":60,"context_line":"    def validate(cls, value, minimum\u003dNone):"},{"line_number":61,"context_line":"        if not isinstance(value, int):"},{"line_number":62,"context_line":"            try:"},{"line_number":63,"context_line":"                value \u003d int(value)"},{"line_number":64,"context_line":"            except Exception:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3aaa91ec_242fc6a2","line":61,"range":{"start_line":61,"start_character":33,"end_line":61,"end_character":36},"in_reply_to":"5a9d85d2_6ba9627b","updated":"2016-06-27 23:00:49.000000000","message":"Done","commit_id":"605bff18a4c865f3fe0911fb21bb6bbb4c6acc1f"}]}
