get_tables was failing with python3, because readline() returns bytes, which is always distinct to '', but then it failed with IndexError for empty lines. Also, line[0] was returning 42 instead of '*', so no table would be returned.
I have tested with python2 too, and decode() can be called there, it will return unicode type, and comparing with '' and '*' works