class_docstr: Provides methods for retrieving daily stock data from
  Yahoo Finance API
code: def download_data(
      self,
      ticker_list: list[str],
      start_date: str,
      end_date: str,
      time_interval: str,
      proxy: str | dict = None,
  ) -> pd.DataFrame:
      time_interval = self.convert_interval(time_interval)
  
      self.start = start_date
      self.end = end_date
      self.time_interval = time_interval
  
      # Download and save the data in a pandas DataFrame
      start_date = pd.Timestamp(start_date)
      end_date = pd.Timestamp(end_date)
      delta = timedelta(days=1)
      data_df = pd.DataFrame()
      for tic in ticker_list:
          while (
              start_date <= end_date
          ):  # downloading daily to workaround yfinance only allowing  max 7 calendar (not trading) days of 1 min data per single download
              temp_df = yf.download(
                  tic,
                  start=start_date,
                  end=start_date + delta,
                  interval=self.time_interval,
                  proxy=proxy,
              )
              temp_df["tic"] = tic
              data_df = pd.concat([data_df, temp_df])
              start_date += delta
  
      data_df = data_df.reset_index().drop(columns=["Adj Close"])
      # convert the column names to match processor_alpaca.py as far as poss
      data_df.columns = [
          "timestamp",
          "open",
          "high",
          "low",
          "close",
          "volume",
          "tic",
      ]
  
      return data_df
  
imports: from __future__ import annotations
  import datetime
  from datetime import date
  from datetime import timedelta
  from sqlite3 import Timestamp
  from typing import Any
  from typing import Dict
  from typing import List
  from typing import Optional
  from typing import Type
  from typing import TypeVar
  from typing import Union
  import exchange_calendars
  import numpy
  import pandas
  import pytz
  import yfinance
  from stockstats import StockDataFrame
label_desc: Use image node_id 3 for calling the YahooFinanceProcessor obj's underlying member method code with example usage: obj.download_data(ticker_list, start_date, end_date, time_interval, proxy) and returns: data_df