code: def volumes(self, assets, dt):
          
          market_open, prev_dt, dt_value, entries = self._prelude(dt, 'volume')
  
          volumes = []
          session_label = self._trading_calendar.minute_to_session_label(dt)
  
          for asset in assets:
              if not asset.is_alive_for_session(session_label):
                  volumes.append(0)
                  continue
  
              if prev_dt is None:
                  val = self._minute_reader.get_value(asset, dt, 'volume')
                  entries[asset] = (dt_value, val)
                  volumes.append(val)
                  continue
              else:
                  try:
                      last_visited_dt, last_total = entries[asset]
                      if last_visited_dt == dt_value:
                          volumes.append(last_total)
                          continue
                      elif last_visited_dt == prev_dt:
                          val = self._minute_reader.get_value(
                              asset, dt, 'volume')
                          val += last_total
                          entries[asset] = (dt_value, val)
                          volumes.append(val)
                          continue
                      else:
                          after_last = pd.Timestamp(
                              last_visited_dt + self._one_min, tz='UTC')
                          window = self._minute_reader.load_raw_arrays(
                              ['volume'],
                              after_last,
                              dt,
                              [asset],
                          )[0]
                          val = np.nansum(window) + last_total
                          entries[asset] = (dt_value, val)
                          volumes.append(val)
                          continue
                  except KeyError:
                      window = self._minute_reader.load_raw_arrays(
                          ['volume'],
                          market_open,
                          dt,
                          [asset],
                      )[0]
                      val = np.nansum(window)
                      entries[asset] = (dt_value, val)
                      volumes.append(val)
                      continue
          return np.array(volumes)
docs: The volume field's aggregation returns the sum of all volumes
          between the market open and the `dt`
          If there has been no data on or before the `dt` the volume is 0.
  
          Returns
          -------
          np.array with dtype=int64, in order of assets parameter.