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