'Internal method that gets a window of adjusted daily data for a sid
and specified date range.  Used to support the history API method for
daily bars.
Parameters
asset : Asset
The asset whose data is desired.
start_dt: pandas.Timestamp
The start of the desired window of data.
bar_count: int
The number of days of data to return.
field: string
The specific field to return.  "open", "high", "close_price", etc.
extra_slot: boolean
Whether to allocate an extra slot in the returned numpy array.
This extra slot will hold the data for the last partial day.  It\'s
much better to create it here than to create a copy of the array
later just to add a slot.
Returns
A numpy array with requested values.  Any missing slots filled with
nan.'

def _get_daily_window_data(self, assets, field, days_in_window, extra_slot=True):

    bar_count = len(days_in_window)
    dtype = (float64 if (field != 'sid') else int64)
    if extra_slot:
        return_array = np.zeros(((bar_count + 1), len(assets)), dtype=dtype)
    else:
        return_array = np.zeros((bar_count, len(assets)), dtype=dtype)
    if (field != 'volume'):
        return_array[:] = np.NAN
    if (bar_count != 0):
        data = self._history_loader.history(assets, days_in_window, field, extra_slot)
        if extra_slot:
            return_array[:(len(return_array) - 1), :] = data
        else:
            return_array[:len(data)] = data
    return return_array
