docstr: Inject data based on specified parameters.
  
  Parameters
  ----------
  data_frequency: str
  include_symbols: str
  exclude_symbols: str
  start: pd.Timestamp
  end: pd.Timestamp
  show_progress: bool
  environ:
docstr_tok: ["Inject","data","based","on","specified","parameters",".","Parameters","--","--","--","--","--","data_frequency",":","str","include_symbols",":","str","exclude_symbols",":","str","start",":","pd.Timestamp","end",":","pd.Timestamp","show_progress",":","bool","environ",":"]
code: def ingest(
      self,
      data_frequency,
      include_symbols=None,
      exclude_symbols=None,
      start=None,
      end=None,
      csv=None,
      show_progress=True,
      show_breakdown=True,
      show_report=True,
  ):
      """
      Inject data based on specified parameters.
  
      Parameters
      ----------
      data_frequency: str
      include_symbols: str
      exclude_symbols: str
      start: pd.Timestamp
      end: pd.Timestamp
      show_progress: bool
      environ:
  
      """
      if csv is not None:
          self.ingest_csv(csv, data_frequency)
  
      else:
          if self.exchange is None:
              # Avoid circular dependencies
              from catalyst.exchange.utils.factory import get_exchange
  
              self.exchange = get_exchange(self.exchange_name)
  
          assets = get_assets(
              self.exchange, include_symbols, exclude_symbols
          )
          for frequency in data_frequency.split(","):
              self.ingest_assets(
                  assets=assets,
                  data_frequency=frequency,
                  start_dt=start,
                  end_dt=end,
                  show_progress=show_progress,
                  show_breakdown=show_breakdown,
                  show_report=show_report,
              )
  
imports: import os
  import shutil
  from datetime import timedelta
  from functools import partial
  from itertools import chain
  from operator import is_not
  import numpy
  import pandas
  import pytz
  from catalyst import get_calendar
  from catalyst.assets._assets import TradingPair
  from catalyst.constants import DATE_TIME_FORMAT, AUTO_INGEST
  from catalyst.constants import LOG_LEVEL
  from catalyst.data.minute_bars import BcolzMinuteOverlappingData, BcolzMinuteBarMetadata
  from catalyst.exchange.exchange_bcolz import BcolzExchangeBarReader, BcolzExchangeBarWriter
  from catalyst.exchange.exchange_errors import EmptyValuesInBundleError, TempBundleNotFoundError, NoDataAvailableOnExchange, PricingDataNotLoadedError, DataCorruptionError, PricingDataValueError
  from catalyst.exchange.utils.bundle_utils import range_in_bundle, get_bcolz_chunk, get_df_from_arrays, get_assets
  from catalyst.exchange.utils.datetime_utils import get_start_dt, get_period_label, get_month_start_end, get_year_start_end
  from catalyst.exchange.utils.exchange_utils import get_exchange_folder, save_exchange_symbols, mixin_market_params, get_catalyst_symbol
  from catalyst.utils.cli import maybe_show_progress
  from catalyst.utils.paths import ensure_directory
  from logbook import Logger
  from pytz import UTC
  from six import itervalues
label_desc: Use image node_id 16 for calling the ExchangeBundle obj's underlying member method code with example usage: obj.ingest(data_frequency, include_symbols, exclude_symbols, start, end, csv, show_progress, show_breakdown, show_report) without return types