class_docstr: Synthetic PipelineLoader that uses a pre-computed array for each column.
  
  Parameters
  ----------
  values : dict
      Map from column to values to use for that column.
      Values can be anything that can be passed as the first positional
      argument to a DataFrame whose indices are ``dates`` and ``sids``
  dates : iterable[datetime-like]
      Row labels for input data.  Can be anything that pd.DataFrame will
      coerce to a DatetimeIndex.
  sids : iterable[int-like]
      Column labels for input data.  Can be anything that pd.DataFrame will
      coerce to an Int64Index.
  
  Notes
  -----
  Adjustments are unsupported by this loader.
code: def __init__(self, constants, dates, sids):
      loaders = {}
      for column, const in iteritems(constants):
          frame = DataFrame(
              const,
              index=dates,
              columns=sids,
              dtype=column.dtype,
          )
          loaders[column] = DataFrameLoader(
              column=column,
              baseline=frame,
              adjustments=None,
          )
  
      self._loaders = loaders
  
imports: from interface import implements
  from numpy import arange, array, eye, float64, full, iinfo, nan, uint32
  from numpy.random import RandomState
  from pandas import DataFrame, Timestamp
  from six import iteritems
  from sqlite3 import connect
  from .base import PipelineLoader
  from .frame import DataFrameLoader
  from zipline.data.adjustments import SQLiteAdjustmentReader, SQLiteAdjustmentWriter
  from zipline.data.bcolz_daily_bars import US_EQUITY_PRICING_BCOLZ_COLUMNS
  from zipline.utils.numpy_utils import bool_dtype, datetime64ns_dtype, float64_dtype, int64_dtype, object_dtype
label_desc: Use image node_id 1 to create a new PrecomputedLoader object from inherited base classes:  with example: obj = PrecomputedLoader(constants, dates, sids)