)]}'
{"oslo_utils/strutils.py":[{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"90c733877cb8403f4cc84d4bdcf2bd2d0e8a50dc","unresolved":false,"context_lines":[{"line_number":487,"context_line":"    return segs"},{"line_number":488,"context_line":""},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"def split_by_commas(value, strict\u003dTrue):"},{"line_number":491,"context_line":"    \"\"\"Split values by commas and quotes according to api-wg"},{"line_number":492,"context_line":""},{"line_number":493,"context_line":"    :param value: value to be split"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f515b1d_991f5907","line":490,"range":{"start_line":490,"start_character":27,"end_line":490,"end_character":39},"updated":"2017-10-09 09:20:17.000000000","message":"As usual, we\u0027d better keep default behaviors, set strict\u003dFalse by default ?","commit_id":"83ccd00159491717a52c44e9d85df787014d3f38"},{"author":{"_account_id":24711,"name":"Jackie Truong","email":"jacklyn.truong@jhuapl.edu","username":"jackie-truong"},"change_message_id":"13d1297092f0eb548c642fa12722873be70f9c11","unresolved":false,"context_lines":[{"line_number":487,"context_line":"    return segs"},{"line_number":488,"context_line":""},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"def split_by_commas(value, strict\u003dTrue):"},{"line_number":491,"context_line":"    \"\"\"Split values by commas and quotes according to api-wg"},{"line_number":492,"context_line":""},{"line_number":493,"context_line":"    :param value: value to be split"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f4e5783_a167f325","line":490,"range":{"start_line":490,"start_character":27,"end_line":490,"end_character":39},"in_reply_to":"5f4e5783_015487c9","updated":"2017-10-10 19:17:40.000000000","message":"Will do. But I will note that the logic taken when strict\u003dTrue is the original behavior. By defaulting to strict\u003dFalse, current usages of split_by_commas will return the value in \u0027value\u0027 if it does not contain any commas (rather than raising a ValueError).","commit_id":"83ccd00159491717a52c44e9d85df787014d3f38"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"b80996a63a6628761b742d81d730dca6b16e092b","unresolved":false,"context_lines":[{"line_number":487,"context_line":"    return segs"},{"line_number":488,"context_line":""},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"def split_by_commas(value, strict\u003dTrue):"},{"line_number":491,"context_line":"    \"\"\"Split values by commas and quotes according to api-wg"},{"line_number":492,"context_line":""},{"line_number":493,"context_line":"    :param value: value to be split"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f4e5783_015487c9","line":490,"range":{"start_line":490,"start_character":27,"end_line":490,"end_character":39},"in_reply_to":"7f515b1d_0e954f87","updated":"2017-10-10 19:01:05.000000000","message":"let\u0027s keep the default behavior","commit_id":"83ccd00159491717a52c44e9d85df787014d3f38"},{"author":{"_account_id":24711,"name":"Jackie Truong","email":"jacklyn.truong@jhuapl.edu","username":"jackie-truong"},"change_message_id":"53896f30b4f2a45f9c7e31b06ab4734c2c0aebe6","unresolved":false,"context_lines":[{"line_number":487,"context_line":"    return segs"},{"line_number":488,"context_line":""},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"def split_by_commas(value, strict\u003dTrue):"},{"line_number":491,"context_line":"    \"\"\"Split values by commas and quotes according to api-wg"},{"line_number":492,"context_line":""},{"line_number":493,"context_line":"    :param value: value to be split"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f515b1d_0e954f87","line":490,"range":{"start_line":490,"start_character":27,"end_line":490,"end_character":39},"in_reply_to":"7f515b1d_991f5907","updated":"2017-10-09 15:57:45.000000000","message":"Yes, good point.","commit_id":"83ccd00159491717a52c44e9d85df787014d3f38"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"90c733877cb8403f4cc84d4bdcf2bd2d0e8a50dc","unresolved":false,"context_lines":[{"line_number":507,"context_line":""},{"line_number":508,"context_line":"    try:"},{"line_number":509,"context_line":"        return list(grammar.parseString(value))"},{"line_number":510,"context_line":"    except (pp.ParseException, AttributeError):"},{"line_number":511,"context_line":"        raise ValueError(\"Invalid value: %s\" % value)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f515b1d_b9f9f5c8","line":510,"range":{"start_line":510,"start_character":1,"end_line":510,"end_character":47},"updated":"2017-10-09 09:20:17.000000000","message":"can you explain why change this line ?","commit_id":"83ccd00159491717a52c44e9d85df787014d3f38"},{"author":{"_account_id":24711,"name":"Jackie Truong","email":"jacklyn.truong@jhuapl.edu","username":"jackie-truong"},"change_message_id":"13d1297092f0eb548c642fa12722873be70f9c11","unresolved":false,"context_lines":[{"line_number":507,"context_line":""},{"line_number":508,"context_line":"    try:"},{"line_number":509,"context_line":"        return list(grammar.parseString(value))"},{"line_number":510,"context_line":"    except (pp.ParseException, AttributeError):"},{"line_number":511,"context_line":"        raise ValueError(\"Invalid value: %s\" % value)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f4e5783_0180078b","line":510,"range":{"start_line":510,"start_character":1,"end_line":510,"end_character":47},"in_reply_to":"5f4e5783_e1696b8b","updated":"2017-10-10 19:17:40.000000000","message":"This will be added in the next patch update.","commit_id":"83ccd00159491717a52c44e9d85df787014d3f38"},{"author":{"_account_id":24711,"name":"Jackie Truong","email":"jacklyn.truong@jhuapl.edu","username":"jackie-truong"},"change_message_id":"53896f30b4f2a45f9c7e31b06ab4734c2c0aebe6","unresolved":false,"context_lines":[{"line_number":507,"context_line":""},{"line_number":508,"context_line":"    try:"},{"line_number":509,"context_line":"        return list(grammar.parseString(value))"},{"line_number":510,"context_line":"    except (pp.ParseException, AttributeError):"},{"line_number":511,"context_line":"        raise ValueError(\"Invalid value: %s\" % value)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f515b1d_eefe73ad","line":510,"range":{"start_line":510,"start_character":1,"end_line":510,"end_character":47},"in_reply_to":"7f515b1d_b9f9f5c8","updated":"2017-10-09 15:57:45.000000000","message":"Prior to this patch, an AttributeError is raised when \u0027value\u0027 does not contain any commas. This was confusing, because users of this method were expecting errors to raise a ValueError. For consistency, this updated exception line will catch the AttributeError and raise a ValueError.","commit_id":"83ccd00159491717a52c44e9d85df787014d3f38"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"b80996a63a6628761b742d81d730dca6b16e092b","unresolved":false,"context_lines":[{"line_number":507,"context_line":""},{"line_number":508,"context_line":"    try:"},{"line_number":509,"context_line":"        return list(grammar.parseString(value))"},{"line_number":510,"context_line":"    except (pp.ParseException, AttributeError):"},{"line_number":511,"context_line":"        raise ValueError(\"Invalid value: %s\" % value)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f4e5783_e1696b8b","line":510,"range":{"start_line":510,"start_character":1,"end_line":510,"end_character":47},"in_reply_to":"7f515b1d_eefe73ad","updated":"2017-10-10 19:01:05.000000000","message":"thanks for the explanation, please add these into the commit message","commit_id":"83ccd00159491717a52c44e9d85df787014d3f38"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"4cae83c9a4be455a5ae3485439ac31cd6ece6fcd","unresolved":false,"context_lines":[{"line_number":487,"context_line":"    return segs"},{"line_number":488,"context_line":""},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"def split_by_commas(value, strict\u003dFalse):"},{"line_number":491,"context_line":"    \"\"\"Split values by commas and quotes according to api-wg"},{"line_number":492,"context_line":""},{"line_number":493,"context_line":"    :param value: value to be split"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f4e5783_0503200f","line":490,"range":{"start_line":490,"start_character":27,"end_line":490,"end_character":33},"updated":"2017-10-13 03:01:28.000000000","message":"if original behavior is strict\u003dTrue, we should set strict with True here. we don\u0027t want to break other projects.","commit_id":"70a6586a4192ed78124506b2db26f3e40f8dee30"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"4cae83c9a4be455a5ae3485439ac31cd6ece6fcd","unresolved":false,"context_lines":[{"line_number":498,"context_line":""},{"line_number":499,"context_line":"    .. versionadded:: 3.17"},{"line_number":500,"context_line":"    \"\"\""},{"line_number":501,"context_line":"    if not strict and ((value is None) or (\u0027,\u0027 not in value)):"},{"line_number":502,"context_line":"        return value"},{"line_number":503,"context_line":""},{"line_number":504,"context_line":"    word \u003d (pp.QuotedString(quoteChar\u003d\u0027\"\u0027, escChar\u003d\u0027\\\\\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f4e5783_e26d9a04","line":501,"range":{"start_line":501,"start_character":23,"end_line":501,"end_character":39},"updated":"2017-10-13 03:01:28.000000000","message":"this case is not explained in the docstring","commit_id":"70a6586a4192ed78124506b2db26f3e40f8dee30"}]}
