def wrap():
try:
exe = basename(argv[0])
- if argv[1:]:
- from utils import pref_enc
- internal_argv = [arg.decode(pref_enc) for arg in argv]
+ from utils import pref_enc
+ internal_argv = [arg.decode(pref_enc) for arg in argv]
parser = ArgumentParseManager(exe)
if parser.arguments['version'].value:
limit = int(user_input)
except ValueError:
index = 0
- digits = [str(num) for num in range(0, 10)] + ['.']
+ digits = ['%s' % num for num in range(0, 10)] + ['.']
while user_input[index] in digits:
index += 1
limit = user_input[:index]
from cmd import Cmd
from os import popen
-from sys import stdout, stderr
+from sys import stdout
from kamaki.cli import exec_cmd, print_error_message, print_subcommands_help
from kamaki.cli.argument import ArgumentParseManager
-from kamaki.cli.utils import print_dict, split_input
+from kamaki.cli.utils import print_dict, split_input, pref_enc
from kamaki.cli.history import History
from kamaki.cli.errors import CLIError
from kamaki.clients import ClientError
<cmd> <term> <term> <args> is always parsed to most specific
even if cmd_term_term is not a terminal path
"""
+ line = line.decode(pref_enc)
subcmd, cmd_args = cmd.parse_out(split_input(line))
self._history.add(' '.join([cmd.path.replace('_', ' '), line]))
cmd_parser = ArgumentParseManager(
url += _encode(path[1:] if path.startswith('/') else path)
delim = '?'
for key, val in params.items():
- val = quote('' if val in (None, False) else '%s' % val)
+ val = quote('' if val in (None, False) else '%s' % _encode(val))
url += '%s%s%s' % (delim, key, ('=%s' % val) if val else '')
delim = '&'
parsed = urlparse(url)
self.url = _encode(u'%s' % url)
self.path = _encode((u'%s' % parsed.path) if parsed.path else '/')
if parsed.query:
- self.path += _encode(u'?%s' % parsed.query)
+ self.path += '?%s' % parsed.query
return (_encode(parsed.scheme), _encode(parsed.netloc))
def __init__(
sendlog.info('data size: 0%s' % plog)
def _encode_headers(self):
- headers = self.headers
+ headers = dict(self.headers)
for k, v in self.headers.items():
- headers[k] = quote(v)
+ headers[k] = quote(
+ v.encode('utf-8') if isinstance(v, unicode) else v)
self.headers = headers
def perform(self, conn):