Source code for squadds.core.db_devices

SIMULATION_CONTRIBUTOR_KEYS = ("uploader", "PI", "group", "institution")


[docs] def unique_contributor_records(contributor_rows, keys): """ Return unique contributor mappings preserving their first-seen order. """ unique_rows = [] for contributor in contributor_rows: record = {key: contributor.get(key, "N/A") for key in keys} if record not in unique_rows: unique_rows.append(record) return unique_rows
[docs] def collect_all_simulation_contributors(configs, repo_name, load_dataset_fn): """ Gather unique simulation contributors across all dataset configs. """ unique_rows = [] for config in configs: dataset = load_dataset_fn(repo_name, config)["train"] for row in unique_contributor_records(dataset["contributor"], SIMULATION_CONTRIBUTOR_KEYS): row_with_config = dict(row) row_with_config["Config"] = config if row_with_config not in unique_rows: unique_rows.append(row_with_config) return unique_rows
[docs] def build_measured_device_records(dataset): """ Build the measured-device dataframe payload used by ``get_measured_devices``. """ records = [] for entry in zip( dataset["contrib_info"], dataset["design_code"], dataset["paper_link"], dataset["image"], dataset["foundry"], dataset["fabrication_recipe"], dataset["substrate"], dataset["materials"], dataset["junction_style"], dataset["junction_material"], ): ( contrib_info, design_code, paper_link, image, foundry, _recipe, substrate, materials, junction_style, junction_materials, ) = entry records.append( { "Name": contrib_info.get("name", "N/A"), "Design Code": design_code, "Paper Link": paper_link, "Image": image, "Foundry": foundry, "Substrate": substrate, "Materials": materials, "Junction Style": junction_style, "Junction Materials": junction_materials, } ) return records
[docs] def build_measured_device_rows(dataset): """ Build the rows printed by ``view_measured_devices``. """ rows = [] for entry in zip( dataset["contrib_info"], dataset["design_code"], dataset["paper_link"], dataset["image"], dataset["foundry"], dataset["fabrication_recipe"], ): contrib_info, design_code, paper_link, image, foundry, recipe = entry rows.append( { "Name": contrib_info.get("name", "N/A"), "Design Code": design_code, "Paper Link": paper_link, "Image": image, "Foundry": foundry, "Fabrication Recipe": recipe, } ) return rows
[docs] def find_simulation_results_for_device(dataset, device_name): """ Return simulation results for a measured device name. """ for contrib_info, sim_results in zip(dataset["contrib_info"], dataset["sim_results"]): if contrib_info["name"] == device_name: return sim_results return {}
[docs] def find_device_contributor_info(dataset, config): """ Return contributor information for the measured device that validates a config. """ for contrib_info, sim_results in zip(dataset["contrib_info"], dataset["sim_results"]): if config in sim_results: return { "Foundry": contrib_info.get("foundry", "N/A"), "PI": contrib_info.get("PI", "N/A"), "Group": contrib_info.get("group", "N/A"), "Institution": contrib_info.get("institution", "N/A"), "Measured By": ", ".join(contrib_info.get("measured_by", [])), "Reference Device Name": contrib_info.get("name", "N/A"), "Uploader": contrib_info.get("uploader", "N/A"), } return None
[docs] def find_reference_device_info(dataset, config): """ Return the combined measured-device metadata for a config. """ for entry in zip( dataset["contrib_info"], dataset["sim_results"], dataset["design_code"], dataset["paper_link"], dataset["image"], dataset["foundry"], dataset["fabrication_recipe"], ): contrib_info, sim_results, design_code, paper_link, image, foundry, recipe = entry if config in sim_results: combined_info = { "Design Code": design_code, "Paper Link": paper_link, "Image": image, "Foundry": foundry, "Fabrication Recipe": recipe, } combined_info.update(contrib_info) return combined_info return None
[docs] def build_recipe_rows(dataset, device_name): """ Return the printable recipe rows for a measured device. """ for contrib_info, foundry, recipe, github_url in zip( dataset["contrib_info"], dataset["foundry"], dataset["fabrication_recipe"], dataset["design_code"], ): if contrib_info["name"] == device_name: return [ ["Foundry", foundry], ["Fabublox Link", recipe], ["Fabrication Recipe Links", f"{github_url}/tree/main/Fabrication"], ] return None
[docs] def build_reference_device_records(dataset, simulation_lookup_fn): """ Return unique reference-device rows for ``view_reference_devices``. """ unique_rows = [] for contrib_info in dataset["contrib_info"]: record = {key: contrib_info[key] for key in ["name", "group", "measured_by"]} device_name = contrib_info["name"] record["simulations"] = simulation_lookup_fn(device_name) if record not in unique_rows: unique_rows.append(record) return unique_rows