code: def infer(self, handler):
          
          table = handler.table
          new_self = self.copy()
          new_self.set_table(table)
          new_self.get_attr()
          new_self.read_metadata(handler)
          return new_self
docs: infer this column from the table: create and return a new object