def fetch_course_lists(db_connection, limit=None):
    """
    Fetch list of courses with evaluations.

    Parameters
    ----------
    db_connection:
        SQLAlchemy connection to database
    limit:
        limit number of rows
    """

    limit_string = ""
    if limit:
        limit_string = f"LIMIT {limit}"

    # Fetch from `course_names`.
    # with db_connection.cursor() as cursor:
    #    sql = f"SELECT * FROM `course_names` {limit_string}"
    #    cursor.execute(sql)
    #    course_names = cursor.fetchall()

    # Fetch from `evaluation_course_names`.
    with db_connection.cursor() as cursor:
        sql = f"SELECT * FROM `evaluation_course_names` {limit_string}"
        cursor.execute(sql)
        raw_courses = cursor.fetchall()

    listings = []
    for course in raw_courses:
        listings.append(
            (
                str(course["season"]),
                str(course["crn"]),
                {
                    "subject": course["subject"],
                    "number": course["number"],
                    "section": course["section"],
                },
            )
        )

    return listings