def find_urls(self, site, frametype, gpsstart, gpsend,<EOL>match=None, on_gaps='<STR_LIT>'):
span = Segment(gpsstart, gpsend)<EOL>cache = [e for e in self._read_ffl_cache(site, frametype) if<EOL>e.observatory == site and e.description == frametype and<EOL>e.segment.intersects(span)]<EOL>urls = [e.path for e in cache]<EOL>missing = SegmentList([span]) - cache_segments(cache)<EOL>if match:<EOL><INDENT>match = re.compile(match)<EOL>urls = list(filter(match.search, urls))<EOL><DEDENT>if on_gaps == '<STR_LIT:ignore>' or not missing:<EOL><INDENT>return urls<EOL><DEDENT>msg = '<STR_LIT>'.format('<STR_LIT:\n>'.join(map(str, missing)))<EOL>if on_gaps == '<STR_LIT>':<EOL><INDENT>warnings.warn(msg)<EOL>return urls<EOL><DEDENT>raise RuntimeError(msg)<EOL>
Find all files of the given type in the [start, end) GPS interval.