class_docstr: An abstract pipeline loader for estimates data that can load data a
  variable number of quarters forwards/backwards from calendar dates
  depending on the `num_announcements` attribute of the columns' dataset.
  If split adjustments are to be applied, a loader, split-adjusted columns,
  and the split-adjusted asof-date must be supplied.
  
  Parameters
  ----------
  estimates : pd.DataFrame
      The raw estimates data.
      ``estimates`` must contain at least 5 columns:
          sid : int64
              The asset id associated with each estimate.
  
          event_date : datetime64[ns]
              The date on which the event that the estimate is for will/has
              occurred..
  
          timestamp : datetime64[ns]
              The datetime where we learned about the estimate.
  
          fiscal_quarter : int64
              The quarter during which the event has/will occur.
  
          fiscal_year : int64
              The year during which the event has/will occur.
  
  name_map : dict[str -> str]
      A map of names of BoundColumns that this loader will load to the
      names of the corresponding columns in `events`.
class_docstr_tok: ["An","abstract","pipeline","loader","for","estimates","data","that","can","load","data","a","variable","number","of","quarters","forwards\/backwards","from","calendar","dates","depending","on","the","`","num_announcements","`","attribute","of","the","columns","'","dataset",".","If","split","adjustments","are","to","be","applied",",","a","loader",",","split-adjusted","columns",",","and","the","split-adjusted","asof-date","must","be","supplied",".","Parameters","--","--","--","--","--","estimates",":","pd.DataFrame","The","raw","estimates","data",".","``","estimates","``","must","contain","at","least","5","columns",":","sid",":","int64","The","asset","id","associated","with","each","estimate",".","event_date",":","datetime64","[","ns","]","The","date","on","which","the","event","that","the","estimate","is","for","will\/has","occurred","..","timestamp",":","datetime64","[","ns","]","The","datetime","where","we","learned","about","the","estimate",".","fiscal_quarter",":","int64","The","quarter","during","which","the","event","has\/will","occur",".","fiscal_year",":","int64","The","year","during","which","the","event","has\/will","occur",".","name_map",":","dict","[","str","-",">","str","]","A","map","of","names","of","BoundColumns","that","this","loader","will","load","to","the","names","of","the","corresponding","columns","in","`","events","`","."]
docstr: Add entries to the dictionary of columns to adjustments for the given
  sid and the given quarter.
  
  Parameters
  ----------
  col_to_overwrites : dict [column_name -> list of ArrayAdjustment]
      A dictionary mapping column names to all overwrites for those
      columns.
  next_qtr_start_idx : int
      The index of the first day of the next quarter in the calendar
      dates.
  last_per_qtr : pd.DataFrame
      A DataFrame with a column MultiIndex of [self.estimates.columns,
      normalized_quarters, sid] that allows easily getting the timeline
      of estimates for a particular sid for a particular quarter; this
      is particularly useful for getting adjustments for 'next'
      estimates.
  quarters_with_estimates_for_sid : np.array
      An array of all quarters for which there are estimates for the
      given sid.
  requested_quarter : float
      The quarter for which the overwrite should be created.
  sid : int
      The sid for which to create overwrites.
  sid_idx : int
      The index of the sid in `assets`.
  columns : list of BoundColumn
      The columns for which to create overwrites.
