code: def _charlist(self, data) -> list:
          
          # Get list of character variables to add to nominal list
          char_string = """
          data _null_; file LOG;
            d = open('{0}.{1}');
            nvars = attrn(d, 'NVARS');
            put 'VARLIST=';
            do i = 1 to nvars;
               vart = vartype(d, i);
               var  = varname(d, i);
               if vart eq 'C' then
                  put var; end;
            put 'VARLISTend=';
          run;
          """
          # ignore teach_me_SAS mode to run contents
          nosub = self.sas.nosub
          self.sas.nosub = False
          ll = self.sas.submit(char_string.format(data.libref, data.table + data._dsopts()))
          self.sas.nosub = nosub
          l2 = ll['LOG'].partition("VARLIST=\n")
          l2 = l2[2].rpartition("VARLISTend=\n")
          charlist1 = l2[0].split("\n")
          del charlist1[len(charlist1) - 1]
          charlist1 = [x.casefold() for x in charlist1]
          return charlist1
docs: Private method to return the variables in a SAS Data set that are of type char
  
          :param data: SAS Data object to process
          :return: list of character variables
          :rtype: list