mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
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:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user