docs: def aggregate_weights(weights, drop_date=False):
      """
      Transforms list of tuples of weights into pandas.DataFrame of weights.
  
      Parameters:
      -----------
      weights: list
          A list of tuples consisting of the generic instrument name,
          the tradeable contract as a string, the weight on this contract as a
          float and the date as a pandas.Timestamp.
      drop_date: boolean
          Whether to drop the date from the multiIndex
  
      Returns
      -------
      A pandas.DataFrame of loadings of generic contracts on tradeable
      instruments for a given date. The columns are generic instrument names and
      the index is strings representing instrument names.
      """
      dwts = pd.DataFrame(weights,
                          columns=["generic", "contract", "weight", "date"])
      dwts = dwts.pivot_table(index=['date', 'contract'],
                              columns=['generic'], values='weight', fill_value=0)
      dwts = dwts.astype(float)
      dwts = dwts.sort_index()
      if drop_date:
          dwts.index = dwts.index.levels[-1]
      return dwts