)]}'
{"swiftclient/shell.py":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"381bcbabad7149c07df475967656219a3db817d7","unresolved":false,"context_lines":[{"line_number":1175,"context_line":"             [--os-service-type \u003cservice-type\u003e]"},{"line_number":1176,"context_line":"             [--os-endpoint-type \u003cendpoint-type\u003e]"},{"line_number":1177,"context_line":"             [--os-cacert \u003cca-certificate\u003e] [--insecure]"},{"line_number":1178,"context_line":"             [--no-ssl-compression]"},{"line_number":1179,"context_line":"             \u003csubcommand\u003e [--help] [\u003csubcommand options\u003e]"},{"line_number":1180,"context_line":""},{"line_number":1181,"context_line":"Command-line interface to the OpenStack Swift API."}],"source_content_type":"text/x-python","patch_set":3,"id":"9a8ffd7b_e85cf21a","line":1178,"updated":"2015-12-02 13:53:15.000000000","message":"insert [--debug] [--info] after [--help]\n\nactually, *any* of the options can come before or after the subcommand so I am not sure how that should be precisely shown in the usage? Perhaps by separating out the definition of options and then having:\n\n  Usage: swift [\u003coptions\u003e] subcommand [\u003coptions\u003e] [\u003csubcommand-options\u003e]\n\n  where \u003coptions\u003e is ...\n\nBut that\u0027s a bigger diff than your original fix :/ so maybe you should just ignore this comment :)","commit_id":"8dadea4ff1c7d1a92f3fb437d52307179f0a9f30"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"381bcbabad7149c07df475967656219a3db817d7","unresolved":false,"context_lines":[{"line_number":1407,"context_line":"    (options, args) \u003d parse_args(parser, argv[1:], enforce_requires\u003dFalse)"},{"line_number":1408,"context_line":"    parser.enable_interspersed_args()"},{"line_number":1409,"context_line":""},{"line_number":1410,"context_line":"    # The --debug and --info option are ignored if they are used after a"},{"line_number":1411,"context_line":"    # positional arg, but need to be set before a sucommand method is called"},{"line_number":1412,"context_line":"    if \"--debug\" in argv:"},{"line_number":1413,"context_line":"        options.debug \u003d True"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a8ffd7b_680b2225","line":1410,"updated":"2015-12-02 13:53:15.000000000","message":"I found this comment confusing because the first part describes what would happen without this change. Perhaps:\n\n  The --debug and --info option are ignored by optparse if they are used after\n  a positional arg, so need to be set here before a sucommand method is called","commit_id":"8dadea4ff1c7d1a92f3fb437d52307179f0a9f30"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"381bcbabad7149c07df475967656219a3db817d7","unresolved":false,"context_lines":[{"line_number":1408,"context_line":"    parser.enable_interspersed_args()"},{"line_number":1409,"context_line":""},{"line_number":1410,"context_line":"    # The --debug and --info option are ignored if they are used after a"},{"line_number":1411,"context_line":"    # positional arg, but need to be set before a sucommand method is called"},{"line_number":1412,"context_line":"    if \"--debug\" in argv:"},{"line_number":1413,"context_line":"        options.debug \u003d True"},{"line_number":1414,"context_line":"    if \"--info\" in argv:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a8ffd7b_d4df4ad4","line":1411,"updated":"2015-12-02 13:53:15.000000000","message":"s/sucommand/subcommand/","commit_id":"8dadea4ff1c7d1a92f3fb437d52307179f0a9f30"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"36063dda5023757bb9f1e6956aba3b953bc61b30","unresolved":false,"context_lines":[{"line_number":1146,"context_line":"    if options.debug or options.info:"},{"line_number":1147,"context_line":"        logging.getLogger(\"swiftclient\")"},{"line_number":1148,"context_line":"        if options.debug:"},{"line_number":1149,"context_line":"            logging.basicConfig(level\u003dlogging.DEBUG)"},{"line_number":1150,"context_line":"        elif options.info:"},{"line_number":1151,"context_line":"            logging.basicConfig(level\u003dlogging.INFO)"},{"line_number":1152,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_80adf29c","line":1149,"updated":"2015-12-02 16:31:39.000000000","message":"oops. we have lost line 1422 from the base version","commit_id":"8c29a0746444fc497c7bbc0d7696517cd2d0cba1"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"f8c0ad6c967cc0b573a1806b514da15b137ad0f3","unresolved":false,"context_lines":[{"line_number":1146,"context_line":"    if options.debug or options.info:"},{"line_number":1147,"context_line":"        logging.getLogger(\"swiftclient\")"},{"line_number":1148,"context_line":"        if options.debug:"},{"line_number":1149,"context_line":"            logging.basicConfig(level\u003dlogging.DEBUG)"},{"line_number":1150,"context_line":"            logging.getLogger(\u0027iso8601\u0027).setLevel(logging.WARNING)"},{"line_number":1151,"context_line":"        elif options.info:"},{"line_number":1152,"context_line":"            logging.basicConfig(level\u003dlogging.INFO)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_dac8c224","line":1149,"updated":"2015-12-02 17:19:22.000000000","message":"Only the first call to logging.basicConfig has any impact, right? That seems to be what the docs are saying [1]. So\n\n swift --info stat --debug\n\nwill log at the INFO level, yeah? Whereas all of these would log at DEBUG instead:\n\n swift --info --debug stat\n swift --debug --info stat\n swift --debug stat --info\n swift stat --info --debug\n swift stat --debug --info\n\nIs that intended? Would it be better to include this in the enforce_requires block, so we only call it once?\n\n[1] https://docs.python.org/2/library/logging.html#logging.basicConfig","commit_id":"4fe06c9b6525877b3d4de1cdc1556f402fb3387c"},{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"5ef3d0b6a341ed75cb2724d1fb9fd7ca5919d7df","unresolved":false,"context_lines":[{"line_number":1146,"context_line":"    if options.debug or options.info:"},{"line_number":1147,"context_line":"        logging.getLogger(\"swiftclient\")"},{"line_number":1148,"context_line":"        if options.debug:"},{"line_number":1149,"context_line":"            logging.basicConfig(level\u003dlogging.DEBUG)"},{"line_number":1150,"context_line":"            logging.getLogger(\u0027iso8601\u0027).setLevel(logging.WARNING)"},{"line_number":1151,"context_line":"        elif options.info:"},{"line_number":1152,"context_line":"            logging.basicConfig(level\u003dlogging.INFO)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a8ffd7b_7ffbc07b","line":1149,"in_reply_to":"9a8ffd7b_dac8c224","updated":"2015-12-02 19:23:30.000000000","message":"Yes, your examples are right. Including it in the enforce_requires block sounds good; in that case the loglevel will be always debug if both options are used.","commit_id":"4fe06c9b6525877b3d4de1cdc1556f402fb3387c"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"bb80f7a5831214a1fe3f3eb5603501f4ed0efaf0","unresolved":false,"context_lines":[{"line_number":1075,"context_line":"        exit()"},{"line_number":1076,"context_line":""},{"line_number":1077,"context_line":"    # Short circuit for tempurl, which doesn\u0027t need auth"},{"line_number":1078,"context_line":"    if len(args) \u003e 0 and args[0] \u003d\u003d \u0027tempurl\u0027:"},{"line_number":1079,"context_line":"        return options, args"},{"line_number":1080,"context_line":""},{"line_number":1081,"context_line":"    if options.auth_version \u003d\u003d \u00273.0\u0027:"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a8ffd7b_2118bed2","line":1078,"updated":"2015-12-02 20:04:32.000000000","message":"On early returns, we never set up logging. Maybe less important here? Not sure how much logging we do in the tempurl sub-command.","commit_id":"c7ade10dee1196c9ccaa81ce007157b71b7adb77"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"bb80f7a5831214a1fe3f3eb5603501f4ed0efaf0","unresolved":false,"context_lines":[{"line_number":1113,"context_line":"        \u0027region_name\u0027: options.os_region_name,"},{"line_number":1114,"context_line":"    }"},{"line_number":1115,"context_line":""},{"line_number":1116,"context_line":"    if len(args) \u003e 1 and args[0] \u003d\u003d \"capabilities\":"},{"line_number":1117,"context_line":"        return options, args"},{"line_number":1118,"context_line":""},{"line_number":1119,"context_line":"    if (options.os_options.get(\u0027object_storage_url\u0027) and"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a8ffd7b_e1363650","line":1116,"updated":"2015-12-02 20:04:32.000000000","message":"On early returns, we never set up logging.","commit_id":"c7ade10dee1196c9ccaa81ce007157b71b7adb77"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"bb80f7a5831214a1fe3f3eb5603501f4ed0efaf0","unresolved":false,"context_lines":[{"line_number":1118,"context_line":""},{"line_number":1119,"context_line":"    if (options.os_options.get(\u0027object_storage_url\u0027) and"},{"line_number":1120,"context_line":"            options.os_options.get(\u0027auth_token\u0027) and"},{"line_number":1121,"context_line":"            (options.auth_version \u003d\u003d \u00272.0\u0027 or options.auth_version \u003d\u003d \u00273\u0027)):"},{"line_number":1122,"context_line":"        return options, args"},{"line_number":1123,"context_line":""},{"line_number":1124,"context_line":"    if enforce_requires:"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a8ffd7b_61ec86bb","line":1121,"updated":"2015-12-02 20:04:32.000000000","message":"On early returns, we never set up logging.","commit_id":"c7ade10dee1196c9ccaa81ce007157b71b7adb77"}]}
