class_docstr: An abstract pipeline loader for the estimates datasets that loads
  data from a blaze expression.
  
  Parameters
  ----------
  expr : Expr
      The expression representing the data to load.
  columns : dict[str -> str]
      A dict mapping BoundColumn names to the associated names in `expr`.
  resources : dict, optional
      Mapping from the loadable terms of ``expr`` to actual data resources.
  odo_kwargs : dict, optional
      Extra keyword arguments to pass to odo when executing the expression.
  data_query_time : time, optional
      The time to use for the data query cutoff.
  data_query_tz : tzinfo or str
      The timezeone to use for the data query cutoff.
  checkpoints : Expr, optional
      The expression representing checkpointed data to be used for faster
      forward-filling of data from `expr`.
  
  Notes
  -----
  The expression should have a tabular dshape of::
  
     Dim * {{
         {SID_FIELD_NAME}: int64,
         {TS_FIELD_NAME}: datetime,
         {FISCAL_YEAR_FIELD_NAME}: float64,
         {FISCAL_QUARTER_FIELD_NAME}: float64,
         {EVENT_DATE_FIELD_NAME}: datetime,
     }}
  
  And other dataset-specific fields, where each row of the table is a
  record including the sid to identify the company, the timestamp where we
  learned about the announcement, and the date of the event.
  
  If the '{TS_FIELD_NAME}' field is not included it is assumed that we
  start the backtest with knowledge of all announcements.
class_docstr_tok: ["An","abstract","pipeline","loader","for","the","estimates","datasets","that","loads","data","from","a","blaze","expression",".","Parameters","--","--","--","--","--","expr",":","Expr","The","expression","representing","the","data","to","load",".","columns",":","dict","[","str","-",">","str","]","A","dict","mapping","BoundColumn","names","to","the","associated","names","in","`","expr","`",".","resources",":","dict",",","optional","Mapping","from","the","loadable","terms","of","``","expr","``","to","actual","data","resources",".","odo_kwargs",":","dict",",","optional","Extra","keyword","arguments","to","pass","to","odo","when","executing","the","expression",".","data_query_time",":","time",",","optional","The","time","to","use","for","the","data","query","cutoff",".","data_query_tz",":","tzinfo","or","str","The","timezeone","to","use","for","the","data","query","cutoff",".","checkpoints",":","Expr",",","optional","The","expression","representing","checkpointed","data","to","be","used","for","faster","forward-filling","of","data","from","`","expr","`",".","Notes","--","--","-","The","expression","should","have","a","tabular","dshape","of",":",":","Dim","*","{","{","{","SID_FIELD_NAME","}",":","int64",",","{","TS_FIELD_NAME","}",":","datetime",",","{","FISCAL_YEAR_FIELD_NAME","}",":","float64",",","{","FISCAL_QUARTER_FIELD_NAME","}",":","float64",",","{","EVENT_DATE_FIELD_NAME","}",":","datetime",",","}","}","And","other","dataset-specific","fields",",","where","each","row","of","the","table","is","a","record","including","the","sid","to","identify","the","company",",","the","timestamp","where","we","learned","about","the","announcement",",","and","the","date","of","the","event",".","If","the","'","{","TS_FIELD_NAME","}","'","field","is","not","included","it","is","assumed","that","we","start","the","backtest","with","knowledge","of","all","announcements","."]
code: def columns(self):
      return self._columns
  
imports: from datashape import istabular
  from .core import bind_expression_to_resources
  from catalyst.pipeline.common import EVENT_DATE_FIELD_NAME, FISCAL_QUARTER_FIELD_NAME, FISCAL_YEAR_FIELD_NAME, SID_FIELD_NAME, TS_FIELD_NAME
  from catalyst.pipeline.loaders.base import PipelineLoader
  from catalyst.pipeline.loaders.blaze.utils import load_raw_data
  from catalyst.pipeline.loaders.earnings_estimates import NextEarningsEstimatesLoader, PreviousEarningsEstimatesLoader, required_estimates_fields, metadata_columns, PreviousSplitAdjustedEarningsEstimatesLoader, NextSplitAdjustedEarningsEstimatesLoader
  from catalyst.pipeline.loaders.utils import check_data_query_args
  from catalyst.utils.input_validation import ensure_timezone, optionally
  from catalyst.utils.preprocess import preprocess
label_desc: Use image node_id 3 for calling the BlazeEstimatesLoader obj's underlying member method code with example usage: obj.columns() and returns: self