docstr_tok: ["Add","entries","to","the","dictionary","of","columns","to","adjustments","for","the","given","sid","and","the","given","quarter",".","Parameters","--","--","--","--","--","col_to_overwrites",":","dict","[","column_name","-",">","list","of","ArrayAdjustment","]","A","dictionary","mapping","column","names","to","all","overwrites","for","those","columns",".","next_qtr_start_idx",":","int","The","index","of","the","first","day","of","the","next","quarter","in","the","calendar","dates",".","last_per_qtr",":","pd.DataFrame","A","DataFrame","with","a","column","MultiIndex","of","[","self.estimates.columns",",","normalized_quarters",",","sid","]","that","allows","easily","getting","the","timeline","of","estimates","for","a","particular","sid","for","a","particular","quarter",";","this","is","particularly","useful","for","getting","adjustments","for","'next'","estimates",".","quarters_with_estimates_for_sid",":","np.array","An","array","of","all","quarters","for","which","there","are","estimates","for","the","given","sid",".","requested_quarter",":","float","The","quarter","for","which","the","overwrite","should","be","created",".","sid",":","int","The","sid","for","which","to","create","overwrites",".","sid_idx",":","int","The","index","of","the","sid","in","`","assets","`",".","columns",":","list","of","BoundColumn","The","columns","for","which","to","create","overwrites","."]
code: def create_overwrites_for_quarter(
      self,
      col_to_overwrites,
      next_qtr_start_idx,
      last_per_qtr,
      quarters_with_estimates_for_sid,
      requested_quarter,
      sid,
      sid_idx,
      columns,
  ):
      """
      Add entries to the dictionary of columns to adjustments for the given
      sid and the given quarter.
  
      Parameters
      ----------
      col_to_overwrites : dict [column_name -> list of ArrayAdjustment]
          A dictionary mapping column names to all overwrites for those
          columns.
      next_qtr_start_idx : int
          The index of the first day of the next quarter in the calendar
          dates.
      last_per_qtr : pd.DataFrame
          A DataFrame with a column MultiIndex of [self.estimates.columns,
          normalized_quarters, sid] that allows easily getting the timeline
          of estimates for a particular sid for a particular quarter; this
          is particularly useful for getting adjustments for 'next'
          estimates.
      quarters_with_estimates_for_sid : np.array
          An array of all quarters for which there are estimates for the
          given sid.
      requested_quarter : float
          The quarter for which the overwrite should be created.
      sid : int
          The sid for which to create overwrites.
      sid_idx : int
          The index of the sid in `assets`.
      columns : list of BoundColumn
          The columns for which to create overwrites.
      """
      for col in columns:
          column_name = self.name_map[col.name]
          if column_name not in col_to_overwrites:
              col_to_overwrites[column_name] = {}
          # If there are estimates for the requested quarter,
          # overwrite all values going up to the starting index of
          # that quarter with estimates for that quarter.
          if requested_quarter in quarters_with_estimates_for_sid:
              adjs = self.create_overwrite_for_estimate(
                  col,
                  column_name,
                  last_per_qtr,
                  next_qtr_start_idx,
                  requested_quarter,
                  sid,
                  sid_idx,
              )
              add_new_adjustments(
                  col_to_overwrites,
                  adjs,
                  column_name,
                  next_qtr_start_idx,
              )
          # There are no estimates for the quarter. Overwrite all
          # values going up to the starting index of that quarter
          # with the missing value for this column.
          else:
              adjs = [
                  self.overwrite_with_null(
                      col, next_qtr_start_idx, sid_idx
                  )
              ]
              add_new_adjustments(
                  col_to_overwrites,
                  adjs,
                  column_name,
                  next_qtr_start_idx,
              )
  
imports: from abc import abstractmethod, abstractproperty
  from interface import implements
  import numpy
  import pandas
  from six import viewvalues
  from toolz import groupby
  from zipline.lib.adjusted_array import AdjustedArray
  from zipline.lib.adjustment import Datetime641DArrayOverwrite, Datetime64Overwrite, Float641DArrayOverwrite, Float64Multiply, Float64Overwrite
  from zipline.pipeline.common import EVENT_DATE_FIELD_NAME, FISCAL_QUARTER_FIELD_NAME, FISCAL_YEAR_FIELD_NAME, SID_FIELD_NAME, TS_FIELD_NAME
  from zipline.pipeline.loaders.base import PipelineLoader
  from zipline.utils.numpy_utils import datetime64ns_dtype, float64_dtype
  from zipline.pipeline.loaders.utils import ffill_across_cols, last_in_date_group
label_desc: Use image node_id 12 for calling the EarningsEstimatesLoader obj's underlying member method code with example usage: obj.create_overwrites_for_quarter(col_to_overwrites, next_qtr_start_idx, last_per_qtr, quarters_with_estimates_for_sid, requested_quarter, sid, sid_idx, columns) without return types