def process_cli_args(self): # We need to parse out -t and -p *before* argparse can see it because # of Python bug 9334, which prevents argparse from recognizing '-1:-1' # as an option value and not a (nonexistent) option name. saved_sys_argv = list(sys.argv) def parse_neg_one_value(opt_name): if opt_name in sys.argv: index = sys.argv.index(opt_name) if (index < len(sys.argv) - 1 and sys.argv[index + 1].startswith('-1')): opt_val = sys.argv[index + 1] del sys.argv[index:index + 2] return opt_val icmp_type_code = (parse_neg_one_value('-t') or parse_neg_one_value('--icmp-type-code')) port_range = (parse_neg_one_value('-p') or parse_neg_one_value('--port-range')) EC2Request.process_cli_args(self) if icmp_type_code: self.args['icmp_type_code'] = icmp_type_code if port_range: self.args['port_range'] = port_range sys.argv = saved_sys_argv