def get(self): self.response.headers['Content-Type'] = 'text/plain' url_segs = defaultdict(list) for segment in Segment.cache(): url_segs[segment['url']].append(segment) keys_to_del = [] for url, segments in url_segs.items(): if len(segments) > 1: control_segment = segments[0] for segment in segments[1:]: if segment['description'] == control_segment['description']: keys_to_del.append(segment['key']) self.response.out.write("Keys to delete: %s\n" % keys_to_del) segs_to_del = [seg for seg in Segment.get(keys_to_del) if seg is not None] self.response.out.write("Segments to delete: %s\n" % segs_to_del) if len(segs_to_del): db.delete(segs_to_del) Segment.cache(True) self.response.out.write("\nDeleted marked segments and reset cache.") else: self.response.out.write("\nNo segments were deleted.")