def list_tables(self, libref, results: str = '<STR_LIT:list>'):
if not self.nosub:<EOL><INDENT>ll = self.submit("<STR_LIT>"+libref+"<STR_LIT>")<EOL>exists = ll['<STR_LIT>'].rpartition('<STR_LIT>')[<NUM_LIT:2>].split('<STR_LIT:\n>')[<NUM_LIT:0>]<EOL>if exists != '<STR_LIT:0>':<EOL><INDENT>print('<STR_LIT>')<EOL>return None<EOL><DEDENT><DEDENT>code = """<STR_LIT>""".replace('<STR_LIT>', libref)<EOL>if self.nosub:<EOL><INDENT>print(code)<EOL>return None<EOL><DEDENT>else:<EOL><INDENT>ll  = self.submit(code, results='<STR_LIT:text>')<EOL><DEDENT>if results != '<STR_LIT:list>':<EOL><INDENT>res = self.sd2df('<STR_LIT>', '<STR_LIT>')<EOL>return res<EOL><DEDENT>code = """<STR_LIT>"""<EOL>ll  = self.submit(code, results='<STR_LIT:text>')<EOL>res = []<EOL>log = ll['<STR_LIT>'].rpartition('<STR_LIT>')[<NUM_LIT:0>].rpartition('<STR_LIT>')<EOL>for i in range(log[<NUM_LIT:2>].count('<STR_LIT>')):                                    <EOL><INDENT>log = log[<NUM_LIT:2>].partition('<STR_LIT>')[<NUM_LIT:2>].partition('<STR_LIT:\n>')                    <EOL>key = log[<NUM_LIT:0>]                                                           <EOL>log = log[<NUM_LIT:2>].partition('<STR_LIT>')[<NUM_LIT:2>].partition('<STR_LIT:\n>')                     <EOL>val = log[<NUM_LIT:0>]                                                           <EOL>res.append(tuple((key, val)))                                                         <EOL><DEDENT>return res<EOL>
This method returns a list of tuples containing MEMNAME, MEMTYPE of members in the library of memtype data or view

If you would like a Pandas dataframe returned instead of a list, specify results='pandas'