)]}'
{"cliff/sphinxext.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1e1cebd14abcbfbbfef12c0cbe137e686484a3d3","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    return \u0027\u0027.join(prefixed_lines())"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"def _format_usage(parser):"},{"line_number":39,"context_line":"    \"\"\"Get usage without a prefix.\"\"\""},{"line_number":40,"context_line":"    fmt \u003d argparse.HelpFormatter(parser.prog)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    optionals \u003d parser._get_optional_actions()"},{"line_number":43,"context_line":"    positionals \u003d parser._get_positional_actions()"},{"line_number":44,"context_line":"    groups \u003d parser._mutually_exclusive_groups"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    # hacked variant of the regex used by the actual argparse module. Unlike"},{"line_number":47,"context_line":"    # that version, this one attempts to group long and short opts with their"},{"line_number":48,"context_line":"    # optional arguments ensuring that, for example, \u0027---format \u003cFORMAT\u003e\u0027"},{"line_number":49,"context_line":"    # becomes [\u0027--format \u003cFORMAT\u003e\u0027] and not [\u0027--format\u0027, \u0027\u003cFORMAT\u003e\u0027]."},{"line_number":50,"context_line":"    # Yes, they really do use regexes to break apart and rewrap their help"},{"line_number":51,"context_line":"    # string. Don\u0027t ask me why."},{"line_number":52,"context_line":"    part_regexp \u003d r\u0027\\(.*?\\)+|\\[.*?\\]+|(?:(?:-\\w|--\\w+)(?:\\s+\u003c\\w+\u003e)?)|\\S+\u0027"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    opt_usage \u003d fmt._format_actions_usage(optionals, groups)"},{"line_number":55,"context_line":"    pos_usage \u003d fmt._format_actions_usage(positionals, groups)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    opt_parts \u003d re.findall(part_regexp, opt_usage)"},{"line_number":58,"context_line":"    pos_parts \u003d re.findall(part_regexp, pos_usage)"},{"line_number":59,"context_line":"    parts \u003d opt_parts + pos_parts"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    return [parser.prog] + [_indent(x) for x in parts]"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"def _format_positional_action(action):"}],"source_content_type":"text/x-python","patch_set":1,"id":"df140735_68cc2289","line":61,"range":{"start_line":38,"start_character":0,"end_line":61,"end_character":54},"updated":"2017-05-30 13:00:13.000000000","message":"I\u0027m using a local version of this here [1], so you can check this out for sample output\n\n[1] https://review.openstack.org/#/c/452861/15/doc/source/cliff_sphinxext.py","commit_id":"5c8983e536a364cd71763415b784e4f6d37c2ef7"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"deaab1bd25fab4089242f2ec97755ccab3950a76","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    pos_parts \u003d re.findall(part_regexp, pos_usage)"},{"line_number":59,"context_line":"    parts \u003d opt_parts + pos_parts"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    if len(\u0027 \u0027.join([parser.prog] + parts)) \u003c 72:"},{"line_number":62,"context_line":"        return [\u0027 \u0027.join([parser.prog] + parts)]"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    return [parser.prog] + [_indent(x) for x in parts]"}],"source_content_type":"text/x-python","patch_set":2,"id":"df140735_fc516a37","line":61,"updated":"2017-06-05 18:55:17.000000000","message":"Does argparse hard-code this at 72?  Elsewhere in cliff we do look at terminal width to do word-wrapping inside columns.  I don\u0027t think we need to block on this, but would be good to follow-up.\n\nThe length check also does not appear to be in the temporary copy in the OSC review: https://review.openstack.org/#/c/452861/16/doc/source/cliff_sphinxext.py","commit_id":"78f188023c90d37331a29b3876abc7e94dddaac2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c017b45b9afbad76146d5f6211813a31e232d684","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    pos_parts \u003d re.findall(part_regexp, pos_usage)"},{"line_number":59,"context_line":"    parts \u003d opt_parts + pos_parts"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    if len(\u0027 \u0027.join([parser.prog] + parts)) \u003c 72:"},{"line_number":62,"context_line":"        return [\u0027 \u0027.join([parser.prog] + parts)]"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    return [parser.prog] + [_indent(x) for x in parts]"},{"line_number":65,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"df140735_59065f1e","line":62,"range":{"start_line":61,"start_character":0,"end_line":62,"end_character":48},"updated":"2017-06-02 15:34:37.000000000","message":"This is implicitly validated by all the existing tests, hence, no new tests.","commit_id":"78f188023c90d37331a29b3876abc7e94dddaac2"}]}
