)]}'
{"doc/source/conf.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"d7d35fd78c761d272a60626de9cccca6d5e03fd9","unresolved":false,"context_lines":[{"line_number":310,"context_line":"    def splittext(metrics, text, bound, measure\u003d\u0027width\u0027):"},{"line_number":311,"context_line":"        folded \u003d []"},{"line_number":312,"context_line":"        if text \u003d\u003d \u0027\u0027:"},{"line_number":313,"context_line":"            folded.append(u(\u0027 \u0027))"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"        for i in range(len(text), 0, -1):"},{"line_number":316,"context_line":"            textsize \u003d metrics.textsize(text[0:i])"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_5a39433f","line":313,"range":{"start_line":313,"start_character":12,"end_line":313,"end_character":33},"updated":"2017-06-29 16:08:16.000000000","message":"or\n\n return [u(\u0027 \u0027)]","commit_id":"51d9cd80d371876bb5b2b7e6e30f6ec86b4f4be7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"d7d35fd78c761d272a60626de9cccca6d5e03fd9","unresolved":false,"context_lines":[{"line_number":314,"context_line":""},{"line_number":315,"context_line":"        for i in range(len(text), 0, -1):"},{"line_number":316,"context_line":"            textsize \u003d metrics.textsize(text[0:i])"},{"line_number":317,"context_line":"            if not getattr(textsize, measure) \u003c\u003d bound:"},{"line_number":318,"context_line":"                continue"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"            if text[i:] and not text[i].isspace():"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_fa75affb","line":317,"range":{"start_line":317,"start_character":15,"end_line":317,"end_character":54},"updated":"2017-06-29 16:08:16.000000000","message":"or\n\n if getattr(textsize, measure) \u003e bound:","commit_id":"51d9cd80d371876bb5b2b7e6e30f6ec86b4f4be7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"d7d35fd78c761d272a60626de9cccca6d5e03fd9","unresolved":false,"context_lines":[{"line_number":320,"context_line":"            if text[i:] and not text[i].isspace():"},{"line_number":321,"context_line":"                continue"},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"            folded.append(text[0:i])"},{"line_number":324,"context_line":"            if text[i:]:"},{"line_number":325,"context_line":"                folded +\u003d splittext(metrics, text[i:], bound, measure)"},{"line_number":326,"context_line":"            break"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_5a4a6380","line":323,"range":{"start_line":323,"start_character":26,"end_line":323,"end_character":35},"updated":"2017-06-29 16:08:16.000000000","message":"Multiple trailing spaces will stick around, which isn\u0027t a big problem, really, but suggest text[0:i].strip().","commit_id":"51d9cd80d371876bb5b2b7e6e30f6ec86b4f4be7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"d7d35fd78c761d272a60626de9cccca6d5e03fd9","unresolved":false,"context_lines":[{"line_number":322,"context_line":""},{"line_number":323,"context_line":"            folded.append(text[0:i])"},{"line_number":324,"context_line":"            if text[i:]:"},{"line_number":325,"context_line":"                folded +\u003d splittext(metrics, text[i:], bound, measure)"},{"line_number":326,"context_line":"            break"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"        return folded"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_5a1263b3","line":325,"range":{"start_line":325,"start_character":45,"end_line":325,"end_character":53},"updated":"2017-06-29 16:08:16.000000000","message":"Leaves the space on the front of each line after the first.  Suggest text[i:].strip()","commit_id":"51d9cd80d371876bb5b2b7e6e30f6ec86b4f4be7"},{"author":{"_account_id":20223,"name":"zhaolihui","email":"zhaolh@awcloud.com","username":"zhaolihui"},"change_message_id":"9b88227c2079cbeb32a298f93531515dc3cf8bed","unresolved":false,"context_lines":[{"line_number":323,"context_line":"            folded.append(text[0:i])"},{"line_number":324,"context_line":"            if text[i:]:"},{"line_number":325,"context_line":"                folded +\u003d splittext(metrics, text[i:], bound, measure)"},{"line_number":326,"context_line":"            break"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"        return folded"},{"line_number":329,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_db49e460","line":326,"range":{"start_line":326,"start_character":12,"end_line":326,"end_character":17},"updated":"2017-06-29 09:15:07.000000000","message":"maybe\nif text[i:]:\n    folded +\u003d ...\n    break","commit_id":"51d9cd80d371876bb5b2b7e6e30f6ec86b4f4be7"},{"author":{"_account_id":20223,"name":"zhaolihui","email":"zhaolh@awcloud.com","username":"zhaolihui"},"change_message_id":"4915549b9cc19114c887c103bcd6cb92504da746","unresolved":false,"context_lines":[{"line_number":323,"context_line":"            folded.append(text[0:i])"},{"line_number":324,"context_line":"            if text[i:]:"},{"line_number":325,"context_line":"                folded +\u003d splittext(metrics, text[i:], bound, measure)"},{"line_number":326,"context_line":"            break"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"        return folded"},{"line_number":329,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_4fae27e8","line":326,"range":{"start_line":326,"start_character":12,"end_line":326,"end_character":17},"in_reply_to":"3f1d235d_0c1cbd68","updated":"2017-06-29 14:41:53.000000000","message":"for i in range(...):\n   ...\n   break\n\nmaybe it is right, but it\u0027s puzzled with this code flow.","commit_id":"51d9cd80d371876bb5b2b7e6e30f6ec86b4f4be7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"d7d35fd78c761d272a60626de9cccca6d5e03fd9","unresolved":false,"context_lines":[{"line_number":323,"context_line":"            folded.append(text[0:i])"},{"line_number":324,"context_line":"            if text[i:]:"},{"line_number":325,"context_line":"                folded +\u003d splittext(metrics, text[i:], bound, measure)"},{"line_number":326,"context_line":"            break"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"        return folded"},{"line_number":329,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_8fe67fe8","line":326,"range":{"start_line":326,"start_character":12,"end_line":326,"end_character":17},"in_reply_to":"3f1d235d_4fae27e8","updated":"2017-06-29 16:08:16.000000000","message":"Yeah, I agree it looks weird.  I\u0027m sure there\u0027s a way to refactor to avoid it, but it would probably end up looking weird in some other way.","commit_id":"51d9cd80d371876bb5b2b7e6e30f6ec86b4f4be7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"17bd6995d8d73d224a13b133818261efd9fb67ba","unresolved":false,"context_lines":[{"line_number":323,"context_line":"            folded.append(text[0:i])"},{"line_number":324,"context_line":"            if text[i:]:"},{"line_number":325,"context_line":"                folded +\u003d splittext(metrics, text[i:], bound, measure)"},{"line_number":326,"context_line":"            break"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"        return folded"},{"line_number":329,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_0c1cbd68","line":326,"range":{"start_line":326,"start_character":12,"end_line":326,"end_character":17},"in_reply_to":"3f1d235d_db49e460","updated":"2017-06-29 14:13:59.000000000","message":"I think this is right.  If there\u0027s nothing left after text[i], we don\u0027t want to continue walking text[i-1] \u003d\u003e text[i-2] \u003d\u003e etc. - we would continue appending copies of each sub-sentence.","commit_id":"51d9cd80d371876bb5b2b7e6e30f6ec86b4f4be7"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"a693b305223a67ca01478ccc9affe63b0b565de4","unresolved":false,"context_lines":[{"line_number":45,"context_line":"              \u0027oslo_policy.sphinxext\u0027,"},{"line_number":46,"context_line":"              \u0027ext.versioned_notifications\u0027,"},{"line_number":47,"context_line":"              \u0027ext.feature_matrix\u0027,"},{"line_number":48,"context_line":"              \u0027sphinxcontrib.actdiag\u0027,"},{"line_number":49,"context_line":"              ]"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"# openstackdocstheme options"},{"line_number":52,"context_line":"repository_name \u003d \u0027openstack/nova\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f287b81_727e9be4","line":49,"range":{"start_line":48,"start_character":38,"end_line":49,"end_character":15},"updated":"2017-08-31 12:20:15.000000000","message":"shouldn\u0027t be it added here? sphinxcontrib.blockdiag\n\nthis change broke RPM build for nova in TripleO.","commit_id":"ed296fc007b9ff33d0ac236050eb58360a31977d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"49767e3bba6c2ce8bf7981c7474907fa297cd8e6","unresolved":false,"context_lines":[{"line_number":45,"context_line":"              \u0027oslo_policy.sphinxext\u0027,"},{"line_number":46,"context_line":"              \u0027ext.versioned_notifications\u0027,"},{"line_number":47,"context_line":"              \u0027ext.feature_matrix\u0027,"},{"line_number":48,"context_line":"              \u0027sphinxcontrib.actdiag\u0027,"},{"line_number":49,"context_line":"              ]"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"# openstackdocstheme options"},{"line_number":52,"context_line":"repository_name \u003d \u0027openstack/nova\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f287b81_e5c88355","line":49,"range":{"start_line":48,"start_character":38,"end_line":49,"end_character":15},"in_reply_to":"7f287b81_727e9be4","updated":"2017-08-31 12:56:45.000000000","message":"No, we\u0027re using actdiag - not blockdiag. Also, this is only fixing existing code. It\u0027s the patch before that you want","commit_id":"ed296fc007b9ff33d0ac236050eb58360a31977d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8d4b2ac7952fdccb834b99d083b092fa98761add","unresolved":false,"context_lines":[{"line_number":45,"context_line":"              \u0027oslo_policy.sphinxext\u0027,"},{"line_number":46,"context_line":"              \u0027ext.versioned_notifications\u0027,"},{"line_number":47,"context_line":"              \u0027ext.feature_matrix\u0027,"},{"line_number":48,"context_line":"              \u0027sphinxcontrib.actdiag\u0027,"},{"line_number":49,"context_line":"              ]"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"# openstackdocstheme options"},{"line_number":52,"context_line":"repository_name \u003d \u0027openstack/nova\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f287b81_45e517db","line":49,"range":{"start_line":48,"start_character":38,"end_line":49,"end_character":15},"in_reply_to":"7f287b81_e5c88355","updated":"2017-08-31 12:57:26.000000000","message":"See https://review.openstack.org/#/c/475810/11/doc/source/conf.py","commit_id":"ed296fc007b9ff33d0ac236050eb58360a31977d"}]}
