'Returns all the stock dividends for a specific sid that occur
in the given trading range.
Parameters
sid: int
The asset whose stock dividends should be returned.
trading_days: pd.DatetimeIndex
The trading range.
Returns
list: A list of objects with all relevant attributes populated.
All timestamp fields are converted to pd.Timestamps.'

def get_stock_dividends(self, sid, trading_days):

    if (self._adjustment_reader is None):
        return []
    if (len(trading_days) == 0):
        return []
    start_dt = (trading_days[0].value / 1000000000.0)
    end_dt = (trading_days[(-1)].value / 1000000000.0)
    dividends = self._adjustment_reader.conn.execute('SELECT    *    FROM    stock_dividend_payouts    WHERE    sid    =    ?    AND    ex_date    >    ?    AND    pay_date    <    ?', (int(sid), start_dt, end_dt)).fetchall()
    dividend_info = []
    for dividend_tuple in dividends:
        dividend_info.append({'declared_date': dividend_tuple[1], 'ex_date': pd.Timestamp(dividend_tuple[2], unit='s'), 'pay_date': pd.Timestamp(dividend_tuple[3], unit='s'), 'payment_sid': dividend_tuple[4], 'ratio': dividend_tuple[5], 'record_date': pd.Timestamp(dividend_tuple[6], unit='s'), 'sid': dividend_tuple[7]})
    return dividend_info
