code: def _limit_and_df(self, query, limit, as_df=False):
          
          if limit:
  
              if isinstance(limit, int):
                  query = query.limit(limit)
  
              if isinstance(limit, Iterable) and len(limit) == 2 and [int, int] == [type(x) for x in limit]:
                  page, page_size = limit
                  query = query.limit(page_size)
                  query = query.offset(page * page_size)
  
          if as_df:
              results = read_sql(query.statement, self.engine)
  
          else:
              try:
                  results = query.all()
              except:
                  query.session.rollback()
                  results = query.all()
  
          return results
docs: adds a limit (limit==None := no limit) to any query and allow a return as pandas.DataFrame
  
          :param bool as_df: if is set to True results return as pandas.DataFrame
          :param `sqlalchemy.orm.query.Query` query: SQL Alchemy query
          :param int,tuple limit: maximum number of results
          :return: query result of pyhgnc.manager.models.XY objects