import%20marimo%0A%0A__generated_with%20%3D%20%220.23.9%22%0Aapp%20%3D%20marimo.App()%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20import%20marimo%20as%20mo%0A%0A%20%20%20%20from%20scripts.learning_path_i18n%20import%20(%0A%20%20%20%20%20%20%20%20docs_relative_href%2C%0A%20%20%20%20%20%20%20%20language_switch_markdown%2C%0A%20%20%20%20%20%20%20%20load_catalog%2C%0A%20%20%20%20%20%20%20%20locale_from_argv%2C%0A%20%20%20%20%20%20%20%20navigation_markdown%2C%0A%20%20%20%20)%0A%0A%20%20%20%20locale%20%3D%20locale_from_argv()%0A%20%20%20%20catalog%20%3D%20load_catalog(%2208_metadata_driven_dataset_search%22%2C%20locale)%0A%0A%20%20%20%20def%20t(key%2C%20**values)%3A%0A%20%20%20%20%20%20%20%20return%20catalog.text(key%2C%20**values)%0A%0A%20%20%20%20return%20(%0A%20%20%20%20%20%20%20%20catalog%2C%0A%20%20%20%20%20%20%20%20docs_relative_href%2C%0A%20%20%20%20%20%20%20%20language_switch_markdown%2C%0A%20%20%20%20%20%20%20%20locale%2C%0A%20%20%20%20%20%20%20%20mo%2C%0A%20%20%20%20%20%20%20%20navigation_markdown%2C%0A%20%20%20%20%20%20%20%20t%2C%0A%20%20%20%20)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo%2C%20t)%3A%0A%20%20%20%20mo.md(f%22%23%20%7Bt('title')%7D%5Cn%5Cn%7Bt('intro')%7D%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(language_switch_markdown%2C%20locale%2C%20mo)%3A%0A%20%20%20%20mo.md(language_switch_markdown(%2208_metadata_driven_dataset_search%22%2C%20locale))%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20pathlib%0A%0A%20%20%20%20import%20pandas%20as%20pd%0A%0A%20%20%20%20import%20wandas%20as%20wd%0A%0A%20%20%20%20return%20pathlib%2C%20pd%2C%20wd%0A%0A%0A%40app.cell%0Adef%20_(pathlib)%3A%0A%20%20%20%20root%20%3D%20pathlib.Path(__file__).parent%20%2F%20%22data%22%20%2F%20%22metadata_search%22%0A%20%20%20%20relative_paths%20%3D%20sorted(path.relative_to(root).as_posix()%20for%20path%20in%20root.rglob(%22*.wav%22))%0A%20%20%20%20file_count%20%3D%20len(relative_paths)%0A%20%20%20%20assert%20file_count%20%3D%3D%203%0A%20%20%20%20return%20file_count%2C%20relative_paths%2C%20root%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(file_count%2C%20mo%2C%20relative_paths%2C%20root%2C%20t)%3A%0A%20%20%20%20paths%20%3D%20%22%5Cn%22.join(f%22-%20%60%7Bpath%7D%60%22%20for%20path%20in%20relative_paths)%0A%20%20%20%20mo.md(t(%22discovery_result%22%2C%20root%3Droot%2C%20count%3Dfile_count%2C%20paths%3Dpaths))%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo%2C%20t)%3A%0A%20%20%20%20mo.md(t(%22path_metadata_section%22))%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(root%2C%20wd)%3A%0A%20%20%20%20dataset%20%3D%20wd.from_folder(%0A%20%20%20%20%20%20%20%20str(root)%2C%0A%20%20%20%20%20%20%20%20recursive%3DTrue%2C%0A%20%20%20%20%20%20%20%20file_extensions%3D%5B%22.wav%22%5D%2C%0A%20%20%20%20%20%20%20%20path_metadata%3DTrue%2C%0A%20%20%20%20)%0A%20%20%20%20assert%20dataset.get_metadata()%5B%22lazy_loading%22%5D%20is%20True%0A%20%20%20%20return%20(dataset%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(dataset%2C%20mo%2C%20t)%3A%0A%20%20%20%20dataset_metadata%20%3D%20dataset.get_metadata()%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20t(%0A%20%20%20%20%20%20%20%20%20%20%20%20%22dataset_result%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20count%3Dlen(dataset)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20lazy_loading%3Ddataset_metadata%5B%22lazy_loading%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20loaded_count%3Ddataset_metadata%5B%22loaded_count%22%5D%2C%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(dataset)%3A%0A%20%20%20%20selected%20%3D%20dataset.select(partition_0%3D%22group_a%22%2C%20partition_1%3D%22batch_01%22)%0A%20%20%20%20assert%20len(selected)%20%3D%3D%201%0A%20%20%20%20return%20(selected%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo%2C%20selected%2C%20t)%3A%0A%20%20%20%20mo.md(t(%22selection_result%22%2C%20count%3Dlen(selected)))%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(dataset)%3A%0A%20%20%20%20try%3A%0A%20%20%20%20%20%20%20%20dataset.select(missing_key%3D%22value%22)%0A%20%20%20%20except%20KeyError%20as%20error%3A%0A%20%20%20%20%20%20%20%20unknown_key_error%20%3D%20type(error).__name__%0A%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20raise%20AssertionError(%22Unknown%20metadata%20keys%20must%20raise%20KeyError%22)%0A%0A%20%20%20%20empty_selection%20%3D%20dataset.select(partition_0%3D%22missing_group%22)%0A%20%20%20%20assert%20len(empty_selection)%20%3D%3D%200%0A%20%20%20%20return%20empty_selection%2C%20unknown_key_error%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(empty_selection%2C%20mo%2C%20t%2C%20unknown_key_error)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20t(%0A%20%20%20%20%20%20%20%20%20%20%20%20%22selection_contract%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20error%3Dunknown_key_error%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20empty_count%3Dlen(empty_selection)%2C%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo%2C%20t)%3A%0A%20%20%20%20mo.md(t(%22lazy_loading_section%22))%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(selected)%3A%0A%20%20%20%20before_count%20%3D%20selected.get_metadata()%5B%22loaded_count%22%5D%0A%20%20%20%20selected_frame%20%3D%20selected%5B0%5D%0A%20%20%20%20assert%20selected_frame%20is%20not%20None%0A%20%20%20%20after_item_count%20%3D%20selected.get_metadata()%5B%22loaded_count%22%5D%0A%20%20%20%20sample_values%20%3D%20selected_frame.data%0A%20%20%20%20after_data_count%20%3D%20selected.get_metadata()%5B%22loaded_count%22%5D%0A%20%20%20%20assert%20before_count%20%3D%3D%200%0A%20%20%20%20assert%20after_item_count%20%3D%3D%201%0A%20%20%20%20assert%20after_data_count%20%3D%3D%20after_item_count%0A%20%20%20%20sample_preview%20%3D%20sample_values%5B%3A5%5D.tolist()%0A%20%20%20%20return%20after_data_count%2C%20after_item_count%2C%20before_count%2C%20sample_preview%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(after_data_count%2C%20after_item_count%2C%20before_count%2C%20mo%2C%20sample_preview%2C%20t)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20t(%0A%20%20%20%20%20%20%20%20%20%20%20%20%22lazy_boundary_result%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20before%3Dbefore_count%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20after_item%3Dafter_item_count%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20after_data%3Dafter_data_count%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20samples%3Dsample_preview%2C%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo%2C%20t)%3A%0A%20%20%20%20mo.md(t(%22dataset_chaining_section%22))%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(dataset)%3A%0A%20%20%20%20processed_dataset%20%3D%20dataset.normalize().stft(n_fft%3D128)%0A%20%20%20%20processed_selected%20%3D%20processed_dataset.select(partition_0%3D%22group_a%22%2C%20partition_1%3D%22batch_01%22)%0A%20%20%20%20assert%20len(processed_selected)%20%3D%3D%201%0A%20%20%20%20processed_frame%20%3D%20processed_selected%5B0%5D%0A%20%20%20%20assert%20processed_frame%20is%20not%20None%0A%20%20%20%20processed_values%20%3D%20processed_frame.data%0A%20%20%20%20assert%20processed_values.size%20%3E%200%0A%20%20%20%20assert%20processed_frame.metadata%5B%22partition_0%22%5D%20%3D%3D%20%22group_a%22%0A%20%20%20%20assert%20processed_frame.metadata%5B%22partition_1%22%5D%20%3D%3D%20%22batch_01%22%0A%20%20%20%20return%20processed_frame%2C%20processed_selected%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo%2C%20processed_frame%2C%20processed_selected%2C%20t)%3A%0A%20%20%20%20metadata%20%3D%20%7Bkey%3A%20processed_frame.metadata%5Bkey%5D%20for%20key%20in%20(%22partition_0%22%2C%20%22partition_1%22)%7D%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20t(%0A%20%20%20%20%20%20%20%20%20%20%20%20%22transform_result%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20count%3Dlen(processed_selected)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20metadata%3Dmetadata%2C%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo%2C%20t)%3A%0A%20%20%20%20mo.md(t(%22file_list_section%22))%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(relative_paths%2C%20root%2C%20wd)%3A%0A%20%20%20%20chosen_paths%20%3D%20%5Brelative_paths%5B2%5D%2C%20relative_paths%5B0%5D%2C%20relative_paths%5B2%5D%5D%0A%20%20%20%20listed_dataset%20%3D%20wd.from_files(chosen_paths%2C%20base_dir%3Droot)%0A%20%20%20%20listed_loaded%20%3D%20listed_dataset.get_metadata()%5B%22loaded_count%22%5D%0A%20%20%20%20assert%20len(listed_dataset)%20%3D%3D%20len(chosen_paths)%20%3D%3D%203%0A%20%20%20%20assert%20listed_loaded%20%3D%3D%200%0A%20%20%20%20return%20chosen_paths%2C%20listed_dataset%2C%20listed_loaded%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(chosen_paths%2C%20listed_dataset%2C%20listed_loaded%2C%20mo%2C%20t)%3A%0A%20%20%20%20mo.md(t(%22file_list_result%22%2C%20paths%3Dchosen_paths%2C%20count%3Dlen(listed_dataset)%2C%20loaded%3Dlisted_loaded))%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo%2C%20t)%3A%0A%20%20%20%20mo.md(t(%22catalog_section%22))%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(pd%2C%20root)%3A%0A%20%20%20%20recordings%20%3D%20pd.read_csv(root%20%2F%20%22recordings.csv%22)%0A%20%20%20%20return%20(recordings%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo%2C%20recordings%2C%20t)%3A%0A%20%20%20%20mo.vstack(%5Bmo.md(t(%22csv_table%22))%2C%20recordings%5D)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(root%2C%20wd)%3A%0A%20%20%20%20catalog_dataset%20%3D%20wd.from_table(root%20%2F%20%22recordings.csv%22%2C%20path_column%3D%22path%22)%0A%20%20%20%20catalog_reference%20%3D%20catalog_dataset.select(condition%3D%22reference%22%2C%20priority%3D%221%22)%0A%20%20%20%20catalog_wrong_type%20%3D%20catalog_dataset.select(priority%3D1)%0A%20%20%20%20assert%20len(catalog_reference)%20%3D%3D%201%0A%20%20%20%20assert%20len(catalog_wrong_type)%20%3D%3D%200%0A%20%20%20%20assert%20catalog_dataset.get_metadata()%5B%22loaded_count%22%5D%20%3D%3D%200%0A%20%20%20%20return%20catalog_reference%2C%20catalog_wrong_type%0A%0A%0A%40app.cell%0Adef%20_(recordings%2C%20root%2C%20wd)%3A%0A%20%20%20%20table_dataset%20%3D%20wd.from_table(recordings%2C%20path_column%3D%22path%22%2C%20base_dir%3Droot)%0A%20%20%20%20table_reference%20%3D%20table_dataset.select(condition%3D%22reference%22%2C%20priority%3D1)%0A%20%20%20%20assert%20len(table_reference)%20%3D%3D%201%0A%20%20%20%20assert%20table_dataset.get_metadata()%5B%22loaded_count%22%5D%20%3D%3D%200%0A%20%20%20%20return%20(table_reference%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(catalog_reference%2C%20catalog_wrong_type%2C%20mo%2C%20t%2C%20table_reference)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20t(%0A%20%20%20%20%20%20%20%20%20%20%20%20%22catalog_result%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20csv_count%3Dlen(catalog_reference)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20wrong_count%3Dlen(catalog_wrong_type)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20dataframe_count%3Dlen(table_reference)%2C%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo%2C%20t)%3A%0A%20%20%20%20mo.md(t(%22observations_section%22))%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(pd%2C%20relative_paths)%3A%0A%20%20%20%20observations%20%3D%20pd.DataFrame(%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22path%22%3A%20%5Brelative_paths%5B0%5D%2C%20relative_paths%5B0%5D%2C%20relative_paths%5B1%5D%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22observation%22%3A%20%5B%22followup%22%2C%20%22reference%22%2C%20%22missing_note%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22priority%22%3A%20%5B2%2C%201%2C%201%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22note%22%3A%20%5Bpd.NA%2C%20%22reviewed%22%2C%20pd.NA%5D%2C%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20)%0A%20%20%20%20return%20(observations%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo%2C%20observations%2C%20t)%3A%0A%20%20%20%20mo.vstack(%5Bmo.md(t(%22observations_table%22))%2C%20observations%5D)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(observations%2C%20root%2C%20wd)%3A%0A%20%20%20%20observation_dataset%20%3D%20wd.from_table(observations%2C%20path_column%3D%22path%22%2C%20base_dir%3Droot)%0A%20%20%20%20missing_note%20%3D%20observation_dataset.select(priority%3D1%2C%20note%3DNone)%0A%20%20%20%20assert%20len(observation_dataset)%20%3D%3D%203%0A%20%20%20%20assert%20len(missing_note)%20%3D%3D%201%0A%20%20%20%20assert%20observation_dataset.get_metadata()%5B%22loaded_count%22%5D%20%3D%3D%200%0A%20%20%20%20observation_before%20%3D%20missing_note.get_metadata()%5B%22loaded_count%22%5D%0A%20%20%20%20return%20missing_note%2C%20observation_before%0A%0A%0A%40app.cell%0Adef%20_(missing_note)%3A%0A%20%20%20%20observation_frame%20%3D%20missing_note%5B0%5D%0A%20%20%20%20assert%20observation_frame%20is%20not%20None%0A%20%20%20%20observation_after_item%20%3D%20missing_note.get_metadata()%5B%22loaded_count%22%5D%0A%20%20%20%20assert%20observation_frame.metadata%5B%22note%22%5D%20is%20None%0A%20%20%20%20assert%20observation_frame.metadata%5B%22observation%22%5D%20%3D%3D%20%22missing_note%22%0A%20%20%20%20observation_samples%20%3D%20observation_frame.data%0A%20%20%20%20assert%20observation_samples.size%20%3E%200%0A%20%20%20%20observation_after_data%20%3D%20missing_note.get_metadata()%5B%22loaded_count%22%5D%0A%20%20%20%20assert%20observation_after_item%20%3D%3D%20observation_after_data%20%3D%3D%201%0A%20%20%20%20return%20observation_after_data%2C%20observation_after_item%2C%20observation_samples%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(%0A%20%20%20%20mo%2C%0A%20%20%20%20observation_after_data%2C%0A%20%20%20%20observation_after_item%2C%0A%20%20%20%20observation_before%2C%0A%20%20%20%20observation_samples%2C%0A%20%20%20%20t%2C%0A)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20t(%0A%20%20%20%20%20%20%20%20%20%20%20%20%22observations_result%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20before%3Dobservation_before%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20after_item%3Dobservation_after_item%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20after_data%3Dobservation_after_data%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20shape%3Dobservation_samples.shape%2C%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo%2C%20t)%3A%0A%20%20%20%20mo.md(t(%22csv_section%22))%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(recordings)%3A%0A%20%20%20%20lookup%20%3D%20recordings.set_index(%22path%22)%5B%5B%22condition%22%2C%20%22priority%22%5D%5D.to_dict(orient%3D%22index%22)%0A%20%20%20%20return%20(lookup%2C)%0A%0A%0A%40app.cell%0Adef%20_(lookup%2C%20root%2C%20wd)%3A%0A%20%20%20%20csv_dataset%20%3D%20wd.from_folder(%0A%20%20%20%20%20%20%20%20str(root)%2C%0A%20%20%20%20%20%20%20%20recursive%3DTrue%2C%0A%20%20%20%20%20%20%20%20file_extensions%3D%5B%22.wav%22%5D%2C%0A%20%20%20%20%20%20%20%20metadata_resolver%3Dlambda%20path%3A%20lookup%5Bpath.as_posix()%5D%2C%0A%20%20%20%20)%0A%20%20%20%20reference_files%20%3D%20csv_dataset.select(condition%3D%22reference%22%2C%20priority%3D1)%0A%20%20%20%20assert%20len(reference_files)%20%3D%3D%201%0A%20%20%20%20return%20(reference_files%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo%2C%20reference_files%2C%20t)%3A%0A%20%20%20%20mo.md(t(%22csv_result%22%2C%20count%3Dlen(reference_files)))%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(catalog%2C%20docs_relative_href%2C%20locale%2C%20mo%2C%20t)%3A%0A%20%20%20%20suffix%20%3D%20f%22%20(%7Bcatalog.text('navigation.japanese_only')%7D)%22%20if%20locale%20%3D%3D%20%22en%22%20else%20%22%22%0A%20%20%20%20api_link%20%3D%20f%22%5BFrame%20Dataset%20utility%20reference%7Bsuffix%7D%5D(%7Bdocs_relative_href(locale%2C%20'api%2Futils%2F')%7D)%22%0A%20%20%20%20mo.md(t(%22summary%22%2C%20api_link%3Dapi_link))%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(locale%2C%20mo%2C%20navigation_markdown)%3A%0A%20%20%20%20mo.md(navigation_markdown(%2208_metadata_driven_dataset_search%22%2C%20locale))%0A%20%20%20%20return%0A%0A%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20app.run()%0A
90cbd59cd670a475a7de62bf5c39e4a0