improve slice view (PY-13837) and add logic for ndarray slice evaluation

fix PY-13850 Evaluate list item for octal return SyntaxError
This commit is contained in:
Alexander Marchuk
2014-09-04 19:27:32 +04:00
parent 97c5953602
commit ac9df1d29b
2 changed files with 10 additions and 2 deletions
+1 -1
View File
@@ -439,7 +439,7 @@ class NdArrayResolver:
ret['shape'] = obj.shape
ret['dtype'] = obj.dtype
ret['size'] = obj.size
ret['[0:%s]' % (len(obj))] = {'items' : str(obj)}
ret['[0:%s]' % (len(obj))] = list(obj)
return ret
class NdArrayItemsContainer: pass
@@ -97,7 +97,7 @@ public class PyDebugValue extends XNamedValue {
myParent.buildExpression(result);
if (("dict".equals(myParent.getType()) || "list".equals(myParent.getType()) || "tuple".equals(myParent.getType())) &&
!isLen(myName)) {
result.append('[').append(removeId(myName)).append(']');
result.append('[').append(removeLeadingZeros(removeId(myName))).append(']');
}
else if (("set".equals(myParent.getType())) && !isLen(myName)) {
//set doesn't support indexing
@@ -105,6 +105,9 @@ public class PyDebugValue extends XNamedValue {
else if (isLen(myName)) {
result.append('.').append(myName).append("()");
}
else if (("ndarray".equals(myParent.getType()) || "matrix".equals(myParent.getType())) && myName.startsWith("[")) {
result.append(removeLeadingZeros(myName));
}
else {
result.append('.').append(myName);
}
@@ -119,6 +122,11 @@ public class PyDebugValue extends XNamedValue {
return name;
}
private static String removeLeadingZeros(@NotNull String name) {
//bugs.python.org/issue15254: "0" prefix for octal
return name.replaceFirst("^0+(?!$)", "");
}
private static boolean isLen(String name) {
return "__len__".equals(name);
}