class_docstr: Class capable of writing daily OHLCV data to disk in a format that can
  be read efficiently by BcolzDailyOHLCVReader.
  
  Parameters
  ----------
  filename : str
      The location at which we should write our output.
  calendar : zipline.utils.calendar.trading_calendar
      Calendar to use to compute asset calendar offsets.
  start_session: pd.Timestamp
      Midnight UTC session label.
  end_session: pd.Timestamp
      Midnight UTC session label.
  
  See Also
  --------
  zipline.data.bcolz_daily_bars.BcolzDailyBarReader
class_docstr_tok: ["Class","capable","of","writing","daily","OHLCV","data","to","disk","in","a","format","that","can","be","read","efficiently","by","BcolzDailyOHLCVReader",".","Parameters","--","--","--","--","--","filename",":","str","The","location","at","which","we","should","write","our","output",".","calendar",":","zipline.utils.calendar.trading_calendar","Calendar","to","use","to","compute","asset","calendar","offsets",".","start_session",":","pd.Timestamp","Midnight","UTC","session","label",".","end_session",":","pd.Timestamp","Midnight","UTC","session","label",".","See","Also","--","--","--","--","zipline.data.bcolz_daily_bars.BcolzDailyBarReader"]
docstr: Parameters
  ----------
  data : iterable[tuple[int, pandas.DataFrame or bcolz.ctable]]
      The data chunks to write. Each chunk should be a tuple of sid
      and the data for that asset.
  assets : set[int], optional
      The assets that should be in ``data``. If this is provided
      we will check ``data`` against the assets and provide better
      progress information.
  show_progress : bool, optional
      Whether or not to show a progress bar while writing.
  invalid_data_behavior : {'warn', 'raise', 'ignore'}, optional
      What to do when data is encountered that is outside the range of
      a uint32.
  
  Returns
  -------
  table : bcolz.ctable
      The newly-written table.
docstr_tok: ["Parameters","--","--","--","--","--","data",":","iterable","[","tuple","[","int",",","pandas.DataFrame","or","bcolz.ctable","]","]","The","data","chunks","to","write",".","Each","chunk","should","be","a","tuple","of","sid","and","the","data","for","that","asset",".","assets",":","set","[","int","]",",","optional","The","assets","that","should","be","in","``","data","``",".","If","this","is","provided","we","will","check","``","data","``","against","the","assets","and","provide","better","progress","information",".","show_progress",":","bool",",","optional","Whether","or","not","to","show","a","progress","bar","while","writing",".","invalid_data_behavior",":","{","'warn","'",",","'raise","'",",","'ignore","'","}",",","optional","What","to","do","when","data","is","encountered","that","is","outside","the","range","of","a","uint32",".","Returns","--","--","--","-","table",":","bcolz.ctable","The","newly-written","table","."]
code: def write(
      self,
      data,
      assets=None,
      show_progress=False,
      invalid_data_behavior="warn",
  ):
      """
      Parameters
      ----------
      data : iterable[tuple[int, pandas.DataFrame or bcolz.ctable]]
          The data chunks to write. Each chunk should be a tuple of sid
          and the data for that asset.
      assets : set[int], optional
          The assets that should be in ``data``. If this is provided
          we will check ``data`` against the assets and provide better
          progress information.
      show_progress : bool, optional
          Whether or not to show a progress bar while writing.
      invalid_data_behavior : {'warn', 'raise', 'ignore'}, optional
          What to do when data is encountered that is outside the range of
          a uint32.
  
      Returns
      -------
      table : bcolz.ctable
          The newly-written table.
      """
      ctx = maybe_show_progress(
          (
              (sid, self.to_ctable(df, invalid_data_behavior))
              for sid, df in data
          ),
          show_progress=show_progress,
          item_show_func=self.progress_bar_item_show_func,
          label=self.progress_bar_message,
          length=len(assets) if assets is not None else None,
      )
      with ctx as it:
          return self._write_internal(it, assets)
  
imports: from functools import partial
  import warnings
  from bcolz import carray, ctable
  import logbook
  import numpy
  from numpy import array, full, iinfo, nan
  from pandas import DatetimeIndex, NaT, read_csv, to_datetime, Timestamp
  from six import iteritems, viewkeys
  from toolz import compose
  from trading_calendars import get_calendar
  from zipline.data.session_bars import CurrencyAwareSessionBarReader
  from zipline.data.bar_reader import NoDataAfterDate, NoDataBeforeDate, NoDataOnDate
  from zipline.utils.functional import apply
  from zipline.utils.input_validation import expect_element
  from zipline.utils.numpy_utils import iNaT, float64_dtype, uint32_dtype
  from zipline.utils.memoize import lazyval
  from zipline.utils.cli import maybe_show_progress
  from ._equities import _compute_row_slices, _read_bcolz_data
label_desc: Use image node_id 4 for calling the BcolzDailyBarWriter obj's underlying member method code with example usage: obj.write(data, assets, show_progress, invalid_data_behavior) and returns: self