def get_records_from_csv(dict_reader, start_date, end_date, date_key, threshold=10):
    """Return records from dict_reader between start_date and end_date (left closed)

    dict_reader should come from a csv that is sorted in descending order in its
    date_key column, otherwise this won't make any sense. The LANDSAT_8.csv from
    USGS is sorted in its date_key column.

    Args:
        dict_reader (csv.DictReader): iterator to search in
        start_date (str): yyyy-mm-dd formatted datestring. "Back to" date
        end_date (str): yyy-mm-dd formatted datestring. "Up to" date
        date_key (hashable): column in csv that represents dates
        threshold (int): how many records to find past the range before giving up

    Returns:
        list[dict]
    """
    out_records = []
    wrong = 0
    while True:
        row = dict_reader.next()
        if start_date <= row['acquisitionDate'] < end_date:
            out_records.append(row)
        elif row['acquisitionDate'] < start_date:
            wrong += 1

        if wrong == threshold:
            break

    return out_records