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)