code: def columnInfo(self):
          
          code = "proc contents data=" + self.libref + '.' + self.table + ' ' + self._dsopts() + ";ods select Variables;run;"
  
          if self.sas.nosub:
              print(code)
              return
  
          if self.results.upper() == 'PANDAS':
              code = "proc contents data=%s.%s %s ;ods output Variables=work._variables ;run;" % (self.libref, self.table, self._dsopts())
              pd = self._returnPD(code, '_variables')
              pd['Type'] = pd['Type'].str.rstrip()
              return pd
  
          else:
              ll = self._is_valid()
              if self.HTML:
                  if not ll:
                      ll = self.sas._io.submit(code)
                  if not self.sas.batch:
                      self.sas.DISPLAY(self.sas.HTML(ll['LST']))
                  else:
                      return ll
              else:
                  if not ll:
                      ll = self.sas._io.submit(code, "text")
                  if not self.sas.batch:
                      print(ll['LST'])
                  else:
                      return ll
docs: display metadata about the table, size, number of rows, columns and their data type