code: def _write(self, data, writer, data_frequency):
      try:
          writer.write(
              data=data,
              show_progress=False,
              invalid_data_behavior="raise",
          )
      except BcolzMinuteOverlappingData as e:
          log.debug("chunk already exists: {}".format(e))
      except Exception as e:
          log.warn(
              "error when writing data: {}, trying again".format(e)
          )
  
          # This is workaround, there is an issue with empty
          # session_label when using a newly created writer
          del self._writers[writer._rootdir]
  
          writer = self.get_writer(
              writer._start_session, writer._end_session, data_frequency
          )
          writer.write(
              data=data,
              show_progress=False,
              invalid_data_behavior="raise",
          )
  
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 6 for calling the ExchangeBundle obj's underlying member method code with example usage: obj._write(data, writer, data_frequency) without return types