class_docstr: Estimates loader that loads data that needs to be split-adjusted.
  
  Parameters
  ----------
  split_adjustments_loader : SQLiteAdjustmentReader
      The loader to use for reading split adjustments.
  split_adjusted_column_names : iterable of str
      The column names that should be split-adjusted.
  split_adjusted_asof : pd.Timestamp
      The date that separates data into 2 halves: the first half is the set
      of dates up to and including the split_adjusted_asof date. All
      adjustments occurring during this first half are applied  to all
      dates in this first half. The second half is the set of dates after
      the split_adjusted_asof date. All adjustments occurring during this
      second half are applied sequentially as they appear in the timeline.
class_docstr_tok: ["Estimates","loader","that","loads","data","that","needs","to","be","split-adjusted",".","Parameters","--","--","--","--","--","split_adjustments_loader",":","SQLiteAdjustmentReader","The","loader","to","use","for","reading","split","adjustments",".","split_adjusted_column_names",":","iterable","of","str","The","column","names","that","should","be","split-adjusted",".","split_adjusted_asof",":","pd.Timestamp","The","date","that","separates","data","into","2","halves",":","the","first","half","is","the","set","of","dates","up","to","and","including","the","split_adjusted_asof","date",".","All","adjustments","occurring","during","this","first","half","are","applied","to","all","dates","in","this","first","half",".","The","second","half","is","the","set","of","dates","after","the","split_adjusted_asof","date",".","All","adjustments","occurring","during","this","second","half","are","applied","sequentially","as","they","appear","in","the","timeline","."]
docstr: Merge split adjustments with the dict containing overwrites.
  
  Parameters
  ----------
  pre : dict[str -> dict[int -> list]]
      The adjustments that occur before the split-adjusted-asof-date.
  post : dict[str -> dict[int -> list]]
      The adjustments that occur after the split-adjusted-asof-date.
  overwrites : dict[str -> dict[int -> list]]
      The overwrites across all time. Adjustments will be merged into
      this dictionary.
  requested_split_adjusted_columns : list of str
      List of names of split adjusted columns that are being requested.
docstr_tok: ["Merge","split","adjustments","with","the","dict","containing","overwrites",".","Parameters","--","--","--","--","--","pre",":","dict","[","str","-",">","dict","[","int","-",">","list","]","]","The","adjustments","that","occur","before","the","split-adjusted-asof-date",".","post",":","dict","[","str","-",">","dict","[","int","-",">","list","]","]","The","adjustments","that","occur","after","the","split-adjusted-asof-date",".","overwrites",":","dict","[","str","-",">","dict","[","int","-",">","list","]","]","The","overwrites","across","all","time",".","Adjustments","will","be","merged","into","this","dictionary",".","requested_split_adjusted_columns",":","list","of","str","List","of","names","of","split","adjusted","columns","that","are","being","requested","."]
code: def merge_split_adjustments_with_overwrites(
      self, pre, post, overwrites, requested_split_adjusted_columns
  ):
      """
      Merge split adjustments with the dict containing overwrites.
  
      Parameters
      ----------
      pre : dict[str -> dict[int -> list]]
          The adjustments that occur before the split-adjusted-asof-date.
      post : dict[str -> dict[int -> list]]
          The adjustments that occur after the split-adjusted-asof-date.
      overwrites : dict[str -> dict[int -> list]]
          The overwrites across all time. Adjustments will be merged into
          this dictionary.
      requested_split_adjusted_columns : list of str
          List of names of split adjusted columns that are being requested.
      """
      for column_name in requested_split_adjusted_columns:
          # We can do a merge here because the timestamps in 'pre' and
          # 'post' are guaranteed to not overlap.
          if pre:
              # Either empty or contains all columns.
              for ts in pre[column_name]:
                  add_new_adjustments(
                      overwrites, pre[column_name][ts], column_name, ts
                  )
          if post:
              # Either empty or contains all columns.
              for ts in post[column_name]:
                  add_new_adjustments(
                      overwrites, post[column_name][ts], column_name, ts
                  )
  
imports: from abc import abstractmethod, abstractproperty
  import numpy
  import pandas
  from six import viewvalues
  from toolz import groupby
  from catalyst.lib.adjusted_array import AdjustedArray
  from catalyst.lib.adjustment import Datetime641DArrayOverwrite, Datetime64Overwrite, Float641DArrayOverwrite, Float64Multiply, Float64Overwrite
  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.utils.numpy_utils import datetime64ns_dtype, float64_dtype
  from catalyst.pipeline.loaders.utils import ffill_across_cols, last_in_date_group
label_desc: Use image node_id 10 for calling the SplitAdjustedEstimatesLoader obj's underlying member method code with example usage: obj.merge_split_adjustments_with_overwrites(pre, post, overwrites, requested_split_adjusted_columns) without return types