Debugger/VariablesViewer.py

changeset 5175
9db0b0f15d12
parent 5173
632257ad7337
child 5190
65a2234c6789
--- a/Debugger/VariablesViewer.py	Fri Sep 16 19:34:58 2016 +0200
+++ b/Debugger/VariablesViewer.py	Mon Sep 19 20:10:33 2016 +0200
@@ -588,6 +588,10 @@
             else:
                 return SpecialVarItem(parent, dvar, dvalue, dtype,
                                       self.framenr, self.__globalScope)
+        elif dtype in ["numpy.ndarray", "django.MultiValueDict"]:
+            return SpecialVarItem(
+                parent, dvar, self.tr("{0} items").format(dvalue), dtype,
+                self.framenr, self.__globalScope)
         else:
             if self.dvar_rx_array_element.exactMatch(dvar):
                 return ArrayElementVarItem(parent, dvar, dvalue, dtype)
@@ -699,7 +703,11 @@
         name = VariableItem.extractIndicators(itm.text(0).strip())[0]
         
         par = itm.parent()
-        nlist = [name]
+        if name.startswith("["):    # numpy.ndarray
+            nlist = []
+        else:
+            nlist = [name]
+        
         # build up the fully qualified name
         while par is not None:
             pname, indicators = VariableItem.extractIndicators(
@@ -709,9 +717,20 @@
                     nlist[0] = '[{0}].'.format(nlist[0][:-1])
                 else:
                     nlist[0] = '[{0}]'.format(nlist[0])
-                nlist.insert(0, pname)
+                if not pname.startswith("["):   # numpy.ndarray
+                    nlist.insert(0, pname)
             else:
-                nlist.insert(0, '{0}.'.format(pname))
+                if par.text(2) == "django.MultiValueDict":
+                    nlist[0] = 'getlist({0})'.format(nlist[0])
+                elif par.text(2) == "numpy.ndarray":
+                    if nlist[0][0].isalpha():
+                        if nlist[0] in ["min", "max", "mean"]:
+                            nlist[0] = ".{0}()".format(nlist[0])
+                        else:
+                            nlist[0] = ".{0}".format(nlist[0])
+                    nlist.insert(0, pname)
+                else:
+                    nlist.insert(0, '{0}.'.format(pname))
             par = par.parent()
             
         name = ''.join(nlist)

eric ide

mercurial