def _generate_lookup_table()

in sapp/json_diagnostics.py [0:0]


    def _generate_lookup_table(self) -> LookupTable:
        logger.info("Generating lookup table")
        filenames = list(map(os.path.abspath, self.analysis_output.file_names()))

        table = LookupTable()

        next_id = 0
        filename_to_id = {}

        entries = {}
        with Pool(processes=None) as pool:
            for i, (filename, entries) in enumerate(
                pool.imap_unordered(partial(_parse_file, self.parser_class), filenames)
            ):
                if sys.stdout.isatty():
                    sys.stdout.write(f"\rProcessed {i+1} out of {len(filenames)} files")
                    sys.stdout.flush()
                if filename not in filename_to_id:
                    filename_to_id[filename] = next_id
                    table.file_index[next_id] = filename
                    next_id += 1
                file_id = filename_to_id[filename]
                entries = {
                    c: [(file_id, offset) for offset in offsets]
                    for c, offsets in entries.items()
                }
                table.entries.update(entries)

        print("")

        return table