code: def update_cache_by_increment(self, blocksize):
          
          start = float(self.raw_buffer.end_time)
          end = float(start + blocksize)
  
          if not hasattr(self, 'dur'):
              fname = glob.glob(self.frame_src[0])[0]
              fname = os.path.splitext(os.path.basename(fname))[0].split('-')
  
              self.beg = '-'.join([fname[0], fname[1]])
              self.ref = int(fname[2])
              self.dur = int(fname[3])
  
          fstart = int(self.ref + numpy.floor((start - self.ref) / float(self.dur)) * self.dur)
          starts = numpy.arange(fstart, end, self.dur).astype(numpy.int)
  
          keys = []
          for s in starts:
              pattern = self.increment_update_cache
              if 'GPS' in pattern:
                  n = int(pattern[int(pattern.index('GPS') + 3)])
                  pattern = pattern.replace('GPS%s' % n, str(s)[0:n])
  
              name = '%s/%s-%s-%s.gwf' % (pattern, self.beg, s, self.dur)
              # check that file actually exists, else abort now
              if not os.path.exists(name):
                  logging.info("%s does not seem to exist yet" % name)
                  raise RuntimeError
  
              keys.append(name)
          cache = locations_to_cache(keys)
          stream = lalframe.FrStreamCacheOpen(cache)
          self.stream = stream
          self.channel_type, self.raw_sample_rate = \
              self._retrieve_metadata(self.stream, self.channel_name)
docs: Update the internal cache by starting from the first frame
          and incrementing.
  
          Guess the next frame file name by incrementing from the first found
          one. This allows a pattern to be used for the GPS folder of the file,
          which is indicated by `GPSX` where x is the number of digits to use.
  
          Parameters
          ----------
          blocksize: int
              Number of seconds to increment the next frame file.