code: def dsort(self, order):
          r
          order = order if isinstance(order, list) else [order]
          norder = [{item: "A"} if not isinstance(item, dict) else item for item in order]
          self._in_header([list(item.keys())[0] for item in norder])
          clist = []
          for nitem in norder:
              for key, value in nitem.items():
                  clist.append(
                      (
                          key
                          if isinstance(key, int)
                          else self._header_upper.index(key.upper()),
                          value.upper() == "D",
                      )
                  )
          for (cindex, rvalue) in reversed(clist):
              fpointer = operator.itemgetter(cindex)
              self._data.sort(key=fpointer, reverse=rvalue)