1
0
forked from VimPlug/jedi

fix __repr__ functions

This commit is contained in:
David Halter
2013-02-08 02:22:02 +01:00
parent 80d4c6e884
commit 5737e3ad1d

View File

@@ -710,10 +710,17 @@ class Statement(Simple):
return list(result)
def get_code(self, new_line=True):
code = ''
for c in self.get_assignment_calls():
if isinstance(c, Call):
code += c.get_code()
else:
code += c
if new_line:
return self.code + '\n'
return code + '\n'
else:
return self.code
return code
def get_set_vars(self):
""" Get the names for the statement. """
@@ -760,6 +767,8 @@ class Statement(Simple):
else:
is_key = maybe_dict and break_tok == ':'
arr.add_statement(stmt, is_key)
if break_tok in closing_brackets:
break
if not arr.values and maybe_dict:
# this is a really special case - empty brackets {} are
# always dictionaries and not sets.
@@ -775,7 +784,7 @@ class Statement(Simple):
def parse_array_el(token_iterator, start_pos, maybe_dict=False):
token_list = []
level = 0
level = 1
tok = None
for i, tok_temp in token_iterator:
try:
@@ -791,7 +800,7 @@ class Statement(Simple):
elif tok in brackets.keys():
level += 1
if level == 0 and tok in closing_brackets + (',',):
if level == 0 and tok in closing_brackets or level == 1 and tok == ',':
break
token_list.append(tok_temp)
@@ -854,10 +863,14 @@ class Statement(Simple):
close_brackets = False
elif tok in brackets.keys():
arr = parse_array(token_iterator, brackets[tok], start_pos)
if result and (type(result[-1]) == Call or close_brackets):
if result and (isinstance(result[-1], Call) or close_brackets):
print 'x', arr
result[-1].set_execution(arr)
else:
print arr
arr.parent = self
result.append(arr)
#print(tok, result)
close_brackets = True
elif tok == '.':
close_brackets = False
@@ -866,7 +879,7 @@ class Statement(Simple):
elif tok == ',': # implies a tuple
close_brackets = False
# rewrite `result`, because now the whole thing is a tuple
add_el = parse_array_el(iter(result), start_pos)
add_el, t = parse_array_el(enumerate(result), start_pos)
arr = parse_array(token_iterator, Array.TUPLE, start_pos,
add_el)
result = [arr]
@@ -1038,12 +1051,6 @@ class Array(Call):
return iter(self.values)
def get_code(self):
def to_str(el):
try:
return el.get_code()
except AttributeError:
return str(el)
map = {Array.NOARRAY: '%s',
Array.TUPLE: '(%s)',
Array.LIST: '[%s]',
@@ -1051,17 +1058,15 @@ class Array(Call):
Array.SET: '{%s}'
}
inner = []
for i, value in enumerate(self.values):
for i, stmt in enumerate(self.values):
s = ''
try:
key = self.keys[i]
except IndexError:
pass
else:
for el in key[i]:
s += to_str(el)
for el in value:
s += to_str(el)
s += key.get_code(new_line=False) + ': '
s += stmt.get_code(new_line=False)
inner.append(s)
return map[self.type] % ', '.join(inner)