)]}'
{"oslo_utils/strutils.py":[{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"ca371905b5a1d184a183f9c0f2d8a4d2bf94d4c2","unresolved":false,"context_lines":[{"line_number":390,"context_line":"            msg \u003d _(\"The input is not a string or unicode\")"},{"line_number":391,"context_line":"        else:"},{"line_number":392,"context_line":"            msg \u003d _(\"%s is not a string or unicode\") % name"},{"line_number":393,"context_line":"        raise ValueError(msg)"},{"line_number":394,"context_line":""},{"line_number":395,"context_line":"    if name is None:"},{"line_number":396,"context_line":"        name \u003d value"}],"source_content_type":"text/x-python","patch_set":1,"id":"da6ed579_b2cfc128","line":393,"updated":"2016-01-15 23:13:14.000000000","message":"Odd, seems more like type error not value error :-/","commit_id":"620729449a06d40c4b1d87e15fcc1aa8b43d5a2e"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"e233c61a37555d12ac25eff3a1510ddbd9e81054","unresolved":false,"context_lines":[{"line_number":390,"context_line":"            msg \u003d _(\"The input is not a string or unicode\")"},{"line_number":391,"context_line":"        else:"},{"line_number":392,"context_line":"            msg \u003d _(\"%s is not a string or unicode\") % name"},{"line_number":393,"context_line":"        raise ValueError(msg)"},{"line_number":394,"context_line":""},{"line_number":395,"context_line":"    if name is None:"},{"line_number":396,"context_line":"        name \u003d value"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_0e67cbb7","line":393,"in_reply_to":"da6ed579_b2cfc128","updated":"2016-01-25 03:27:09.000000000","message":"yes, a type error is more meaningful , I just copy the code from Nova and Cinder.","commit_id":"620729449a06d40c4b1d87e15fcc1aa8b43d5a2e"},{"author":{"_account_id":18546,"name":"hang cheng","email":"jaff.cheng.sh@gmail.com","username":"jaff_cheng"},"change_message_id":"0772c469373926daa29e48b5adfab62fb8500683","unresolved":false,"context_lines":[{"line_number":400,"context_line":"                \"%(min_length)s.\") % {\u0027name\u0027: name, \u0027min_length\u0027: min_length}"},{"line_number":401,"context_line":"        raise ValueError(msg)"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"    if max_length and len(value) \u003e max_length:"},{"line_number":404,"context_line":"        msg \u003d _(\"%(name)s has more than %(max_length)s \""},{"line_number":405,"context_line":"                \"characters.\") % {\u0027name\u0027: name, \u0027max_length\u0027: max_length}"},{"line_number":406,"context_line":"        raise ValueError(msg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"da6ed579_01c4ac5c","line":403,"updated":"2016-01-14 08:04:02.000000000","message":"I think maybe it\u0027s better using brackets here for avoiding confusion.","commit_id":"620729449a06d40c4b1d87e15fcc1aa8b43d5a2e"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"e233c61a37555d12ac25eff3a1510ddbd9e81054","unresolved":false,"context_lines":[{"line_number":400,"context_line":"                \"%(min_length)s.\") % {\u0027name\u0027: name, \u0027min_length\u0027: min_length}"},{"line_number":401,"context_line":"        raise ValueError(msg)"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"    if max_length and len(value) \u003e max_length:"},{"line_number":404,"context_line":"        msg \u003d _(\"%(name)s has more than %(max_length)s \""},{"line_number":405,"context_line":"                \"characters.\") % {\u0027name\u0027: name, \u0027max_length\u0027: max_length}"},{"line_number":406,"context_line":"        raise ValueError(msg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_6eb3e70a","line":403,"in_reply_to":"da6ed579_01c4ac5c","updated":"2016-01-25 03:27:09.000000000","message":"thanks, I think the logic here isn\u0027t complicated to use a brackets :-)","commit_id":"620729449a06d40c4b1d87e15fcc1aa8b43d5a2e"},{"author":{"_account_id":16051,"name":"Ronald Bradford","email":"ronald.bradford@gmail.com","username":"ronaldbradford"},"change_message_id":"63235e44d8e2d339e664a78bb48c1f3149a18d78","unresolved":false,"context_lines":[{"line_number":393,"context_line":"        raise TypeError(msg)"},{"line_number":394,"context_line":""},{"line_number":395,"context_line":"    if name is None:"},{"line_number":396,"context_line":"        name \u003d value"},{"line_number":397,"context_line":""},{"line_number":398,"context_line":"    if len(value) \u003c min_length:"},{"line_number":399,"context_line":"        msg \u003d _(\"%(name)s has a minimum character requirement of \""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_acbd0b04","line":396,"range":{"start_line":396,"start_character":15,"end_line":396,"end_character":16},"updated":"2016-01-26 16:59:19.000000000","message":"If you moved this if statement to be first, you would simply the type check removing an internal if check, and a msg that requires translation.","commit_id":"11f18a1d6ab8fdaa593a765b1587f99f9c10cdaa"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"f66817931d5d2ccc53b2c7c79b5dd52061eb0833","unresolved":false,"context_lines":[{"line_number":393,"context_line":"        raise TypeError(msg)"},{"line_number":394,"context_line":""},{"line_number":395,"context_line":"    if name is None:"},{"line_number":396,"context_line":"        name \u003d value"},{"line_number":397,"context_line":""},{"line_number":398,"context_line":"    if len(value) \u003c min_length:"},{"line_number":399,"context_line":"        msg \u003d _(\"%(name)s has a minimum character requirement of \""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_f9f566ec","line":396,"range":{"start_line":396,"start_character":15,"end_line":396,"end_character":16},"in_reply_to":"9a68dd71_acbd0b04","updated":"2016-02-01 05:45:29.000000000","message":"Done","commit_id":"11f18a1d6ab8fdaa593a765b1587f99f9c10cdaa"},{"author":{"_account_id":16051,"name":"Ronald Bradford","email":"ronald.bradford@gmail.com","username":"ronaldbradford"},"change_message_id":"63235e44d8e2d339e664a78bb48c1f3149a18d78","unresolved":false,"context_lines":[{"line_number":398,"context_line":"    if len(value) \u003c min_length:"},{"line_number":399,"context_line":"        msg \u003d _(\"%(name)s has a minimum character requirement of \""},{"line_number":400,"context_line":"                \"%(min_length)s.\") % {\u0027name\u0027: name, \u0027min_length\u0027: min_length}"},{"line_number":401,"context_line":"        raise ValueError(msg)"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"    if max_length and len(value) \u003e max_length:"},{"line_number":404,"context_line":"        msg \u003d _(\"%(name)s has more than %(max_length)s \""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_ec1f8307","line":401,"updated":"2016-01-26 16:59:19.000000000","message":"Would it be useful to provide the actual string length i.e. min of 3, only 2 provided. (as the message only provide the name)","commit_id":"11f18a1d6ab8fdaa593a765b1587f99f9c10cdaa"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"f66817931d5d2ccc53b2c7c79b5dd52061eb0833","unresolved":false,"context_lines":[{"line_number":398,"context_line":"    if len(value) \u003c min_length:"},{"line_number":399,"context_line":"        msg \u003d _(\"%(name)s has a minimum character requirement of \""},{"line_number":400,"context_line":"                \"%(min_length)s.\") % {\u0027name\u0027: name, \u0027min_length\u0027: min_length}"},{"line_number":401,"context_line":"        raise ValueError(msg)"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"    if max_length and len(value) \u003e max_length:"},{"line_number":404,"context_line":"        msg \u003d _(\"%(name)s has more than %(max_length)s \""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_79e2d630","line":401,"in_reply_to":"9a68dd71_ec1f8307","updated":"2016-02-01 05:45:29.000000000","message":"Done","commit_id":"11f18a1d6ab8fdaa593a765b1587f99f9c10cdaa"},{"author":{"_account_id":16051,"name":"Ronald Bradford","email":"ronald.bradford@gmail.com","username":"ronaldbradford"},"change_message_id":"63235e44d8e2d339e664a78bb48c1f3149a18d78","unresolved":false,"context_lines":[{"line_number":403,"context_line":"    if max_length and len(value) \u003e max_length:"},{"line_number":404,"context_line":"        msg \u003d _(\"%(name)s has more than %(max_length)s \""},{"line_number":405,"context_line":"                \"characters.\") % {\u0027name\u0027: name, \u0027max_length\u0027: max_length}"},{"line_number":406,"context_line":"        raise ValueError(msg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_6cd2b336","line":406,"updated":"2016-01-26 16:59:19.000000000","message":"As above, would actual length be helpful to the error message.","commit_id":"11f18a1d6ab8fdaa593a765b1587f99f9c10cdaa"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"f66817931d5d2ccc53b2c7c79b5dd52061eb0833","unresolved":false,"context_lines":[{"line_number":403,"context_line":"    if max_length and len(value) \u003e max_length:"},{"line_number":404,"context_line":"        msg \u003d _(\"%(name)s has more than %(max_length)s \""},{"line_number":405,"context_line":"                \"characters.\") % {\u0027name\u0027: name, \u0027max_length\u0027: max_length}"},{"line_number":406,"context_line":"        raise ValueError(msg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_19d2c25c","line":406,"in_reply_to":"9a68dd71_6cd2b336","updated":"2016-02-01 05:45:29.000000000","message":"Done","commit_id":"11f18a1d6ab8fdaa593a765b1587f99f9c10cdaa"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"cb539df6a2e58873cd684b12a113554d1b77ddd2","unresolved":false,"context_lines":[{"line_number":383,"context_line":"    :param max_length: the max_length of the string"},{"line_number":384,"context_line":"    :raises TypeError, ValueError: For any invalid input."},{"line_number":385,"context_line":""},{"line_number":386,"context_line":"    .. versionadded:: 3.5"},{"line_number":387,"context_line":"    \"\"\""},{"line_number":388,"context_line":"    if name is None:"},{"line_number":389,"context_line":"        name \u003d value"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a57f1b5_58f2e270","line":386,"range":{"start_line":386,"start_character":22,"end_line":386,"end_character":25},"updated":"2016-02-10 22:27:36.000000000","message":"3.6 now","commit_id":"83bde1d12c772cb8a5256105319d7fab0f6b589d"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"4ec1602e04c811185223f40e363e21431d2cef6c","unresolved":false,"context_lines":[{"line_number":401,"context_line":"        raise ValueError(msg)"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"    if max_length and length \u003e max_length:"},{"line_number":404,"context_line":"        msg \u003d _(\"%(name)s has %(length) characters, more than \""},{"line_number":405,"context_line":"                \"%(max_length)s.\") % {\u0027name\u0027: name, \u0027length\u0027: length,"},{"line_number":406,"context_line":"                                      \u0027max_length\u0027: max_length}"},{"line_number":407,"context_line":"        raise ValueError(msg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"bae84128_289ba173","line":404,"range":{"start_line":404,"start_character":39,"end_line":404,"end_character":40},"updated":"2016-02-23 04:23:12.000000000","message":"Should be %(length)s","commit_id":"f369ddbc9f5568969b8302fc822edbad89cb81d1"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"465357fb57cc1cd86f275623bf6e7cc0b9a0b009","unresolved":false,"context_lines":[{"line_number":376,"context_line":""},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"def check_string_length(value, name\u003dNone, min_length\u003d0, max_length\u003dNone):"},{"line_number":379,"context_line":"    \"\"\"Check the length of specified string"},{"line_number":380,"context_line":"    :param value: the value of the string"},{"line_number":381,"context_line":"    :param name: the name of the string"},{"line_number":382,"context_line":"    :param min_length: the min_length of the string"}],"source_content_type":"text/x-python","patch_set":6,"id":"bae84128_22057545","line":379,"updated":"2016-02-23 09:34:03.000000000","message":"usually a blank line between summary and body, pep8 errors with this on Nova. Also need to end the summary sentence with a dot.","commit_id":"8b65374ccd7dd8ad7f7439b4e3f79cc8a9e2f04c"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"465357fb57cc1cd86f275623bf6e7cc0b9a0b009","unresolved":false,"context_lines":[{"line_number":389,"context_line":"        name \u003d value"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"    if not isinstance(value, six.string_types):"},{"line_number":392,"context_line":""},{"line_number":393,"context_line":"        msg \u003d _(\"%s is not a string or unicode\") % name"},{"line_number":394,"context_line":"        raise TypeError(msg)"},{"line_number":395,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"bae84128_e29d4d0b","line":392,"updated":"2016-02-23 09:34:03.000000000","message":"don\u0027t need this blank line","commit_id":"8b65374ccd7dd8ad7f7439b4e3f79cc8a9e2f04c"}]}
