def render_path_image(summary): n_freq_table_max = config["n_freq_table_max"].get(int) image_format = config["plot"]["image_format"].get(str) template_variables = render_path(summary) # Top template_variables["top"].content["items"][0].content[ "var_type"] = "Image Path" # Bottom keys = {"Image shape": "image_shape", "Exif keys": "exif_keys"} for title, key in keys.items(): template_variables["freqtable_{}".format(key)] = freq_table( freqtable=summary["{}_counts".format(key)], n=summary["n"], max_number_to_print=n_freq_table_max, ) # TODO: add dropdown to switch to specific values exif_keys = FrequencyTable( template_variables["freqtable_{}".format("exif_keys")], name="Exif keys", anchor_id="{varid}exif_frequency".format(varid=summary["varid"]), ) template_variables["bottom"].content["items"].append(exif_keys) image_shape_freq = FrequencyTable( template_variables["freqtable_{}".format("image_shape")], name="Frequency", anchor_id="{varid}image_shape_frequency".format( varid=summary["varid"]), ) image_shape_scatter = Image( scatter_series(summary["scatter_data"]), image_format=image_format, alt="Scatterplot of image sizes", caption="Scatterplot of image sizes", name="Scatter", anchor_id="{varid}scatter".format(varid=summary["varid"]), ) image_shape = Sequence( [image_shape_freq, image_shape_scatter], sequence_type="tabs", name="Image shape", anchor_id="{varid}image_shape".format(varid=summary["varid"]), ) template_variables["bottom"].content["items"].append(image_shape) return template_variables
def render_file(summary): varid = summary["varid"] template_variables = render_path(summary) # Top template_variables["top"].content["items"][0].content["var_type"] = "File" n_freq_table_max = config["n_freq_table_max"].get(int) image_format = config["plot"]["image_format"].get(str) file_tabs = [] if "file_size" in summary: file_tabs.append( Image( histogram(*summary["histogram_file_size"]), image_format=image_format, alt="Size", caption= f"<strong>Histogram with fixed size bins of file sizes (in bytes)</strong> (bins={len(summary['histogram_file_size'][1]) - 1})", name="File size", anchor_id=f"{varid}file_size_histogram", )) file_dates = { "file_created_time": "Created", "file_accessed_time": "Accessed", "file_modified_time": "Modified", } for file_date_id, description in file_dates.items(): if file_date_id in summary: file_tabs.append( FrequencyTable( freq_table( freqtable=summary[file_date_id].value_counts(), n=summary["n"], max_number_to_print=n_freq_table_max, ), name=description, anchor_id=f"{varid}{file_date_id}", redact=False, )) file_tab = Container( file_tabs, name="File", sequence_type="tabs", anchor_id=f"{varid}file", ) template_variables["bottom"].content["items"].append(file_tab) return template_variables