--- 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)