From cc87b0e1093ae87d7a263de8d5b843de87d8c8e2 Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Mon, 20 Jun 2022 14:52:34 +0200 Subject: [PATCH 01/60] add audiofolder loader (almost identical to imagefolder except for inferring labels is not default) --- src/datasets/packaged_modules/__init__.py | 3 + .../packaged_modules/audiofolder/__init__.py | 0 .../audiofolder/audiofolder.py | 406 ++++++++++++++++++ 3 files changed, 409 insertions(+) create mode 100644 src/datasets/packaged_modules/audiofolder/__init__.py create mode 100644 src/datasets/packaged_modules/audiofolder/audiofolder.py diff --git a/src/datasets/packaged_modules/__init__.py b/src/datasets/packaged_modules/__init__.py index 96834486964..e871f428c3a 100644 --- a/src/datasets/packaged_modules/__init__.py +++ b/src/datasets/packaged_modules/__init__.py @@ -3,6 +3,7 @@ from hashlib import sha256 from typing import List +from .audiofolder import audiofolder from .csv import csv from .imagefolder import imagefolder from .json import json @@ -32,6 +33,7 @@ def _hash_python_lines(lines: List[str]) -> str: "parquet": (parquet.__name__, _hash_python_lines(inspect.getsource(parquet).splitlines())), "text": (text.__name__, _hash_python_lines(inspect.getsource(text).splitlines())), "imagefolder": (imagefolder.__name__, _hash_python_lines(inspect.getsource(imagefolder).splitlines())), + "audiofolder": (audiofolder.__name__, _hash_python_lines(inspect.getsource(audiofolder).splitlines())), } _EXTENSION_TO_MODULE = { @@ -43,3 +45,4 @@ def _hash_python_lines(lines: List[str]) -> str: "txt": ("text", {}), } _EXTENSION_TO_MODULE.update({ext[1:]: ("imagefolder", {}) for ext in imagefolder.ImageFolder.IMAGE_EXTENSIONS}) +_EXTENSION_TO_MODULE.update({ext[1:]: ("audiofolder", {}) for ext in audiofolder.AudioFolder.AUDIO_EXTENSIONS}) diff --git a/src/datasets/packaged_modules/audiofolder/__init__.py b/src/datasets/packaged_modules/audiofolder/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/datasets/packaged_modules/audiofolder/audiofolder.py b/src/datasets/packaged_modules/audiofolder/audiofolder.py new file mode 100644 index 00000000000..2f4bf4194d1 --- /dev/null +++ b/src/datasets/packaged_modules/audiofolder/audiofolder.py @@ -0,0 +1,406 @@ +import collections +import itertools +import os +from dataclasses import dataclass +from typing import List, Optional, Tuple + +import pyarrow.compute as pc +import pyarrow.json as paj + +import datasets + + +logger = datasets.utils.logging.get_logger(__name__) + + +if datasets.config.PYARROW_VERSION.major >= 7: + + def pa_table_to_pylist(table): + return table.to_pylist() + +else: + + def pa_table_to_pylist(table): + keys = table.column_names + values = table.to_pydict().values() + return [{k: v for k, v in zip(keys, row_values)} for row_values in zip(*values)] + + +def count_path_segments(path): + cnt = 0 + while True: + parts = os.path.split(path) + if parts[0] == path: + break + elif parts[1] == path: + break + else: + path = parts[0] + cnt += 1 + return cnt + + +@dataclass +class AudioFolderConfig(datasets.BuilderConfig): + """Builder Config for AudioFolder. """ + + features: Optional[datasets.Features] = None + drop_labels: bool = True # usually we don't need labels as classification is not the main audio task + drop_metadata: bool = False + + +class AudioFolder(datasets.GeneratorBasedBuilder): + BUILDER_CONFIG_CLASS = AudioFolderConfig + + AUDIO_EXTENSIONS: List[str] = [] # definition at the bottom of the script + SKIP_CHECKSUM_COMPUTATION_BY_DEFAULT = True + METADATA_FILENAME: str = "metadata.jsonl" + + def _info(self): + return datasets.DatasetInfo(features=self.config.features) + + def _split_generators(self, dl_manager): + if not self.config.data_files: + raise ValueError(f"At least one data file must be specified, but got data_files={self.config.data_files}") + + # Do an early pass if: + # * `features` are not specified, to infer them + # * `drop_metadata` is False, to find the metadata files + # TODO: remove self.config.drop_metadata from this condition? as we want to infer labels only when it is explicitly stated + # audio classification is not the most common audio task, + # but we preserve th option of inferring labels from data directories names to be consistent with ImageFolder + # it's just not the default behaviour + do_analyze = (self.config.features is None and not self.config.drop_labels) or not self.config.drop_metadata + if do_analyze: + labels = set() + metadata_files = collections.defaultdict(list) + + def analyze(files_or_archives, downloaded_files_or_dirs, split): + # TODO: maybe two separate funcs (`analyze_files` and `analyze_archives`) for readability? + # TODO: OR analyze_labels and analyze_metadata + if len(downloaded_files_or_dirs) == 0: + return + # The files are separated from the archives at this point, so check the first sample + # to see if it's a file or a directory and iterate accordingly + if os.path.isfile(downloaded_files_or_dirs[0]): + original_files, downloaded_files = files_or_archives, downloaded_files_or_dirs + for original_file, downloaded_file in zip(original_files, downloaded_files): + original_file, downloaded_file = str(original_file), str(downloaded_file) + _, original_file_ext = os.path.splitext(original_file) + if original_file_ext.lower() in self.AUDIO_EXTENSIONS: + labels.add(os.path.basename(os.path.dirname(original_file))) + elif os.path.basename(original_file) == self.METADATA_FILENAME: + metadata_files[split].append((original_file, downloaded_file)) + else: + original_file_name = os.path.basename(original_file) + logger.debug( + f"The file '{original_file_name}' was ignored: it is not an audio file, and is not {self.METADATA_FILENAME} either." + ) + else: + archives, downloaded_dirs = files_or_archives, downloaded_files_or_dirs + for archive, downloaded_dir in zip(archives, downloaded_dirs): + archive, downloaded_dir = str(archive), str(downloaded_dir) + for downloaded_dir_file in dl_manager.iter_files(downloaded_dir): + _, downloaded_dir_file_ext = os.path.splitext(downloaded_dir_file) + if downloaded_dir_file_ext in self.AUDIO_EXTENSIONS: + labels.add(os.path.basename(os.path.dirname(downloaded_dir_file))) + elif os.path.basename(downloaded_dir_file) == self.METADATA_FILENAME: + metadata_files[split].append((None, downloaded_dir_file)) + else: + archive_file_name = os.path.basename(archive) + original_file_name = os.path.basename(downloaded_dir_file) + logger.debug( + f"The file '{original_file_name}' from the archive '{archive_file_name}' was ignored: " + f"it is not an audio file, and is not {self.METADATA_FILENAME} either." + ) + + if not self.config.drop_labels: + logger.info("Inferring labels from data files...") + if not self.config.drop_metadata: + logger.info("Analyzing metadata files...") + + data_files = self.config.data_files + splits = [] + for split_name, files in data_files.items(): + if isinstance(files, str): + files = [files] + files, archives = self._split_files_and_archives(files) + downloaded_files = dl_manager.download(files) + downloaded_dirs = dl_manager.download_and_extract(archives) + if do_analyze: + analyze(files, downloaded_files, split_name) + analyze(archives, downloaded_dirs, split_name) + splits.append( + datasets.SplitGenerator( + name=split_name, + gen_kwargs={ + "files": [(file, downloaded_file) for file, downloaded_file in zip(files, downloaded_files)] + + [(None, dl_manager.iter_files(downloaded_dir)) for downloaded_dir in downloaded_dirs], + "metadata_files": metadata_files if not self.config.drop_metadata else None, + "split_name": split_name, + }, + ) + ) + + if not self.config.drop_metadata and metadata_files: + # Verify that: + # * all metadata files have the same set of features + # * the `file_name` key is one of the metadata keys and is of type string + features_per_metadata_file: List[Tuple[str, datasets.Features]] = [] + for _, downloaded_metadata_file in itertools.chain.from_iterable(metadata_files.values()): + with open(downloaded_metadata_file, "rb") as f: + pa_metadata_table = paj.read_json(f) + features_per_metadata_file.append( + (downloaded_metadata_file, datasets.Features.from_arrow_schema(pa_metadata_table.schema)) + ) + for downloaded_metadata_file, metadata_features in features_per_metadata_file: + if metadata_features != features_per_metadata_file[0][1]: + raise ValueError( + f"Metadata files {downloaded_metadata_file} and {features_per_metadata_file[0][0]} have different features: {features_per_metadata_file[0][1]} != {metadata_features}" + ) + metadata_features = features_per_metadata_file[0][1] + if "file_name" not in metadata_features: + raise ValueError("`file_name` must be present as dictionary key in metadata files") + if metadata_features["file_name"] != datasets.Value("string"): + raise ValueError("`file_name` key must be a string") + del metadata_features["file_name"] + else: + metadata_features = None + + # Normally, we would do this in _info, but we need to know the labels and/or metadata + # before building the features + if self.config.features is None: + if not self.config.drop_labels and not metadata_files: + self.info.features = datasets.Features( + {"audio": datasets.Audio(), "label": datasets.ClassLabel(names=sorted(labels))} + ) + # task_template = ImageClassification(image_column="image", label_column="label") + # task_template = task_template.align_with_features(self.info.features) + # self.info.task_templates = [task_template] + else: + self.info.features = datasets.Features({"audio": datasets.Audio()}) + + if not self.config.drop_metadata and metadata_files: + # Verify that there are no duplicated keys when compared to the existing features ("audio", optionally "label") + duplicated_keys = set(self.info.features) & set(metadata_features) + if duplicated_keys: + raise ValueError( + f"Metadata feature keys {list(duplicated_keys)} are already present as the audio features" + ) + self.info.features.update(metadata_features) + + return splits + + def _split_files_and_archives(self, data_files): + # TODO: what???? what did you want to do you crazy bitch why can't you write down your thoughts immediately when they come + files, archives = [], [] + for data_file in data_files: + _, data_file_ext = os.path.splitext(data_file) + if data_file_ext.lower() in self.AUDIO_EXTENSIONS: + files.append(data_file) + elif os.path.basename(data_file) == self.METADATA_FILENAME: + files.append(data_file) + else: + archives.append(data_file) + return files, archives + + def _generate_examples(self, files, metadata_files, split_name): + if not self.config.drop_metadata and metadata_files: + split_metadata_files = metadata_files.get(split_name, []) + audio_empty_metadata = {k: None for k in self.info.features if k != "audio"} + + last_checked_dir = None + metadata_dir = None + metadata_dict = None + downloaded_metadata_file = None + + file_idx = 0 + for original_file, downloaded_file_or_dir in files: + if original_file is not None: # then it's a file, not a dir + _, original_file_ext = os.path.splitext(original_file) + if original_file_ext.lower() in self.AUDIO_EXTENSIONS: + # If the file is an audio file, and we've just entered a new directory, + # find the nereast metadata file (by counting path segments) for the directory + current_dir = os.path.dirname(original_file) + if last_checked_dir is None or last_checked_dir != current_dir: + last_checked_dir = current_dir + metadata_file_candidates = [ + ( + os.path.relpath(original_file, os.path.dirname(metadata_file_candidate)), + metadata_file_candidate, + downloaded_metadata_file, + ) + for metadata_file_candidate, downloaded_metadata_file in split_metadata_files + if metadata_file_candidate + is not None # ignore metadata_files that are inside archives TODO WHY + and not os.path.relpath( + original_file, os.path.dirname(metadata_file_candidate) + ).startswith("..") + ] + if metadata_file_candidates: + _, metadata_file, downloaded_metadata_file = min( + metadata_file_candidates, key=lambda x: count_path_segments(x[0]) + ) + with open(downloaded_metadata_file, "rb") as f: + pa_metadata_table = paj.read_json(f) + pa_file_name_array = pa_metadata_table["file_name"] + pa_file_name_array = pc.replace_substring( + pa_file_name_array, pattern="\\", replacement="/" + ) + pa_metadata_table = pa_metadata_table.drop(["file_name"]) + metadata_dir = os.path.dirname(metadata_file) + metadata_dict = { + file_name: audio_metadata + for file_name, audio_metadata in zip( + pa_file_name_array.to_pylist(), pa_table_to_pylist(pa_metadata_table) + ) + } + else: + raise ValueError( + f"One or several metadata.jsonl were found, but not in the same directory or " + f"in a parent directory of {downloaded_file_or_dir}." + ) + if metadata_dir is not None and downloaded_metadata_file is not None: + file_relpath = os.path.relpath(original_file, metadata_dir) + file_relpath = file_relpath.replace("\\", "/") + if file_relpath not in metadata_dict: + # TODO: go easier on not found files? make it a warning maybe? + raise ValueError( + f"Audio at {file_relpath} doesn't have metadata in {downloaded_metadata_file}." + ) + audio_metadata = metadata_dict[file_relpath] + else: + raise ValueError( + f"One or several metadata.jsonl were found, but not in the same directory " + f"or in a parent directory of {downloaded_file_or_dir}." + ) + yield file_idx, { + **audio_empty_metadata, + "audio": downloaded_file_or_dir, + **audio_metadata, + } + file_idx += 1 + else: # then it's a dir + for downloaded_dir_file in downloaded_file_or_dir: + _, downloaded_dir_file_ext = os.path.splitext(downloaded_dir_file) + if downloaded_dir_file_ext.lower() in self.AUDIO_EXTENSIONS: + current_dir = os.path.dirname(downloaded_dir_file) + if last_checked_dir is None or last_checked_dir != current_dir: + last_checked_dir = current_dir + metadata_file_candidates = [ + ( + os.path.relpath( + downloaded_dir_file, os.path.dirname(downloaded_metadata_file) + ), + metadata_file_candidate, + downloaded_metadata_file, + ) + for metadata_file_candidate, downloaded_metadata_file in split_metadata_files + if metadata_file_candidate + is None # ignore metadata_files that are not inside archives + and not os.path.relpath( + downloaded_dir_file, os.path.dirname(downloaded_metadata_file) + ).startswith("..") + ] + if metadata_file_candidates: + _, metadata_file, downloaded_metadata_file = min( + metadata_file_candidates, key=lambda x: count_path_segments(x[0]) + ) + with open(downloaded_metadata_file, "rb") as f: + pa_metadata_table = paj.read_json(f) + pa_file_name_array = pa_metadata_table["file_name"] + pa_file_name_array = pc.replace_substring( + pa_file_name_array, pattern="\\", replacement="/" + ) + pa_metadata_table = pa_metadata_table.drop(["file_name"]) + metadata_dir = os.path.dirname(downloaded_metadata_file) + metadata_dict = { + file_name: audio_metadata + for file_name, audio_metadata in zip( + pa_file_name_array.to_pylist(), pa_table_to_pylist(pa_metadata_table) + ) + } + else: + raise ValueError( + f"One or several metadata.jsonl were found, but not in the same directory or in a parent directory of {downloaded_dir_file}." + ) + if metadata_dir is not None and downloaded_metadata_file is not None: + downloaded_dir_file_relpath = os.path.relpath(downloaded_dir_file, metadata_dir) + downloaded_dir_file_relpath = downloaded_dir_file_relpath.replace("\\", "/") + if downloaded_dir_file_relpath not in metadata_dict: + raise ValueError( + f"Audio at {downloaded_dir_file_relpath} doesn't have metadata in {downloaded_metadata_file}." + ) + audio_metadata = metadata_dict[downloaded_dir_file_relpath] + else: + raise ValueError( + f"One or several metadata.jsonl were found, but not in the same directory or in a parent directory of {downloaded_dir_file}." + ) + yield file_idx, { + **audio_empty_metadata, + "audio": downloaded_dir_file, + **audio_metadata, + } + file_idx += 1 + else: + file_idx = 0 + for original_file, downloaded_file_or_dir in files: + if original_file is not None: + _, original_file_ext = os.path.splitext(original_file) + if original_file_ext.lower() in self.AUDIO_EXTENSIONS: + if self.config.drop_labels or metadata_files: + yield file_idx, { + "audio": downloaded_file_or_dir, + } + else: + yield file_idx, { + "audio": downloaded_file_or_dir, + "label": os.path.basename(os.path.dirname(original_file)), + } + file_idx += 1 + else: + for downloaded_dir_file in downloaded_file_or_dir: + _, downloaded_dir_file_ext = os.path.splitext(downloaded_dir_file) + if downloaded_dir_file_ext.lower() in self.AUDIO_EXTENSIONS: + if self.config.drop_labels or metadata_files: + yield file_idx, { + "audio": downloaded_dir_file, + } + else: + yield file_idx, { + "audio": downloaded_dir_file, + "label": os.path.basename(os.path.dirname(downloaded_dir_file)), + } + file_idx += 1 + + +# TODO: add info on how these extensions were obtained +AudioFolder.AUDIO_EXTENSIONS = [ + ".aiff", + ".au", + ".avr", + ".caf", + ".flac", + ".htk", + ".svx", + ".mat4", + ".mat5", + ".mpc2k", + ".mp3", + ".ogg", + ".opus", + ".paf", + ".pvf", + ".raw", + ".rf64", + ".sd2", + ".sds", + ".ircam", + ".voc", + ".w64", + ".wav", + ".nist", + ".wavex", + ".wve", + ".xi", +] From 0adcd5614f2596eb81df56197ac744f76efe1074 Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Mon, 20 Jun 2022 14:59:32 +0200 Subject: [PATCH 02/60] check codestyle --- src/datasets/packaged_modules/audiofolder/audiofolder.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/datasets/packaged_modules/audiofolder/audiofolder.py b/src/datasets/packaged_modules/audiofolder/audiofolder.py index 2f4bf4194d1..4d753964107 100644 --- a/src/datasets/packaged_modules/audiofolder/audiofolder.py +++ b/src/datasets/packaged_modules/audiofolder/audiofolder.py @@ -42,7 +42,7 @@ def count_path_segments(path): @dataclass class AudioFolderConfig(datasets.BuilderConfig): - """Builder Config for AudioFolder. """ + """Builder Config for AudioFolder.""" features: Optional[datasets.Features] = None drop_labels: bool = True # usually we don't need labels as classification is not the main audio task From e46eecb5834a25186d9feb0989bf2ccb170d5753 Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Tue, 21 Jun 2022 18:05:18 +0200 Subject: [PATCH 03/60] add tests --- .../audiofolder/audiofolder.py | 2 +- tests/conftest.py | 5 + tests/packaged_modules/test_audiofolder.py | 366 ++++++++++++++++++ 3 files changed, 372 insertions(+), 1 deletion(-) create mode 100644 tests/packaged_modules/test_audiofolder.py diff --git a/src/datasets/packaged_modules/audiofolder/audiofolder.py b/src/datasets/packaged_modules/audiofolder/audiofolder.py index 4d753964107..5916ebf4cca 100644 --- a/src/datasets/packaged_modules/audiofolder/audiofolder.py +++ b/src/datasets/packaged_modules/audiofolder/audiofolder.py @@ -87,7 +87,7 @@ def analyze(files_or_archives, downloaded_files_or_dirs, split): for original_file, downloaded_file in zip(original_files, downloaded_files): original_file, downloaded_file = str(original_file), str(downloaded_file) _, original_file_ext = os.path.splitext(original_file) - if original_file_ext.lower() in self.AUDIO_EXTENSIONS: + if original_file_ext.lower() in self.AUDIO_EXTENSIONS: # and not self.config.drop_labels labels.add(os.path.basename(os.path.dirname(original_file))) elif os.path.basename(original_file) == self.METADATA_FILENAME: metadata_files[split].append((original_file, downloaded_file)) diff --git a/tests/conftest.py b/tests/conftest.py index cfb82e507f5..4a268d78cfc 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -474,6 +474,11 @@ def image_file(): return os.path.join(os.path.dirname(__file__), "features", "data", "test_image_rgb.jpg") +@pytest.fixture +def audio_file(): + return os.path.join(os.path.dirname(__file__), "features", "data", "test_audio_44100.wav") + + @pytest.fixture(scope="session") def zip_image_path(image_file, tmp_path_factory): import zipfile diff --git a/tests/packaged_modules/test_audiofolder.py b/tests/packaged_modules/test_audiofolder.py new file mode 100644 index 00000000000..d23360fb64f --- /dev/null +++ b/tests/packaged_modules/test_audiofolder.py @@ -0,0 +1,366 @@ +import os +import shutil +import textwrap + +import librosa +import numpy as np +import pytest +import soundfile as sf + +from datasets import Audio, Features, Value +from datasets.data_files import DataFilesDict, get_patterns_locally +from datasets.download.streaming_download_manager import xopen +from datasets.packaged_modules.audiofolder.audiofolder import AudioFolder +from datasets.streaming import extend_module_for_streaming + +from ..utils import require_sndfile + + +@pytest.fixture +def cache_dir(tmp_path): + return str(tmp_path / "audiofolder_cache_dir") + + +@pytest.fixture +def audio_file_with_metadata(tmp_path, audio_file): + audio_filename = tmp_path / "audio_file.wav" + shutil.copyfile(audio_file, audio_filename) + audio_metadata_filename = tmp_path / "metadata.jsonl" + audio_metadata = textwrap.dedent( + """\ + {"file_name": "audio_file.wav", "text": "Audio transcription"} + """ + ) + with open(audio_metadata_filename, "w", encoding="utf-8") as f: + f.write(audio_metadata) + return str(audio_filename), str(audio_metadata_filename) + + +@pytest.fixture +def audio_files_with_metadata_that_misses_one_audio(tmp_path, audio_file): + audio_filename = tmp_path / "audio_file.wav" + shutil.copyfile(audio_file, audio_filename) + audio_filename2 = tmp_path / "audio_file2.wav" + shutil.copyfile(audio_file, audio_filename2) + audio_metadata_filename = tmp_path / "metadata.jsonl" + audio_metadata = textwrap.dedent( + """\ + {"file_name": "audio_file.wav", "text": "Audio transcription"} + """ + ) + with open(audio_metadata_filename, "w", encoding="utf-8") as f: + f.write(audio_metadata) + return str(audio_filename), str(audio_filename2), str(audio_metadata_filename) + + +@pytest.fixture +def data_files_with_one_split_and_metadata(tmp_path, audio_file): + data_dir = tmp_path / "audiofolder_data_dir_with_metadata" + data_dir.mkdir(parents=True, exist_ok=True) + subdir = data_dir / "subdir" + subdir.mkdir(parents=True, exist_ok=True) + + audio_filename = data_dir / "audio_file.wav" + shutil.copyfile(audio_file, audio_filename) + audio_filename2 = data_dir / "audio_file2.wav" + shutil.copyfile(audio_file, audio_filename2) + audio_filename3 = subdir / "audio_file3.wav" # in subdir + shutil.copyfile(audio_file, audio_filename3) + + audio_metadata_filename = data_dir / "metadata.jsonl" + audio_metadata = textwrap.dedent( + """\ + {"file_name": "audio_file.wav", "text": "First audio transcription"} + {"file_name": "audio_file2.wav", "text": "Second audio transcription"} + {"file_name": "subdir/audio_file3.wav", "text": "Third audio transcription (in subdir)"} + """ + ) + with open(audio_metadata_filename, "w", encoding="utf-8") as f: + f.write(audio_metadata) + data_files_with_one_split_and_metadata = DataFilesDict.from_local_or_remote( + get_patterns_locally(str(data_dir)), str(data_dir) + ) + assert len(data_files_with_one_split_and_metadata) == 1 + assert len(data_files_with_one_split_and_metadata["train"]) == 4 + return data_files_with_one_split_and_metadata + + +@pytest.fixture +def data_files_with_two_splits_and_metadata(tmp_path, audio_file): + data_dir = tmp_path / "audiofolder_data_dir_with_metadata" + data_dir.mkdir(parents=True, exist_ok=True) + train_dir = data_dir / "train" + train_dir.mkdir(parents=True, exist_ok=True) + test_dir = data_dir / "test" + test_dir.mkdir(parents=True, exist_ok=True) + + audio_filename = train_dir / "audio_file.wav" # train audio + shutil.copyfile(audio_file, audio_filename) + audio_filename2 = train_dir / "audio_file2.wav" # train audio + shutil.copyfile(audio_file, audio_filename2) + audio_filename3 = test_dir / "audio_file3.wav" # test audio + shutil.copyfile(audio_file, audio_filename3) + + train_audio_metadata_filename = train_dir / "metadata.jsonl" + audio_metadata = textwrap.dedent( + """\ + {"file_name": "audio_file.wav", "text": "First train audio transcription"} + {"file_name": "audio_file2.wav", "text": "Second train audio transcription"} + """ + ) + with open(train_audio_metadata_filename, "w", encoding="utf-8") as f: + f.write(audio_metadata) + test_audio_metadata_filename = test_dir / "metadata.jsonl" + audio_metadata = textwrap.dedent( + """\ + {"file_name": "audio_file3.wav", "text": "Test audio transcription"} + """ + ) + with open(test_audio_metadata_filename, "w", encoding="utf-8") as f: + f.write(audio_metadata) + data_files_with_two_splits_and_metadata = DataFilesDict.from_local_or_remote( + get_patterns_locally(str(data_dir)), str(data_dir) + ) + assert len(data_files_with_two_splits_and_metadata) == 2 + assert len(data_files_with_two_splits_and_metadata["train"]) == 3 + assert len(data_files_with_two_splits_and_metadata["test"]) == 2 + return data_files_with_two_splits_and_metadata + + +@pytest.fixture +def data_files_with_zip_archives(tmp_path, audio_file): + data_dir = tmp_path / "audiofolder_data_dir_with_zip_archives" + data_dir.mkdir(parents=True, exist_ok=True) + archive_dir = data_dir / "archive" + archive_dir.mkdir(parents=True, exist_ok=True) + subdir = archive_dir / "subdir" + subdir.mkdir(parents=True, exist_ok=True) + + audio_filename = archive_dir / "audio_file.wav" + shutil.copyfile(audio_file, audio_filename) + audio_filename2 = subdir / "audio_file2.wav" # in subdir + # make sure they're two different audios + # Indeed we won't be able to compare the audio filenames, since the archive is not extracted in streaming mode + array, sampling_rate = librosa.load(str(audio_filename), sr=16000) + sf.write(str(audio_filename2), array, samplerate=16000) + + audio_metadata_filename = archive_dir / "metadata.jsonl" + audio_metadata = textwrap.dedent( + """\ + {"file_name": "audio_file.wav", "text": "First audio transcription"} + {"file_name": "subdir/audio_file2.wav", "text": "Second audio transcription (in subdir)"} + """ + ) + + with open(audio_metadata_filename, "w", encoding="utf-8") as f: + f.write(audio_metadata) + + shutil.make_archive(str(archive_dir), "zip", archive_dir) + shutil.rmtree(str(archive_dir)) + + data_files_with_zip_archives = DataFilesDict.from_local_or_remote( + get_patterns_locally(str(data_dir)), str(data_dir) + ) + + assert len(data_files_with_zip_archives) == 1 + assert len(data_files_with_zip_archives["train"]) == 1 + return data_files_with_zip_archives + + +@require_sndfile +@pytest.mark.parametrize("drop_labels", [True, False]) +def test_generate_examples_drop_labels(audio_file, drop_labels): + audiofolder = AudioFolder(drop_labels=drop_labels) + generator = audiofolder._generate_examples([(audio_file, audio_file)], None, "train") + if not drop_labels: + assert all( + example.keys() == {"audio", "label"} and all(val is not None for val in example.values()) + for _, example in generator + ) + else: + assert all( + example.keys() == {"audio"} and all(val is not None for val in example.values()) + for _, example in generator + ) + + +@require_sndfile +@pytest.mark.parametrize("drop_metadata", [True, False]) +def test_generate_examples_drop_metadata(audio_file_with_metadata, drop_metadata): + audio_file, audio_metadata_file = audio_file_with_metadata + if not drop_metadata: + features = Features({"audio": Audio(), "text": Value("string")}) + else: + features = Features({"audio": Audio()}) + audiofolder = AudioFolder(drop_metadata=drop_metadata, features=features) + generator = audiofolder._generate_examples( + [(audio_file, audio_file)], {"train": [(audio_metadata_file, audio_metadata_file)]}, "train" + ) + if not drop_metadata: + assert all( + example.keys() == {"audio", "text"} and all(val is not None for val in example.values()) + for _, example in generator + ) + else: + assert all( + example.keys() == {"audio"} and all(val is not None for val in example.values()) + for _, example in generator + ) + + +@require_sndfile +@pytest.mark.parametrize("drop_metadata", [True, False]) +def test_generate_examples_with_metadata_in_wrong_location(audio_file, audio_file_with_metadata, drop_metadata): + _, audio_metadata_file = audio_file_with_metadata + if not drop_metadata: + features = Features({"audio": Audio(), "text": Value("string")}) + else: + features = Features({"audio": Audio()}) + audiofolder = AudioFolder(drop_metadata=drop_metadata, features=features) + generator = audiofolder._generate_examples( + [(audio_file, audio_file)], {"train": [(audio_metadata_file, audio_metadata_file)]}, "train" + ) + if not drop_metadata: + with pytest.raises(ValueError): + list(generator) + else: + assert all( + example.keys() == {"audio"} and all(val is not None for val in example.values()) + for _, example in generator + ) + + +@require_sndfile +@pytest.mark.parametrize("drop_metadata", [True, False]) +def test_generate_examples_with_metadata_in_wrong_location(audio_file, audio_file_with_metadata, drop_metadata): + _, audio_metadata_file = audio_file_with_metadata + if not drop_metadata: + features = Features({"audio": Audio(), "text": Value("string")}) + else: + features = Features({"audio": Audio()}) + audiofolder = AudioFolder(drop_metadata=drop_metadata, features=features) + generator = audiofolder._generate_examples( + [(audio_file, audio_file)], {"train": [(audio_metadata_file, audio_metadata_file)]}, "train" + ) + if not drop_metadata: + with pytest.raises(ValueError): + _ = list(generator) + else: + assert all( + example.keys() == {"audio"} and all(val is not None for val in example.values()) + for _, example in generator + ) + + +@require_sndfile +@pytest.mark.parametrize("drop_metadata", [True, False]) +def test_generate_examples_with_metadata_that_misses_one_audio( + audio_files_with_metadata_that_misses_one_audio, drop_metadata +): + audio_file, audio_file2, audio_metadata_file = audio_files_with_metadata_that_misses_one_audio + if not drop_metadata: + features = Features({"audio": Audio(), "text": Value("string")}) + else: + features = Features({"audio": Audio()}) + audiofolder = AudioFolder(drop_metadata=drop_metadata, features=features) + generator = audiofolder._generate_examples( + [(audio_file, audio_file), (audio_file2, audio_file2)], + {"train": [(audio_metadata_file, audio_metadata_file)]}, + "train", + ) + if not drop_metadata: + with pytest.raises(ValueError): + _ = list(generator) + else: + assert all( + example.keys() == {"audio"} and all(val is not None for val in example.values()) + for _, example in generator + ) + + +@require_sndfile +@pytest.mark.parametrize("streaming", [False, True]) +@pytest.mark.parametrize("n_splits", [1, 2]) +def test_data_files_with_metadata_and_splits( + streaming, cache_dir, n_splits, data_files_with_one_split_and_metadata, data_files_with_two_splits_and_metadata +): + data_files = data_files_with_one_split_and_metadata if n_splits == 1 else data_files_with_two_splits_and_metadata + audiofolder = AudioFolder(data_files=data_files, cache_dir=cache_dir) + audiofolder.download_and_prepare() + datasets = audiofolder.as_streaming_dataset() if streaming else audiofolder.as_dataset() + for split, data_files in data_files.items(): + expected_num_of_audios = len(data_files) - 1 # don't count the metadata file + assert split in datasets + dataset = list(datasets[split]) + assert len(dataset) == expected_num_of_audios + # make sure each sample has its own audio and metadata + assert len(set(example["audio"]["path"] for example in dataset)) == expected_num_of_audios + assert len(set(example["text"] for example in dataset)) == expected_num_of_audios + assert all(example["text"] is not None for example in dataset) + + +@require_sndfile +@pytest.mark.parametrize("streaming", [False, True]) +def test_data_files_with_metadata_and_archives(streaming, cache_dir, data_files_with_zip_archives): + if streaming: + extend_module_for_streaming(AudioFolder.__module__) + audiofolder = AudioFolder(data_files=data_files_with_zip_archives, cache_dir=cache_dir) + audiofolder.download_and_prepare() + datasets = audiofolder.as_streaming_dataset() if streaming else audiofolder.as_dataset() + for split, data_files in data_files_with_zip_archives.items(): + num_of_archives = len(data_files) # the metadata file is inside the archive + expected_num_of_audios = 2 * num_of_archives + assert split in datasets + dataset = list(datasets[split]) + assert len(dataset) == expected_num_of_audios + # make sure each sample has its own audio and metadata, take first 10 numbers in array just in case + assert len(set([tuple(example["audio"]["array"][:10]) for example in dataset])) == expected_num_of_audios + assert len(set(example["text"] for example in dataset)) == expected_num_of_audios + assert all(example["text"] is not None for example in dataset) + + +@require_sndfile +def test_data_files_with_wrong_metadata_file_name(cache_dir, tmp_path, audio_file): + data_dir = tmp_path / "data_dir_with_bad_metadata" + data_dir.mkdir(parents=True, exist_ok=True) + shutil.copyfile(audio_file, data_dir / "audio_file.wav") + audio_metadata_filename = data_dir / "bad_metadata.jsonl" # bad file + audio_metadata = textwrap.dedent( + """\ + {"file_name": "audio_file.wav", "text": "Audio transcription"} + """ + ) + with open(audio_metadata_filename, "w", encoding="utf-8") as f: + f.write(audio_metadata) + + data_files_with_bad_metadata = DataFilesDict.from_local_or_remote( + get_patterns_locally(str(data_dir)), str(data_dir) + ) + audiofolder = AudioFolder(data_files=data_files_with_bad_metadata, cache_dir=cache_dir) + audiofolder.download_and_prepare() + dataset = audiofolder.as_dataset(split="train") + # check that there are no metadata, since the metadata file name doesn't have the right name + assert "text" not in dataset.column_names + + +@require_sndfile +def test_data_files_with_wrong_audio_file_name_column_in_metadata_file(cache_dir, tmp_path, audio_file): + data_dir = tmp_path / "data_dir_with_bad_metadata" + data_dir.mkdir(parents=True, exist_ok=True) + shutil.copyfile(audio_file, data_dir / "audio_file.wav") + audio_metadata_filename = data_dir / "metadata.jsonl" + audio_metadata = textwrap.dedent( # with bad column "bad_file_name" instead of "file_name" + """\ + {"bad_file_name_column": "audio_file.wav", "text": "Audio transcription"} + """ + ) + with open(audio_metadata_filename, "w", encoding="utf-8") as f: + f.write(audio_metadata) + + data_files_with_bad_metadata = DataFilesDict.from_local_or_remote( + get_patterns_locally(str(data_dir)), str(data_dir) + ) + audiofolder = AudioFolder(data_files=data_files_with_bad_metadata, cache_dir=cache_dir) + with pytest.raises(ValueError) as exc_info: + audiofolder.download_and_prepare() + assert "`file_name` must be present" in str(exc_info.value) From 7cc4ab9231f3761afd05b29e98c52065f886b4c0 Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Tue, 21 Jun 2022 18:17:54 +0200 Subject: [PATCH 04/60] remove unused imports --- tests/packaged_modules/test_audiofolder.py | 25 ---------------------- 1 file changed, 25 deletions(-) diff --git a/tests/packaged_modules/test_audiofolder.py b/tests/packaged_modules/test_audiofolder.py index d23360fb64f..6853886efa6 100644 --- a/tests/packaged_modules/test_audiofolder.py +++ b/tests/packaged_modules/test_audiofolder.py @@ -1,15 +1,12 @@ -import os import shutil import textwrap import librosa -import numpy as np import pytest import soundfile as sf from datasets import Audio, Features, Value from datasets.data_files import DataFilesDict, get_patterns_locally -from datasets.download.streaming_download_manager import xopen from datasets.packaged_modules.audiofolder.audiofolder import AudioFolder from datasets.streaming import extend_module_for_streaming @@ -230,28 +227,6 @@ def test_generate_examples_with_metadata_in_wrong_location(audio_file, audio_fil ) -@require_sndfile -@pytest.mark.parametrize("drop_metadata", [True, False]) -def test_generate_examples_with_metadata_in_wrong_location(audio_file, audio_file_with_metadata, drop_metadata): - _, audio_metadata_file = audio_file_with_metadata - if not drop_metadata: - features = Features({"audio": Audio(), "text": Value("string")}) - else: - features = Features({"audio": Audio()}) - audiofolder = AudioFolder(drop_metadata=drop_metadata, features=features) - generator = audiofolder._generate_examples( - [(audio_file, audio_file)], {"train": [(audio_metadata_file, audio_metadata_file)]}, "train" - ) - if not drop_metadata: - with pytest.raises(ValueError): - _ = list(generator) - else: - assert all( - example.keys() == {"audio"} and all(val is not None for val in example.values()) - for _, example in generator - ) - - @require_sndfile @pytest.mark.parametrize("drop_metadata", [True, False]) def test_generate_examples_with_metadata_that_misses_one_audio( From a648530eee875bc70cf25da829507664fb365678 Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Tue, 21 Jun 2022 19:41:49 +0200 Subject: [PATCH 05/60] add dummy data --- .../audiofolder/dummy/0.0.0/dummy_data.zip | Bin 0 -> 892883 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 datasets/audiofolder/dummy/0.0.0/dummy_data.zip diff --git a/datasets/audiofolder/dummy/0.0.0/dummy_data.zip b/datasets/audiofolder/dummy/0.0.0/dummy_data.zip new file mode 100644 index 0000000000000000000000000000000000000000..b8afccba2fa896ad1dee50e4583866feb412c389 GIT binary patch literal 892883 zcmagEV~j3g)2KW4%o^L~Gq!Epw(T`*Y}>YN+qP}n=Y79@vXh;DI39K^lxY|FiyET|Hod zfWgi{fq?!eDf|xz3JB`|0PX%~8|(iB*_yf-{+9@_a<;d#`QO<8BL6Sg=)``jEe6Dp zTi*!7*u>FL$Y%F9do*4&oe&~D>KZ~0EzU1wP7^laVSFB!6B&h&Jy z^7v1Katn%(23$&2Hz$o5h|6!(>f(+Z7hk57k*^QjbYyRyDi<|Maex~yqbAqI2XXwS zbaA;dMQ|XRy!cH0jD0$2%?DLzdQ3fAIIt$9sKOHC^s;Z>g3CQx2V)^NSwvTnBmBG%-SLH3=Nxk>^?W+)wSQl z*Vi9w{N_@=6(b@@8iSQfOD1=T3j<}RIr#K>q52bmTyH*0SXj0)8e-7kFslo^Pe&ZB z&L5yzQKXfrbsKI6O?<;VFQkP?#EH=2BUuN#TsQzLKT21H9{hR#KjGG#l*h5m(h0Ri zFn#tYR*Q7Dcz{y~UV}v~(jz9!C=C7H<)q?bnI8*$NH36rG$hn+N2Dt=2oTVJ{rg{L z{@3c3^rinpaiss#OhZ=_OZ)#N`dCGsk^X;-{BQmL6n#L=>3`!`%D{lg|8F=(4h~Lz zMiv%!eTM%ABf!kY(D;9>?^a_m%BrmUzun_%McJK97l;09O^1<7L$ls?v&EJh??353 zr^}jThp|fn!i#e+Rou~0Uf#y^uA`X`1t3RKKB%!gmQWagJTgHw||BU1x2qkx}Xu#sOmV+?j{ zb@snV819hb$g0XT?%V|Fzp|0xl@S#ZH06>s)OXtL?VR@vOkQ4IOqiW%TAJQz%p4sW zOd08&SlXNIOdT5=>D-<;8D89&o7`L+UKuz)xA!(7ZY$(~75o^zU)uw-Ycuni*(oU@ zd1C7;Bb&>!z39i?9XIlum#>Q7T`%PMUq9ZJUqCu{8rOfIcfb0#xL{%+FSGo=UyuL) zsrU9W7!LtXY5(%>^6c{Ea&~okwSVTy`K=5(SHnP!r+3|R_(Bh< zw|oU7|AbZjt%j|Z^9J24xJj&-8*(qus>}RTLw7rdoci%$*1QEU35vHpYV=}yPAQ)5 z832_y4QL&uE)Vy4w6Oirq*^Ai*@qc6PP1JTM=g7)pPAJ0BbH`?uq~4HyeiT8l@pTv z);8EGT;nUdA;%c23)NKzZ1TOQqk6Q~c{NG6?T zPI1@d#Zh@FLRTybd=`YGqKRivF#IP7Pv$8iXN=PNzACj zLE6xSxJ#SHlGf0deSv14Db09{c3;Aa`ROutfm~!t54c(5VM*C%F6_+eR*ki)PV#Gu5QYjWuPVe6XVhd`I0!a%Y+((W zWV}*bf2n{;e|6P30y;Tw&v&)JFs}KghA+iZt6N(ZV(`EkpXFH$LVO_WT=2--*=xj~ z|Lsnf71tI9P>96g_8=J+7IWaCo1GLTB+LTln`=1aC!rAHKp2Ll3@l;Qg?=RqRQx@F zwC2DpI{AX3>4QxEh*;os7q)a~s9#7w?^BpBjb3Dg83gT$eGhlr*y<ST6 zKTj1rWPTVK?<=AMh2QyOE#N>IT-#JzT5HDO#jr^KmqCP~qfu?3#eMUuHQ(Z$)S{v_ zYEH-xs*sH?OrYpq2m*>##eob;kVwTrJFE-ntWPIP0J$xZ?Z8`j*yt$_4^w&}B`YK# zcZLI#)dPwE<#TcwxE}!22CUZ6Yv~!DG%ivB7Tv&xQ#`mGToB5|IHKLN3J0UO+hKZ9 zKTxw_@&|roZL+>Zi(A^}{v3*Zg&v$jTS|1JVH6bWeh3~{SBd^*kJ7i+_>p!%EFQbT zbHR~*@Xj9b&qiQg_#ZMS?gfklwvH}xGj9E`K+j@R8HU`f*=R|8o<%CzBh0SKB)98%vf$lqBKl9|+4G61=o*oIaaO1ZlP0L@Y{{c2At z;6kI!VavrnhhFijMtp8)iAm5A<+Zf&sXsw67T9PmMr=X)+-GRhs^(MCm9R%OkLPryy&1#x~UbP-m`q}B4IkgWNfK8W2ISZ_>dIw4rvjAH>LE! zz*Wa}@=$IU?+-+?)t;mjF|PnQrz)r;(&rCk7dGkU{0!}4o*lOBsr_vT;WoVm?%))i zTWE6|yL!eYgK`#HnglcyjZ9cKjI?JJra+|-rZwl?kdP3_iCr>}8o+kBmb@4Qw zA|!rG+HHA&$8Gl~fZ{49%+B6gPSxdnjq2y%OC*v3r?tv>E(y84?wKLuiI+yk{wj+O zE7jEZefywwzw}-s@yy0($X6q-;!7tC>z6V`HqlouzuCM}jZ0bKOg7w`Ch!{Xg@&b5 zCM2LoJexz-ockrwa5ZsH)3N+3w$Fx24MfcRtwK|qU?2A9V6)4`>2G&%fFp&OHcnqP+NpW95HCXn_|pu)(UxM8FBZ`< z8m}wj$!3e3Db-l*XgA!CkmL|CmelBnlWN>6^z%ew=s|K8oAwmgo4)N*9jW zN_C#gulFqvyhJPYOztr5a=JPfv=d6wsQxY;u{ZL+e*h=Ndaz71bav|*9ZOCaE7xM- zKii`k2W$THfVc14zB~SKM)R#=2tq6Hi|lO|FRLgNdrQEca+b zXw|w8UMY!>OqwvSFzi(zTqc6F{aJz8Nwvy+OyJ7{#3o0NgCyw}U5CJ%r7M4zRK`yLH1!2k zxdT~3IdPUOmw*^8Ms4I-($}^{U7O@RUcsu*9GYedDgxG| zZQGH!epu#>7Hm2kV)&vSOksAMQ=GtguUUYI0#M-F$D7wX*XPDJ*SFSh24|%K-vcma ziu_MbCc^SbDCpy=XW#HgvVn{Q*LaX5AOJH2CeijE>Q5Nw7ZG8H-B7R?2XstQ;uKYi z4yDP~JB-%PK!~#!`EuImAIKFC0-(g8Q=m(X#5ktbyum`AYhl0usaMFliovJgZG&Fr*hs~y#rf8CIYb+?Gw2irv(|r(t=0R zb$IZyClI7WlcZdq%ARb{8(J1yQ8_GQlkn-+CnG+>~j=NW?ljBe6ASV?T4d*yrGW_}R4laS7sZP?oX@%7; z$tysFzeLnhs02{ad&(8u)9z>K4g4asq+9oCg#0c5!+~hBbdw-xpUCdVIwFJ%5BfhJ zTy3AE>HGHayX(bzJ;GFjnhyF3VV;)>#@UBGq0ratk-Q^G5&dXv?SQD*@9V!-!%T z`$Zky>(*vb6B=&G-ScBkY^`*Ek6k;>(lYH^V`dWR=Qk$Wy&%o66$zhJe?KY(;G~ld z^^yZwU9r?%BX}j0=smZxOK9C<)ohU1gMtIbVWY9UnU@o+J2m!8B6}LWV@FrN=%(B2 zv-X`*TAx5M6Dj2I&sBra=yv)#nRDGFlgn?=)Ik`+SqYX+Ari{P7{>dM__gHd5B?O#16l^>#%VNM2Y_F~1pvO8;BS>i4~=vNM&O{V~| z_t6GrAwIs9i(VcBPqHr zaS)-eIltsTqO`Bim)5tJKbIGm7k<2VABnZa@Kv&>z(j$$LLQ89tGZ1Rn${C+{Ue}q z&xjGI{Tqg^K!H*GRw}{9eKPm;a7>xx3nH_20sxtyI=3G2fWN#QwSH66gr|qAVl8i} zVG*6QgYHc*@=Ex&t>! z;Rhp_<adN&a-<1 z@cL;QQ-+v5bA2jxo&qV{QQ#WTWMHD87FZEyxP-7ZRYw}6WMh=z??2e?w?}eP>X=9u zsp@(`a9FErvnH}8ZEADvHz;*d7ApXuv?cXHL)*lz(mWUrI+(WcjvRBQUggoBr*JPC0>rfWo?vG#b3ohlY$hQj^t9r0vpPgQ6~ zji$^^Y&u+Tw>csTB2tRTLnLh{@f9X{L%;{l+)b8n3>Qa@GDtu^C=%uLuXnQ-vOp@D zUlWN}GcujG)3LrdqUke@v#IBO5W|Fe(aoU_9b)6wqRox>%I9Sd?wO4RD2R2_-M!Q( z+6IEADWp09PFRt|iHQLs~(DgwcSNIE%6 zVJEVZvb5@Gvna@Kr`L*rr9_p(fe3nxpzyL>i^V(q`>{fmngONP7aJ*a3vK$xVw+Z9 z;j`rf@O(jfjBt=l&6#QrWe|`XAgUlZyqhF^h%i}5s;wl^@Y;J3I-&|B3_J)l z2sQ{g2qFBv8}^Xc=;7WZaVqzjz~}LFy$mr`-|fYyGGJ=Uk8Ft}u|Oq^8HK&utUlxO zNi#MNDOgJ6m~TLOK4vtrzm~n@a4P|~lbWhGF)YMaK-#(Gnj;=At1VpswrmLNKKha5 zT7hY-rPe~z9P3uh?2C~v(0R4&^rjZMqnP`_cc~%z_so%1JAe7#o0cwVl1k}FJrSto zt;#x}C8y*1!ra|4SUHO11aL?Df%&;!VP!xG_<(zakzN0&#GEyD(kkolA$KzrE4n(> ziR9BK+X43#D-Zswtbd^BiN|m*sNZSKO_|&vM5aK63hTFa{+7n!Ep);v6>2A7Dvx#w z%h$)~!)kKFl<0l*Es~>ge|`XxQQUD8fNE_6LjBmAV(cGBg6b zTR9k^COMON+G%o+S`9lMoa1^0U}~vh88YB&xi6Y_fw&j>5wVW%V31!cwRc<$CQOrF zZv!sj3!g~*HEqGLS^rLzO|KScWquqs%#+b&I>qz|p{Z&p4%2`QNRmwo_F{T=e#}e4 zF~=WQa_Znou&|bD8p8uVUm^ZP;B!NjbD_~+#1lPGCbd{`H?Byd7by20IV+YO0Nqmv zpS-E9)S@SGXPE5ay)ArEX}Xb-Br_Sb1^RZStB_SoE-8AIPAYTt0TQ-` z>_LlV`n*)N2DT(MbKifG0UtLpJ1lh>ff(dx_N#!U_LKzpCfr z-)!;)_n6=Q6&D^A;#t~Cvw){Jm5a}p zqyFa&Em}P`G%d=`PDY^v$4v->5Urdj#&eE~*L8zLx0eoQ$w?+B7=Y@(*yQ=$^j93B z-F?r+19YXjvOO$Cq^*(tR(0)7wUbe8Y}Y>+HZd*kA0jRG$RhS5c}WKnxBA} ze2Aqh2l-2=v;)G;^_KA%$JEyCnm2)Yma}I>_=b3-^0a920LeH!tOA6sr+opLI4JCo z`f`!r@9MnJfr>wVHHq%(%GU<^%J%kEnrzfWOzBk>RKhhE67Dre%zKl=uRiJLU(GQF zkE<~*rnXk08PFo}4_nuh9zb-&4-nzS{|>??*~_%pY%ZZ2TcW`c^zSVq07)&uhrJ7} zwjXqKrnduNgTC77FCwh{9Vrjzm4gagl+ke;5}7u^l(AagCn^syx;rFCZKzXsPdp9C zusG=4G+Ju*w7M3t2W~57S928=W|aa?!Hbh9rC}+z=Kaw0ZIcp^7+YXB;p$IlQJmsi zv%5kwG* z{#;qYsM@wSJn!j}FMR#%bt8nDzn+&jxElK@N@6tdB7=z{^N9!i_FE zY~CbqPs0l$ZSipwz{2BNAp6}TgZ<6}$xuws^tU~u0^gQPlJ;et^%iqe-b!PWb4^NZ zNxz(|nzk1A^|Wvq)c-EBeFk0EVi+d2JoSfuybh^@>B4GbqrD#G(ajW6o|oEpZvn>M z``ZJz{!4GLT$xj3<^yK)xjXg*w$@>qwSW$HxEhD4c)+=ROT*SJosm*27aaXkjH|Rb zLy(dZ(3^F^%DJoa7JomGdY+SeUs5#7rdCGcXsdy+0GuyFde)0f)xmBsf@?-#oJrK( zX!F3(#66Zj$Kt9wKEVxN;mg-&aUPPt!U;*T?eBBi_DwL-Kkz56;oCJSSc4j@Edzrp zsN8dPwxgqy1mbX8*%uA@o4%H}92g}Km0eY@q@^{K2kGQe`qtE_Og@&&t&c%sm&g-F3O28g@HecEZ580<=rNL82L* zA&Y%s*-E;7F)6QYJT4J{UES-GH(kB4y$Ua4r{J3ka=&u?Kf~Lvf0j6)*kY}Wf5l2z zH{Ire>0^S-q!GEe^v`o{jsbP+6e~SC%*xOv+I$Q6ihE%4dhex-Rw!=J0428Ug%xXp zHp2ottc&>k_$bnp*s0uQq>vikU9@=w%HG5j5A!m+vv9gUPUWJs}>LC)xGIu?hCXzPH{FUEa{bW?VF z+$mc}U#fgO$MT#&w{lf2sSHT!b2?Sdr(t}beQu&JB+)Tt~NJ3NBv>pnR~ zDW}rp*8(!%24YQH&XvjZnU~Z3nxXr{*|iUcEPvXLQ^hHJL3u*T-o~|=)3o6+(_}AL zZK*n^_9t<3;fnv1&}a|YX-yUA@Z8d74A*}4I<1Yi2{CNCwHa`q2G2Up557IMl;-m0 zLye|b=QX&XxYb%{E4zqyg2kwQyEQ!h;jP0vHJgw>8yzRWO>E%LN)x|AwAUm%orA$c zVy&2(0f$+tA4E6ZLj>{5e|QyetoBIWk5nQ`$(wb@6dG%iQrj6yeNyo{)$1t}${J$m zE|#1QPucu}I}}i{iwP$OcMss}!Ev2;4cCJkFnr@4U)J%y;(;?KIq}oG5`kcZ%c*&5 zn<%uYMz6}GjHaIsmJY*imMiZ-KAI~_7CDYaJ{=UzY7SxUP}wp-i+oK4l9s{Tcp`R6 z-$z`PYC=p_!3)fLJk_)C`8s@`C&h1b%HZ7xLPE^GX;^}0baKbBq!Jr4Syg}xcl_ze(75 zND~hr^YKL{uLH1ABGG>?Fe16yO9)r@k%W*w_g+-UUdN0)o4Dz}JWqG=|4|kzX}Q^! z-|>Nu3M+1^7tzlze6`Z?9J{cA&l!H$IP$cX(1Hu@r=&+qtnTs;Qg_&u7@Omle-*s2!47L8T%hRa=^HJ}j2K%~-b>oPDDh|`AkdSC+gxO} zlnqD{{SIgjXVlR&)~&4w)i!Ml^GzYctv45rwR|-?Il?a3(~Yrku^2#Yf8s_O%aEFd zhnpbEf+6VG?nzxsXI(Sw)a;<8n5AV5GZXnB{Ckvo@DH>p&64gN9008$kXz0i@%k)& za#}4KK6$X729kbDwxzT8>Y+0inmKd(Cx_EOGW7$?C$(@7r6Q$(<9`M^RD7!;bmcaI zHWz0@hO;0+iWJ?dIIE)WP-hC7r%M9E!fFxvGYAWPD>`tr4=m^-7@p{x3f0muqB&#x-C)GS1laK!=GqB;%AY)&jj4vU)|8B5?{z3_dq7JFy1hO(;-GPmd{1OB`b+&!4% z?x)%?Mn!}Cg}r)LFFNu5+yF2ujLEovaE8V)MVqdTi28%WElSV00da>XKUTO zJx_6xP!>@4+8?G1m+(%kSjHZq^Ze z2f<@KG1iCb$Ss19D3rj_ONbiqtoSa|b7)qHP$(4uJ~s?kpM<297dUZ%`L-jP)r)ef zzQgkco)dcN5SDu-_0Vd`920DCZ&5|!ea)~^y}*C^(6y^W`B<@$NuM#rs+vM;x>|u4 zX1tk;Afn_zQg>76iu0vsdhhUpq*N|vr1l<`@b~C-#f>N`x#aFFg5_n`Gt`7F7uaTZ zMmTfGY9Hsp(8&xIL%fblVpUu2TtmS$&cK(mv<-DGz0Tb;P;()hws#OyEoU zt-`m9`+QCKDEfoNknX|U4lVvO64O#8PVuqNiw&&Xct6eva;8<(l$Dv0V)Q(8M%dN^ z@%T<0fFWgH9EH0|>}nOaKq2mY(>aWn4NTo}bid=SGbNojnu3i9XFPm~E$)I(G}T!w zZJ(^#L&&^xpCjlm)7ikYTj?`&ML;`B_z{ZJ`|M{#7e98!-%SZ;7jYfRbKkhKM~#@L zh|)X9512Y5R$XK{2KEd!;Hl?AKH(aYIy`_vRsQt=7V^By$CuB3L7rw~?!82-?U+YG z9<$gq?x!MmR9{*_QD_I(`L0TW>1;wbLge0Nnxa^bT(2NJE;?kggjup&cU0!*U(xehZYWafOY>`Aodt&FUnulB0aooK$Nt zsSWSYRozMObev>0$fCJMkjN}NwVkVOuB&Y~kxd_**nCdrwXaEZJ~#P>lgM#&|1i-t zOj4VMd~6%C<{d3PTG&TfBd{&M_&P=`Rs4mt#m(G1Nnsl((bwyDGg68@N8!Z=qbkpu z>eI|IJ+RU|!QyFWcD92^$a__^~_a^GPE7Z^$Fmf+CDQ(}c`73U@Zr{es z5e{RXYZul8o$V(s-ACAeNF}VX;osL|of8cILFeYYFqTHWwgu*gqU%oF^miYf7C8GV zpNTb$IoKeasHx!U_2^oDHv{keLiUj)fH8>1HZy<3hZ@097Ooz3#HQZ;8AI%ByAr@t zQ?VF&n`dl+*x=F|{5wubF$y4=^xkMa?)eiQ8^NQJtM->X)$z?6cL*u~yuk%=iB$&*esNwxtV4bG z^wm}_N4)i&y=1u6QHrJvd&+bL;b+OdIQcgPML9X+7MaB8{kZFB3fYYsKPT9&8iVQL z?tp2COex{78SQjeG3J{2TVCIG1K2P1_@3a}#(ncKn$|i^kpoQ#4sw*7l@b_>KY84T z>JZiF$ngCrm8CAaA?*%Gv|6~=*Dd$gkF!JA>8`ZmhFf0Q&lLP06P%frBtn39Jvn$6 zwUbAXWTuHqsAko)x4#$z_Tbdvm`h6j$4(oJFYsgO3t97;@(FF9>3eJTMbN z0n!1a3G)#qDWHgNXjHzXE3m&Qs;BBDiZM2p{Dz^#R4X%3bVCoNH2gvF zwBh;m0o!d2^9I^e)gOOz6IoV^Sfu+uUq9`1;$n`d93x1We--rAu&p&L8Oj7g20~!D zxxlLCA`n!QNE1+lVk4*xiC2C@or=%6WA!pi1W{H4CYGW&KQ|zl&7OSRVSH;CG_#;( zUtV#Cn`RMeLou;JFQSdLqNYUk0i;NVUB!cwiq<8`678C(0>O7e?Li>S3Stvy47oNUHn;!33_8NBc?*qV1tk9 zrN$?P2>%2|^|Mts2t9NBLvx47Va|{vMbtwF?UuKqg13?)G*|Cmlz4fOCvH_1G;=`)*3~I1 zF{$r#lSx8vj3{fH53)wwIyl36&<7pb&k98dk3gBe|0Zx-&6XAANncLlMg;4&-&Uag zc$95UcO|hQq|ZyyeRR>v#t(PYE%e)X3H5i~x>B}Q>U2q~@*OGH5Ix4K)*~Seaix5@ zj1@U&-n+`{MrCQ%k=_sfOR>&63GZh}S!0aVQP#iZ&*-?)NGV5xH3}(fo}7Jt@w_Qp zyy{en3<%}!Cd3JifS4;e8ZR7}7`&ewJtBnqay3Cm@+Hd^ZoHU&&j4grcW0g5TikVe-T;DI{D^=$n^E3p6V2Q@`v^BF;B1V9Q$ z)*#!xPJW+1!>8z-?xWG`&IAS2Cf54j@%d3bjk?;|`t&l^fv7h8GfX7(zQmHxW8o^M zIc)XQtl~Ax4QgUQMy+wx?$Q}VRN=Z|FV%Unz?EpT@~gGPWp(a&!^$cwdi&lxbR@vP z-VIi@`hudZawT5xbw9wfeI2%xXCRY82`hPRCGN;j%h?Hh^Q*fR8*c!rYHl#GJphvO z-z+Fh;_mT%1oWwOg`&$7{7RM4l&dj^@gMmUz+1mT5mW|4C&D&$FLlkmO>DmRK;bLl zm6=B_xU&W(LgcsQADK=-*>C55uFASJ*tv9@A5?wWmpN{D`n+CBok7U1PNYnJYp z4{(Q^R-7%9wecLDpwK3(0;tlkrHjtfhn#T%b%#w!!K9* z<@3Ao)XRSK&ug%HVz4+tBO&4 zs+!`$ll9g%j_1<2$phqC4bCcli)xOWq?B zzIep1CBn)LNBo&)3=AD7s~q*wrvt&IU1D7`cwZm%B1u&ibm{hlQjw89S+J_3E>{JX zjM7B9h+%q;VRQ$&(-1=I18tY)^=0d@cAW?h;Kma8UR7KeeHZ0H-TW|n+MYD=WT*j8 zTenmy1jdg=oP{7IA2fu*yDZ$IkD3KufY8K3<*u;%~ylZ`=3Pq)6uhfLt1CY=yX4M8~@3CsC?!Wb|+-aJCZbh zA{gBw83yIGn=i>=?bDAsdvQ7QcVuxhp9e?3A{21u)%eifD$GG&#v3|E*85FwDVugt zNRa>$?i)hIp#G&NqGq?k!T!==93!IbwAnz$kX5-F^K<>Z04ykf#WD2=M3qAp$^*P? zg+KbhF?^Az<(gqVjH$df&L8g*ci$dU6W)mZt z;x__xPsTAUF(@TAEeZ&+N{py`1}DYCaN5I z`Y{^~iw=X!-+|iOLvTuE83Y@p3j6sJnRElP1dCCe7d=m6?T)X4JjVZwr03+VgVyOl z#E{*YDJ((1Thgs)LEu4I3orENw~HfiWCpylFeVq2pjaU{f8Hk2CfvG3Q!aXyYZM-? zI`q6IB-6&?5rOvG=h899WalylU)-q|s30mC?@G_)d4?9To#yPqxGfzL37Af<*{ zDQwv)c-%4J2VFLf39za(n8cidG0?`}Bsc_1+y<&7Ys?Na=G&8jR&6-WZxGd694{oH zcm)5D^eIxVOKK()jXhxTGG4f;mP(6l{Nwe+f;Jp8q35tzq;y&M4i+A|y5nHOrF$Yo zk?@aVNzt!D=T7^#5sWAWuWASH4Ksfj#lp44h}i05l8=S;dpb`BaC1`)*plaB1qY>2 zwxUdH0>fc)8}d?t2MmSbGPNZgjasN7k0SrPo{E{XzBERYxa}TwRP}ad^3G1w?uxAy zL1_B@rkaJ(!uZAin03MS24&6qJasIqVRi#Ku_h!nD4PfxkUP2yU?ZaCoHXyQUAk$iqi(8Q#?=KPw2hVT7iYac>wFzlo(ks^A9&t)p2xbG8eS1Mn`CW$E%$B<-#ysS{j(mhqNCzAFV zzmLA+wVmFw`UL0r`X!tZg;<|ARQtw&gLhd8@}Ng4i9VGxZ;7xL`OCoYbh+aWGgb%w zZS_yL>TMjjombY18hPhJ=CF~WRCRQ_Q(n_k&R zzD1^0f%=YrPi*^q*+p}c3}Z}TO{HW_#xw-g;}48Nd2wz+mp-9G>8pbOejBD~_h(Ap zL3bVnX-+SEw<}Hi80yv}6tM5FaF;WBSAZM|fC|0iU*#mn0Oqo_utn~f{gl^pc}VB3 z?R|IshGj#jY8Az+O|3}_j~fY1>5CoeKN@UnO^jprgjX{tO&|qG~Wm@ouZ4v*j9(GI;^fetb>0D-7Aq(_;UF{Ocg#gb)gKa zzHD1sK#?a$sH4=U2i@mA>=2v*vNzD#g8HrEtNJa{Umm>#gV}7sru{ra!pLabkh$~R zI88X$tBQki|4!e}s=?uznSv?txVaNs1x}*)m-mJ-gQZQMbNm7Ajt~^|7AqR3GyE}v zC)W)R-Wf<}Mz&biE&K%O<Oscv|L6Q!qyNG>E#6wxhT zGaUbIFdqbin4_gDCx{X%&82@4M(5n_gd`%r2NJlwY<_h-crsu}Sxt01>(|G#YjeEw z$dxgzDZZO4^h!>=xZ{~zLR#y<^Sr~}H_x}Q8HyVs>b}@|X6W?oE-iOw_nJ-@Xku}# z4^m#N2cWeX29R4(HWv2@aZ1%paaoEitLnTsU^aPB#)R>HdBnmrHw(HkXg&pTigH z$N3`6ZEDW5UnCwUWEm;EB65jSXTU9{2f8%V-l9$h(xiQ2s+=hH&j60$?;30f8W>nJ zDZLf8tLaz;XAk#`0?$qhaH$y1$4+Psu>7(orOaLxx)T{yJ+kShsQM)6evQ;3itsq2UY={0WU*79qnBOOTlF9Ev>!N*>n+{ ziN&MYExG==E0^~hBTXT7lcjBQ@s^uRw^}XI{E1t1EdHZg&3h-p&E>AS4m|jX71E?_49>0)q;ndWDgg5zuWSec61+mTCGRixBDj_wf^AJ}st&v9_C}&b#Ilx*yGl^;2sTfHy z;l(1<(;ob*aZMZ?kK~2R!jT31H(*N!wFZfgCj=>6%ExT4I?fLqTE>{#(Gba*G-rWo z7bh$Rf!Mu;wpueP0+XPb*AZbw-Vc^BTJjCLLGm_}=S-4hQX7~;`rRgch_&)Nu+e`S zG#l+g>O7PwG#M6*=phTPn_EE!g!1`%l+pK}tjmvYj7T=MuRxapF>S5uGq>r30x@kV z)Xk=RtFXEIz?R(ne4DGy6l`iuRj5U)LbeQ-RZngpPq4Q% z7mW%LUf|w7)+uJJt@Ew%fNh%m%#aWd{BfkEv{`KZ8}feC872?^foTl83*LPH<5*?d z0j1u-vnl2HJk|pdNiZGNPHe0CnG+F>zZoCijRPy2MpJsnNW87I0{c;`ed<SC3JVnV<$41 zbC06}uV0Zgbn-!B<=&a9{OzPN#!wJBpN7dy zS!P0E7pUozuHg%iDQPW{h96U)Lsc7w~=N395z_ zfiVHxUYluGP^G1zRetC&#pw)fkLHXvE2T=u=qsRtuUh;?? z%B9f+;@>dv_BVZ#xtKJWUrU8;F#$t-!tuzx&MYgN%C>{{ii5R7Hj0&N~6q!ha#9=P6rmZ*VEdmbZ0^!(LNrmr0Z-9HPa3a1?{d?phRFUXy3-D6(Xm z`-`uy#FTQ1?wLBm)I3GGr-Q_{eEY)GS-`{*jE}nvN$s)NB;ZHNXUa9CjB;5nRrd%J zwNa3Uk?{6LbpmD2?eEXFHMpQX@52WSNK0`RDZ=c%HSIpQFFM$11s(k5SP)sOi-;ml zpwh6wCGSfk9qBvg%4ZnpTfgVcbqRgmxwayr`|#r-Vu?3K8L^64=+itq@0RQhBXLVT zw;C?QJ{55kEH0aE#mmo*?Fkb;aOx#K3Y+gDB;RfB)+;)c&F($ENsrCd51YBbygyDZ z_hVDIzz}}NkAN97i70pWhratPr+}a{{@4KVKukgSfWRG7qz(tmm5h8K z4e_mmEj`PkQh@YeW~-Gfyn(OKA_+DJ0JY@th?YxG`)qf?Jhjb~6%#GXhb@hK{D42s z)n2726wH3Kg5)HKZIR2Y*jHtZKS}sPIMF7^wl7``!(vOoI5dd|yo7J!g%0NZvtf@3 z+WlH`c=5Pimx#TWjj*L*d?p!s->CQ8h&Cye!bz75((5E5(`*Y={#KrGFV3LpGL!bh zg8qA{&;DrYgvX8Nf(cHeiERzZ17d{U?kpaX9MkngblRoIa8=a)3w*+0Yw0zP-r7t-M|}T<{}BvzfUINsRxUV3&<7F~fnp3b?kRPrin~Z-GzL z#4kP77@j8dD0>)RCAT)qGR5F7`sb#!DM~yor;jXGifMGbAHIjTGZ_;VT|Q@K9C2js z9MAq`M=Ji2$lSh7{e2|tP!mL5)iWsE_`y@^0{*ORBV_34D)0JpwG_=7#ICTWdlVCp zQV36p!G0Bc)|OS+cF5u+CQfRq8TA#eLj{5E6n{QSGFsQq!^q{8@XX|ksJJN_t!9kZ zRx!nxnT&XokNJv9_R{C|iA6b(7-Fdy%7}(wv_Gi@AoE4xUcA9i!n5z9pRGVSjVH(z zYVh7D=)VUdlM5lXH>tKU0Z3gxt8^VpzW~-7Pk9@p*s1P>8H{O73N0&LV1EH-ECPnp zWL#@R>b71CUYBZ?HM4k?%H*!6{K0W{o7gu4f^L)JixN8ZN@hl1&J=>R!m6pRs_em2 z$>f+)u6i5hrRBbVsQD2qw0b6c6=a;&7nh3Ce!5h|JUpMAEc$ngz3FA#i=}_2DZhNH zHch$PO?Ru%W@IRC_ACdw9(rJyKcmP`>+0fF7P+fV`?j`;7IKH7bP1$>QdOLZ&b=&k zKfX#g`_$AB2XBx(mYqX_{)nT4-zYz|BK$oe(nT*BW#F6(sw;rj2%rmgga#w$ORY;{ zNYGf(FW$u$a})9f1@1n`lk%pSCkWP{62fGBm%|Ao;XNwS+K~iT5LwDbdT9G9&;!Ml z@la@#01t`|;F~)Zu2=c{Vw}Pjmn77L;2_;Z0?OP=vPInWp5zzr$W>1y|RZ$x?)I zGc-SQAuKLiRxeva=~0xpV;ce}GBBi5pw%FqX+F!m#=!EHHAe4gK6D1|1rz z5$5;<`l_~S%FKJh-yQX3VYgmVdb5R zU%s1hb(amqCRvlBOeOHJmvfcVzWX}t6$be~zZRx-Zmv{^zW&T?x4R_pH@%ALTb%C* zv*eiJE=oZ~>HN}zE0&?otsei9uL4d&J5!4X2v3ba2PU{zQwZGd#`@$-KhKr7Yb zUp%NQ)Si3jjBt0dYk;!15%o?d0^}*{RAy2acPtv!5l&HQ-||&Jj|~g!oB=4UqKAEY zOO~xhKDkuGvET_`3NJ)bkX|=RJ)09q9{&#jR6wi0*gpSG0Zo1b{?>*Pt;(RVdS_WU zRWxb&_3QhR``g*u?4AJXglYt~{~>hFhd{Pk*{0h5gb`5edum4g`BcE4Wb}w1do-4% zd9#4vO}p5kWDSTx#W0EF;P)w9r$LQ|?tA8A(gv3_Zv7zFtp1k>PD^bR1 zLR;jY?~X{Ro^E?MxfM6UkeK6L!q-?E?5eUF5(iLbb5_Pz=g%o12t}fd7RaC>6*@Nd z*kp+DiqnW3VWS6UMytd`uq{Z(f0O33jXLM_N(0nTn+mJmv!gV}(7P&W_71@|UJ zqKjH2Zc73)woSCsL_Xn7krX=*w@$0Wh@~{mt`hf#?jjTm@4^pk(z-(sE`UBG=py6K4X;V z*>5zFR<6Uc>tqd3TTd*!Umu1~Ho=TPk zhKyTP`k~|aX-z(CN88Wm(1(u&WG4Sfw>Gt<=J&oJ&?Ujw+u`!X-M* zF>W&TE6>}n8;&6Rz1vB=$p;qBp|ixL;KY0eE||%h)@#2MGjUjmJ=8k+cVg0}!ndrl za|*H9Yr;6vq{HL(5O=2xu5*uRr0YYEH%5f=MH!6qC{WF9QjdJy(%}h%kCixJTzC@?_LogX&+oF-z2OR5ZknsxrV! z7i37NPYMQaKQ&yFyw_R3;?nE7eDPGpg=iF;DH5ipPG)C?k!x{e7mp4sE%*M~^ZFT8 zsTqv3n)KPDz7S6RYPhJSPaa)n)%dNvo}xB7N;%<0Ukb2QnA>j&0(LBuO^PEh7?DQE zQAx{U#?Ew177An+x|*c(KhX7{64C$oH3$zbP5@~IwF8s?t^HmA@&XG2FXte`j~bqz zg)=psq3C-0K?yM<2_lQOZR!VHpZXh(X}1C=5a>oFiGv-9Z*0oyEsZ4>h?=Z-wTNJz zPi1LD5Gk<#1mzFOtiO&MHrwdcrib0*PXQBl=rrNrFGX{Z_Tb|b9zvBGoocEfYqTWS z!)li_BkjoW5;EEtO(}P+0dDD&rIjaf-u2ye&x3{!xQ+2v*GOGq*&Lz6Wn9=~a$`1K zu--(ujmvh|U7i*x;&Zq|Pux0)>jdyFy>jw2vBjpk)q2|EMY>EP;mpue#nLUm;+3U> z@zcDi==qdo*_k~XxXPWU)|%Nwxmn1GsZHR%{$9Z5l6Vzk=aX!$uqmJ}oX@T?(%4<1(RT^2F)mpPdY-E3xEP@&wz1|-jE8LL?LKThu z0F`5D(MwVu3iCakKFJn($A*{)_s<&FSf>fMp1(%Cb_LpGN7mC{Cec$JEvVjnR-_WjZFvI_nGn;}@#M!^t1nSJ-=Gbkm-f|gST zmPd)WOgYD-o*H)`|H`b>3Tdsu#z5k9rc9jVKjEe;y^GL$I{T^}g4b+m;eMc^6pAQ4 zGv-0`78xAH&1wKTwK1wfRnjSfD%@0qXUE~hsJ>1D|J|E9R@4Lu4;nfRAh9dcUcj4! z7#PKNL{x4i>BG@jOU;X1R{-CuUOsTqRB9bU*i_LiuTO<7D4_@ecq+yvs{pVN6>ykzvTOnjN6+s5 z%)gqq2qK~s>*>Ep|M4$H{GDMU7+ zE?9Woc|h4uu_dy!@}}` zLh0%C-)wpmHc435O3zyncOf<=9*&EGfoTG)nwzyHA!3^LTQZXN(1xCID!herS?4V! zdY4*km1TlLwKpr`_xJOR@Fi| zef&cg#knPxKWe!?p#DnBK|qky&|+dyi71I-G>JnY!tN(Bjl}p`Ywn%XakJ8&?n?w@ zZAeipt8+J(MRVAB7s_R_i>o=+mCo9N9&6E97gCDZ(LWjrg#%{i%Uu*qc#(-nddG2U zbDjD^!y-#C@&inU5n|9n>y(%o~>B_wAx776OyQ%|rha^UWLQz>` z!jS-oXzj~}Su;pycQIUoAc%QS@N}=HU8g$)ia1$jVZ6OHkrd>3gsqg7n;O%AtuJ;? z3)WgT9kngGH#$*@prRwjFci(SpVnwEyvI)`ufWn{M2nv$>YPPQ!)o}1Hzgb0!)M^C z*d3w206h%<_%#R+b4>p*0DA#z{)hg&0*3;C=KpfIr|f@WptCNZ12RN}!|XDN6g>S1 z#2$oQB3C3~hn3$KHr8dHAg-^iKcWzqCMa!cbJd>WwWfGpgM;NIR{V0A4Okf{#mskt z7^vfo!HQ-wS|;d7DEF4|sv%WaK#G#ExS~sUeLb>kADH@co4GS4?Z-33w9NfE=Yzmo zQE?Cy!y?@k(K8ZZj^hRBd)fd5>;y)0`3Tqb--JJzbArx z!U*LE$qJ9eHW7G%GlFxs%-r^PRst(i0be=$%B(4aq&R0BLC4rlh1^D-BA!`Dnn=p4 zb@w*6wdSebySpWGFD-u@(pwp&n@gK6b^bLnXE+z)+0))_|B;u}K!o)>nB#aLr`&6a znuif|)o?seiFAP#{p6A@_!s+0@1I{OJw2uj3|Kajgii5JCXeCu!(%=W(EJ#L-DKbW z7~5nwN}5X&;Yl4`7k#uO_V$_&zn@>s@S83gXPub0QJ2}DUDIP!!N>(qEt^;6|}C4xM0RhOTgg?Ffw+@=$`v=b*B zWv;4WV!rVnl!ba=1zozFgI{XW+XuB&37jNh-Y@7be|+Nl$q-p*9|2L5$l8_dmgp+= zST6D{`D5Xg+F(2f4+P(@HuPJO%d=pj2uiaxkr$)So~Ww6MlFCh1gBb}tC7!=_q zm0T8bC8#&LarG;FI5bsR%&ilCg>w$SkzD0y${bqEDKcf3U(EBMP-GY^$HeQ?d6_9G@=Jf+yn`ogKs4(2J zt36hHPr_Z8HZkIwW!)R6y^K!E#_Wl=bxokN&0Ro?X;?-D20=EQf)qvbqTBD^qb4!A zD^>J5qMtD=!HrHZvL27ZjA+YB@|9`)w@W0_JX{rBa8L3pMD=J$Tg*=Ylwk=OE|7-U zL_L5m~cbHB_CCkOHRzF;JF#WVo^JnD*jD~f0Dr4 zKzF5ZxC9ta0!5bJ7^5%>Fs>cta*Vk*j|cMjgQYOKEe%;RZ;2mx+Okv0s--o27Kqa~ zOHKX-k&w;LV9GQM1!&9}rEr86!xT{u(YQE6$|XW3Yf0fBAjH|vYmiK5GVFZ1^)Hj@ zG1EshvWF}42`jQ|IWw0(vCWJ8SR#EmGrKktO(&AEXsC{XvpI!K)ClO{1|Tbe$qxWy z0YU{t8s=s5MVZLQ21u`cd<%|OGKf+_f%H#ie`*|>@=wbD*GF|mRj1gWYQ>tCjav0; z)t;6{S4mFQA>V-RXCC$=lU!9NA#;tIdpRRTUze(BIo5~N2$&GYA$&xrhA|o zLf2p3`6#s2hOz;3)9Bzx zCV<$wzyxbE)G7%fcCL52gb#v?R-_cE_4`X8Z~n`ksB zC_sxN4`I*HvuQge1;Hy%u)#Bt4+sMmLx4v>Ug5Gpb8J0rLW$PN|*bxFRAdZWt4|R5efBdyfGE0>l zoOICWaegv!&j&pVJwPOdDxw}WuvM?}`lNOj)2ftfIEa>KsvgST7a*Wgs7eH9Jpb8{ zjXubwY7zU&?j7{eTtld&GoqM<@kzTat~13vL8ADcbYOUJo@x_n z+9Ki>!rX<|V=Z;FYW z9G#ci+1Cp7x)V|`s%4NBEUgGV!{B!*5|A|=!z4YV7xDliu+Ju?kXTA$K$Kkk3vH~& zqew{%-&B?e1CiB!UdK1ib95x^+WF{_@^5a zXp4!i)EZOPUr1{Nam?1!Z4h)+Bqj+jak#3fN}fnyDkyg+xc|zCi4R1}s*lq-r9p2L zrEfT8R;0kpS+XPVXb5j4H+PenD9kYv71o4tZla}A$h@)eOu$qLukJ3VW7vpVJf~{4 z7g3?Zp|@zPZ^{*kiGEH{kWJP?10nfOaHh~<|? zNb}k#+g^rn7X%rN#(730g>>bMVkHoRD+myHB00{FU8Q=4qH_%3MxMJmHCfv-FRram z4?=`h|3cg%Jk;JCzwClJdyUcS6GwfynX3Tg>X*&UO08yl{prcpFT#+TUT|2j(`KIn z!5b~)QFdr+Q>e~;)W+t#(&7f*k%8F1a#Dz-PWUsM@2;LRz$~6KRB3iiqAe@q*TPe^21TL*L>IY)wk6pK1B`XhcpXHD-Miw?_u%3NA|V2MSIa8TjM| z0b;|f?J-jDvgApk+zrBN4GnNvi?Sclf$RD~4=bxIt6|0MP2EYmR) z!?_XBh0LT+O}pYh-mrcpu8uh$3Q-ydf>K9p9qj-3H3$-YPW==6*ZN`lLHkhrOZ{Q~ z=H(A+##)P~3z*Ca$ZFfC1`k!518w8@hc$Pd?+rk)5mql>Mfk#@A0ODI|mcPSho zg^VbMU6>n%TG3RYK?u#Y4|gRRTU+)MgmXJi<0P@V0#6)EeQ28}6&N&Z^i`E2tJ6D- zzurR3C`LvM!5{{PP+&D^<&J_YP{KB$MK0{N9w3cQH2N2s{i8&&(dALIrT&w6V*i@5 zzxN||k3z;IBZk9|%_eSwa4fVGLp5F2p_(UOL%@2ljT_;__*;mKitS>mZ9ZGyw6f!( zY!{!=GHCKiUKK3+>t^=7Zq0LHO8U|%#`1vAzpX;3GP{>TOW@-1wT>hH^@QR$ui_6v zAxlw-YrBxu5{btV~YpR>5G{L7{Ey6ti4bkukVI;>odHyK_NH(Z)JNqj=Zs@W`ccsrqC?po`PhjD2Q@QRf=$} z8)4)W$^?K?xkCW|7(L}6#AvCTs48-d?&P|+45Q&Qwk~N+$1`QHoXR{AY&4_FH87${ z_x4`A-!Zb3k0N5jeD5GZZ|EJt0jM6hi^6Y|cDe;(F1bA-!AYf$rk;SPAUd2fB);)k z>Wb`idrDO3O18b5qFB|}8N#O$+J>!r5F4#ExEeq1Ltr@_;?I+@#%}LLEIcdbJe=#% zJi1)_4Q~kCQtc_pLtxgVh8PZ3r7FDMtfo%fP+(EiMMuCNyhDt=ivt|Pfsm&N6YC!ohbeN`%+$!} zZ2tEx-V5xFw!nA@bW;#`@J;evH5^LO%vQ}B2WU=S+7iUc$dRKNOLO{Z6X0e2mSmcY z*Bs$WATXKYlJ3N?5Uzy7ri$DG(4Xj~_PMN@HB7Nq?afv)+Xnc=a7Y?S)@s)#`HNsG_!5z`TryrCR+3F% zSth#eRXWsM-iOqgmSF1muORV`<4Re^kmB+SA)Q?B3tyur2Rk4!f<5e}`^OwfH|1P_^U5P(-y`{2R+Sxr#=@tpGyW(;LNV?Lp`rbn z<)b}Co&-5(PLM|p5ZurYIaSE-0p{6>2;$L{`blUZim%jkU_E2j8q2=qi)2VnMHZAH zNA?jqB~8v%R!i&DvKW{1X8s1|137 z4V31+&9b;``ns|r-6Ckp?Or_*pA>40dQbbypt5J#Q5w>w^y+cTFc$n{9PD(1&TfJ$_RRoiMdQ|>dgS%+{k z#%i>fq;DBt2?%T6b#|b-eY9-QYNrJ0B;n41V@WJT)K3Nf3S}U9H5_UbN!=1P2ewfe zHGZ#neQvgzsAxL3)~6~~+2iUR{$iP2om0cf)@Dl=vX!*>6@s9<3%m0K5N`kq?8VCc z$%IixB7b+brK3-=M8ff}{8SrdQOEc;4sT@A{@i}Ckk@5oJys!%CJs3`g2gp`T$@SR z{h@{khoNSyoY3Y;a-UM+5Ab2FNZ>w$_*WB5fQpjZbdG-UpOB>$I43JQ>K41beQG$B zj8sOMAr6~dz?RQ7vx=wbuw0ZJMWA&wx zkTjVLn#W4s3?(3h2=D5DRR9X$1VJD(lJ39)iW2O!O11@Xlu(}9zNnHXH@edi{~R9$ zJf{d3U2|K)E=s;`{L5$s?bXo|5H8M5A(wc6pk&1>H-Qn$WPG?K zwf<5AV!`{&mGZD^txCgjS6w4W+?-)yLR%DD|6}6yBpNDKjI|l^oU(MW*@0OtQhM## z5c8iZsT3N$#dbv#U+Xg^ZJHyHtVHa$WeHxoL`^eHXd*ABsMDh-*`#Dmp&(c-OY1v1 zy>;kYVQj3lzIG))SVp1SU}S+k_jejHeFYQUOpS+So322k_kz_CZ{VDQ2bDi?^Z$6W znwu_2R-ph-&alg53q=c%_wr0-7V%VU#6h(IiI{kt@>H222LD9J6mT{^hg}|Y z`K9Pgl%-HF@gX& zOQJxrbVOwMzoW9|pB$C1_H3KHz&7W@aAVzQQo#xo(z>8i+=He)w*EwB z(q(Vmhrar60h3WSp=;1t^fBb1yI9+gqsrw>3HcIBu-0YbMU}XlUP?&C8vT=SV11u` z?f*=*6BP$!r$Ixy_8}n)Zsi@GU^Y^O(70{=i2wUZ1^fG7Oj3L$H2p0w^R0!=wo$|0~nniVsSeJ~-TrO+k zf>qHmRarDoFH<(&jMnsczcfwwNj*ejKG60NngCG_aw^7TIiyPSb66A(y5sw2{kyxC zGIXWQ+O19^$=(!aL|>l^(^WYYe|Ffu?c_+uc+9QT2{Hb0rSBS(FZW*wQzZ2+p zM9#s%i@?*7_&(J~%!g6Lv|P6?oscBLIxEV=mPp%5v4@sRd27=m;#{nmP_IdRCrn{O z_hFOq;>w0!UGSkh-^$s{){82o4ZousM-kJa1{}Fq(6{{EN!6-YD>Xwm%{;|QQnqB{TbaMQ z?A9JFQ7@}|cui5dM1@HF{V0WLA8LEgf@71RhCP$UcYGsy#)vIfI2KTR6!Iix@%Up0J(55OEUH=vF2R zmnCJ?eo|_3e!Rthw$TEEI?k*nMf2?oyT34%)Jf46svEN4q5XnLOcSGb?Sis;^925^ zpkPe$;v+_dgq=PzC45`?SUJe*+nTtfJ!Wrzgha%zMB1xA;jnXqKum?1#2{4MDCqQC z8S+YPJ52rB43su&Y=cx4XOTqjJOE3WL1Z({?$oMfK%Ts$5PpbX#^FM^f$3Q{@&=;6 z%?lg}gOX5)A`d(ft!+a&Vk@1Jwp3Xy$d#RkGDhFEe+t;$fA^*Mz;;A&%g0yFOcmjY z8$mn7sn#X1qvP{t5)BHr#IaE^Hq0B%DmHbv-;5)8>Ii<-HlZ=we3`H(q#qbSsDN_s zEd$=_}|m9FWZa_%#R>Xifk{04D%N07n2j04)GA05j&OKc>2j z%PTTE>%_(rI+2E?)i#D9g=Ni^bh)uGKtwDZ9v%n=27`x!LJmZnCO+6~)4>4&Kuloc zM2X}gtruP``vO;#R79y3BuQXlN)EiFn@XM+V2~t);L^b~M2nDRfRhlg^1`l>A{#0b z7BDm-JQoj$42Ys&%3{t0Oc5U|GF*^Iuw1*sr&tmyTh>D9h=RDs&O*qnvvkSEmVA+Y zCU#HaMybE5!^E8qvuX9sx#=BHSo+ar+!A+mq*JI}+Nv2eY*lri_1{FDu(dVh7*qlv z+(GaL=1*;dstU=CQF8RSj${jFg9K7_X;PG;BAWh!t*Mr;;89m>pht4ZCt+L?*)?jT zOcF#iF0HjZbW>y%%@ej%%MH*8QEozs-0Mtp zA)h`p{~{Id)1xDlM~IY-i0*;?vWny-Lgj5QYfg?req=jZooOub@_}wu^QAH~&0F12 z`nQ?HaDG!>yp_x)uNLa~R-lC~Llgo$3F)LlA{X7mR92>6l3w#EU`HH8FcZYr&2?1W z!rEzt*-OFPQ>RAeBOMs!o6;hFETQgdk62mkvQ+0TB}Md#>RfJ$?Os1nhDT7!YU?)% zJ4|QA`@6TJ^GVhEUz3>DGeCj?x98Cz8Y?#g70KR+m@ET$)O~7QBtH;ZK!N~(5Y>dH zz)~0oS+~wj5e2@3Jn+ZJ7z$u5$(jZ8w5Re6X}!EzDff81hr0l$xT<&(O}3;bkGpP7wJTeD08A@!RXF8?Fh@42r9fJo&BFs7)i1#wzqf}-?NfDsLw4!GHPwn=doY)ceJKE2vr<;)xwt=cS%z6p7$+0rEWR1k)Zf^ zu@6*>p00ea*NsZ3qo@1h9>z63*@mKbD{AkC}3 zd@Ja$nbIlINJ%}}NELW;0>sugndzn)P%Flef%;A~zyz^2CkO#qlqW!K6rokaHVHtX z8{aslvHC8ct=~=ZsFxs`hGk&%xQE%~{x3 zN=#{55k+Ouit$vbT|EQl@^S_CtWGG=5?z;Z+`5izdNPgCgcNGG`Swpn-cMK>TesUl z{=5}*VQuD@X?BrZnZ(L4G}}&KmSY$$yq7f-0KF{#_%#R?VN3vq|NHh}o;RYN@T2iJ!Dz9BF_nAw74l-JknDSe|89EIG9TW>X~Qu0tRrYbJ{m+^KBGz5!rCC_N51{C+L zJUcUx7u6FNUI=1#XoN%BGdtwOQ-jRz^J(MI=k<@4%cU1SG6=<#XbYre*r}VcuBH(y zRoNpQx9C1rD#p(%l4?|Vs92G^@u;C&_p5AH(g|8>OsOJ9WH@s+qU&i!68n^kK;{cbXDOj8P0QW2C>Hv%!Z1QpO! zA0tKVmda)o7yfVw>E-8-Ct3YPlmsktimd9W#-|l@e&vhTkP31-VErE~20kSTbl_OJ z^J5yN=2RkXgkw2seQZQA3U#L}Xw)qdl$16)+$3zp9_(sRH73$SL;mWFV~zP0#kKUC;R@^^$+*6biWHsZk>Y#Evq`iH5>K zMBv3~(J`==-hnuZZ!ZPAl9dwgDE9GwmLRatn37@jw)1P}WP+jEnc{IAr1r2fJ9b?P zg=bL_mM>7+h`BH#pxIqV5tk9ZGA;UrI!fiKN%3e(QVCfR(P($qEjcZ0^C7%~#gP${ zCVMIj9JD?Bu+DQCkt?~pQa6vr6euY51===5eIirBgifsTJOJt*Hc8LXkkp!GPDUFtgf0S^ZhJmhZefkEAPfzAxvT} zDAZNo3pvr@bf&i=^(X4#FW0P3M)~o{Sl)ZLaS=Ov#K?&75HZ78&4^l9TEbO)=`!nVsF2r1S<5%c|PaMG216YjAu%1;X&i-({iX&s#R7tS( z$^z17FvE7FZK;twx*$yh1igKDnF7VQv?3&x0@qn`Tz~Wq{Cko&=DxrY_)5Rwi2|$d zN+R{Uf!6~+8he$0T1SKsvCk73;HDB<(^&>m%F6CrBG96o91%XdCylr$sp6AbNM4Y+ zL*Q5A0#gX-wfa<0QwWBbHldn^u&B?a4p6v2)BUS{QFc7jefiTB=?MLzKC{lLZY1{g zRHjft6_`#$p+s3ha9Og`3rlaTgMCJJcC`BxGg{ zQ~?1Ii495h79cxEvwcS1Co?G|utoWu()ALgb8O`TgbZcJRBNsRyd(_rY!QDXbQY-0 z*dg#iS*b9=Fwp?dun;E+`h{IUeQ5^p2%vs@MB=92@a3)$*#WDFYj{tGnu@Q@ zKOw==G;2}zYm-JYry~HBh-W;bg>2KDqzHpQVGQv-;ew?jq3ov1)fp&jywAFNqpPM;gNMM2}vFkNFD-05)YMgMCUs`6^ zB6(B3RHGCqgx_&vfd}HLac7uV+x8nMN_G)JZPhH{D2NOA(fwMf=$vp&;$n8Jt@QmB z1Qo#%3g~!tg^`l#4aK<9}u5-x)|1&Z^$7BNMSY^Wk20SWzmz5mY}JJNhJ6~ zCp=dKyA{?b*hu-3OPCGe|M)cs7)wq9Yyv(469Mo6%>j`CO92?>yBnmomDa-QApKw@ zVR}Y}icvQZaV+Ts%Vo7pkjrR;Y>}X3AA@R_`nq&fS!7Zup(~3qvj>Ec@d5-lGD=(5 zIG+|=bGcZAaB^fdHPE1~NQk5pM2NX{#(L>k^i{~7mpRZw9$3;A7A1I6ic@AUrWh{a z>!3s$<=PF@~gbI=gXD}n5%c{T>jY1>fv-G}(UiV?>fGRa5CJv{0FX{vYEeao_hz4c86R9U` zsrZs5Hmkb@#Eqj?ZH5k;LjOztzPLqb?1f@3aZP8{6-CNq8bZ+pGSFssWdl1S%U z{4e!J?W&)GvfEVpYSJI{T(R5hlAu6jwI!MJJ)G<8GZg8Ld&$*FJ}mp^NVcif3!G0) zI^M~9HU5&nn|JYCEn~+0x$(~gmZ*MEi)GvRsbG(dN>yP|ekAa&HVpur%~)<109a*Q zP6{d_N;^6j6-GB6$CNi5oAnx1E?<+DCl!TS#N}yFjDX^N>pZu0HeF%jmOQeRZ$ed# zs(1KBiJ^BiDjjk~ZjU%3Z^oHQMyQ5@b^ATp8r_+rP%SHUZa6LdbtDmf;fT6Xx&uXv z_RaB4ZYy-R_ehh%O^E|eku-FPQYKscf@pHZ3g$o1?zVrLlF7+F=n}VuX-{9rRVa?f z&k9;#Oje0N_UmmiNWfCs9qsGNRu^SJfSaUFh?5yZmC0T}j%cEneB-~l-jn8}zxms_ zjY_n-!!5`xMtOhD5Qw6+P;0~7cfJa|-4%?JI6=Vk;)jGsR}6^~IOtIW

EaqE+11 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

X%-MYq4CU$Vp^@7t2Zq_N{p)0r-`;U&} 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

)3SMJ%tsFSZ;c6KqQ+J6W5l7E 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%0AyvUMD_ktsd67cQ^5 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 z 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 V{K?7&iZ(VNtOiDo(_CI44*+2t7Rdkr literal 0 HcmV?d00001 From 5cbbad13aed60dc77452379ae46a83a0025eae4b Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Tue, 21 Jun 2022 22:47:28 +0200 Subject: [PATCH 06/60] add instruction on how to obtain list of audio extensions --- .../audiofolder/audiofolder.py | 43 +++++++++++-------- 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/src/datasets/packaged_modules/audiofolder/audiofolder.py b/src/datasets/packaged_modules/audiofolder/audiofolder.py index 5916ebf4cca..61ec04e1b30 100644 --- a/src/datasets/packaged_modules/audiofolder/audiofolder.py +++ b/src/datasets/packaged_modules/audiofolder/audiofolder.py @@ -66,9 +66,8 @@ def _split_generators(self, dl_manager): # Do an early pass if: # * `features` are not specified, to infer them # * `drop_metadata` is False, to find the metadata files - # TODO: remove self.config.drop_metadata from this condition? as we want to infer labels only when it is explicitly stated # audio classification is not the most common audio task, - # but we preserve th option of inferring labels from data directories names to be consistent with ImageFolder + # but we preserve the option of inferring labels from data directories names to be consistent with ImageFolder # it's just not the default behaviour do_analyze = (self.config.features is None and not self.config.drop_labels) or not self.config.drop_metadata if do_analyze: @@ -76,8 +75,6 @@ def _split_generators(self, dl_manager): metadata_files = collections.defaultdict(list) def analyze(files_or_archives, downloaded_files_or_dirs, split): - # TODO: maybe two separate funcs (`analyze_files` and `analyze_archives`) for readability? - # TODO: OR analyze_labels and analyze_metadata if len(downloaded_files_or_dirs) == 0: return # The files are separated from the archives at this point, so check the first sample @@ -87,9 +84,11 @@ def analyze(files_or_archives, downloaded_files_or_dirs, split): for original_file, downloaded_file in zip(original_files, downloaded_files): original_file, downloaded_file = str(original_file), str(downloaded_file) _, original_file_ext = os.path.splitext(original_file) - if original_file_ext.lower() in self.AUDIO_EXTENSIONS: # and not self.config.drop_labels + if original_file_ext.lower() in self.AUDIO_EXTENSIONS and not self.config.drop_labels: labels.add(os.path.basename(os.path.dirname(original_file))) - elif os.path.basename(original_file) == self.METADATA_FILENAME: + elif ( + os.path.basename(original_file) == self.METADATA_FILENAME and not self.config.drop_metadata + ): metadata_files[split].append((original_file, downloaded_file)) else: original_file_name = os.path.basename(original_file) @@ -102,9 +101,12 @@ def analyze(files_or_archives, downloaded_files_or_dirs, split): archive, downloaded_dir = str(archive), str(downloaded_dir) for downloaded_dir_file in dl_manager.iter_files(downloaded_dir): _, downloaded_dir_file_ext = os.path.splitext(downloaded_dir_file) - if downloaded_dir_file_ext in self.AUDIO_EXTENSIONS: + if downloaded_dir_file_ext in self.AUDIO_EXTENSIONS and not self.config.drop_labels: labels.add(os.path.basename(os.path.dirname(downloaded_dir_file))) - elif os.path.basename(downloaded_dir_file) == self.METADATA_FILENAME: + elif ( + os.path.basename(downloaded_dir_file) == self.METADATA_FILENAME + and not self.config.drop_metadata + ): metadata_files[split].append((None, downloaded_dir_file)) else: archive_file_name = os.path.basename(archive) @@ -174,9 +176,6 @@ def analyze(files_or_archives, downloaded_files_or_dirs, split): self.info.features = datasets.Features( {"audio": datasets.Audio(), "label": datasets.ClassLabel(names=sorted(labels))} ) - # task_template = ImageClassification(image_column="image", label_column="label") - # task_template = task_template.align_with_features(self.info.features) - # self.info.task_templates = [task_template] else: self.info.features = datasets.Features({"audio": datasets.Audio()}) @@ -192,7 +191,6 @@ def analyze(files_or_archives, downloaded_files_or_dirs, split): return splits def _split_files_and_archives(self, data_files): - # TODO: what???? what did you want to do you crazy bitch why can't you write down your thoughts immediately when they come files, archives = [], [] for data_file in data_files: _, data_file_ext = os.path.splitext(data_file) @@ -220,7 +218,7 @@ def _generate_examples(self, files, metadata_files, split_name): _, original_file_ext = os.path.splitext(original_file) if original_file_ext.lower() in self.AUDIO_EXTENSIONS: # If the file is an audio file, and we've just entered a new directory, - # find the nereast metadata file (by counting path segments) for the directory + # find the nearest metadata file (by counting path segments) for the directory current_dir = os.path.dirname(original_file) if last_checked_dir is None or last_checked_dir != current_dir: last_checked_dir = current_dir @@ -232,7 +230,7 @@ def _generate_examples(self, files, metadata_files, split_name): ) for metadata_file_candidate, downloaded_metadata_file in split_metadata_files if metadata_file_candidate - is not None # ignore metadata_files that are inside archives TODO WHY + is not None # ignore metadata_files that are inside archives and not os.path.relpath( original_file, os.path.dirname(metadata_file_candidate) ).startswith("..") @@ -374,7 +372,18 @@ def _generate_examples(self, files, metadata_files, split_name): file_idx += 1 -# TODO: add info on how these extensions were obtained +# Obtained with: +# ``` +# import soundfile as sf +# +# AUDIO_EXTENSIONS = [f".{format.lower()}" for format in sf.available_formats().keys()] +# +# # .mp3 is currently decoded via `torchaudio`, opus is decoded via `librosa`: +# AUDIO_EXTENSIONS.extend([".mp3", ".opus"]) +# ``` +# We intentionally do not run this code on launch because: +# (1) Soundfile is an optional dependency, so importing it in global namespace is not allowed +# (2) To ensure the list of supported extensions is deterministic AudioFolder.AUDIO_EXTENSIONS = [ ".aiff", ".au", @@ -386,9 +395,7 @@ def _generate_examples(self, files, metadata_files, split_name): ".mat4", ".mat5", ".mpc2k", - ".mp3", ".ogg", - ".opus", ".paf", ".pvf", ".raw", @@ -403,4 +410,6 @@ def _generate_examples(self, files, metadata_files, split_name): ".wavex", ".wve", ".xi", + ".mp3", + ".opus", ] From 53e9ce3d9bd053f71a45a1fdf3bdd015c3c798cd Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Wed, 22 Jun 2022 10:51:19 +0200 Subject: [PATCH 07/60] fix comment --- src/datasets/packaged_modules/audiofolder/audiofolder.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/datasets/packaged_modules/audiofolder/audiofolder.py b/src/datasets/packaged_modules/audiofolder/audiofolder.py index 61ec04e1b30..96c527a5964 100644 --- a/src/datasets/packaged_modules/audiofolder/audiofolder.py +++ b/src/datasets/packaged_modules/audiofolder/audiofolder.py @@ -378,7 +378,7 @@ def _generate_examples(self, files, metadata_files, split_name): # # AUDIO_EXTENSIONS = [f".{format.lower()}" for format in sf.available_formats().keys()] # -# # .mp3 is currently decoded via `torchaudio`, opus is decoded via `librosa`: +# # .mp3 is currently decoded via `torchaudio`, .opus decoding is supported if version of `libsndfile` >= 1.0.30: # AUDIO_EXTENSIONS.extend([".mp3", ".opus"]) # ``` # We intentionally do not run this code on launch because: From 60760ea308cb03d7c591a103ee714006799b2dff Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Wed, 22 Jun 2022 14:44:40 +0200 Subject: [PATCH 08/60] add audiofolder dummy files in tests --- tests/test_dataset_common.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test_dataset_common.py b/tests/test_dataset_common.py index bcb5425020f..f75aac75686 100644 --- a/tests/test_dataset_common.py +++ b/tests/test_dataset_common.py @@ -81,6 +81,7 @@ def get_packaged_dataset_dummy_data_files(dataset_name, path_to_dummy_data): "csv": ".csv", "parquet": ".parquet", "imagefolder": "/", + "audiofolder": "/", } return { "train": os.path.join(path_to_dummy_data, "train" + extensions[dataset_name]), From d0b2592b26c6a032c38cbd91591d7d9a89046954 Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Wed, 22 Jun 2022 15:26:04 +0200 Subject: [PATCH 09/60] check if two separate files fix test error (i guess not but just in case) --- tests/features/data/test_audio_16000.wav | Bin 0 -> 146846 bytes tests/packaged_modules/test_audiofolder.py | 13 ++++++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 tests/features/data/test_audio_16000.wav diff --git a/tests/features/data/test_audio_16000.wav b/tests/features/data/test_audio_16000.wav new file mode 100644 index 0000000000000000000000000000000000000000..7a83fab5ae4c3f3b9f92c1aff5b443d69af46588 GIT binary patch literal 146846 zcmXV21DG6HyDqlvo|)L(*tVUGZEkFCu;C`z*xA^&Z6_N{tWmqmzF+d+r=Dt5Rac$! z8Sm+KO&c{@Qxiiv)&0HUz!Br}IuHawVVhM8K1@dt3~?a+`;6-|2ChL618fe&hIo-6 zl7gfn7T7QZM>I``m=P1=groV8JV-7iFH#bzgET=JAa#+ZNIRr0e6Eeuhphop1*rhn z1P~AG1>s63Lcl$BaBn>v^T6FATDtaHd!k*|&S>|wH`*)hrS@5Srk&UJX}h%pug^*#Llt@a+yy@g{raD@b8 zwjin|Xq=YNH297pJp3lEebByWneh8;c+G-eyn&}b(;jPAwR75Gc=|EzkairlBk)KiAccSzUZ7bn#D}CI zMUebJ(fq&eQ2~BY0X{o`!o^@W!R(?yjUO zz^p(1qFfAU^Yf}4xH<&C{Q_4+G#aR-!luA`9IoIs93f#dB5sg?6c~#Ku_IRCDGSdO zVYXqQEUW#LAq){=1W`B=f_wekbKrR)IL2u5FJ92_zXZ`wzBnzsCDhwtmh_f>HAt z33JX1I*|rjF5pBpq&3nNX%AZ`r2DU}3vjV2@U|py*$UFGz^@bVJ11OU7`7t6I9vwq z;RbEe1LstbNfqS60TQBz88I-=pIit79VCz<9ymY(XGIuA1kNgOtpV=mgkx@aN-lV{ z!>{d#A0)vKTI&I6DUH+uUHqw)ZIF&g52O!lJz=cE!@cUkl@;JzHTYZ;X4nv3%fmILVQ&D>X$eni3i|)^ zs*1>ONCA)#8%RPD#{3QFd>!b08MHSYIP)5~bXU6o8n#W_1X{HXbm}zl=8U!1}V4)SKfu=?_m4ymn{6$fuFJ^XfAk4 zzF!>k0iDVs)nS%(VXp`jD-Ykx!bl3jIP$=p{lE=i5x)oBKwf-$VOxxvK;vnuAPodLWY4XwLzMLt#1W#)fyzEEXYw2 z;I|WI^bNS13AB9yTJ!+;_5f&l1!(&Q^y)vL>{p=5PwEIT+MiZg(THCj=ci{egY3&N z?`)X)&v~$LJ^|m8aHZ}4r9A~^R2ZmT5?+hJT=c)}5%r5w??A57frB?ex9`9c-@x_pN;s%hugK+c_+$H@NcQSub{-=+4 z3;yX99Df5(`3&EaaONAl|K#0Ij><5jpL)u{{E~3|GhFu$EXl`T*Zkyu&M(^*`6a&* z;OkGn_0z6WaGwvr-RQ3w)9^hLuKWZPya8jr0oz%4-wK+t3B1xl82v?<(Rq;O`!Le~ zz#{&XwQnFRU*LHUf#MI~+0TAa{sR1Br?yVp2;OU>wn5vh{R`hVz~{Z%4w&->xaSV| zybtz+@OlZJbqu!Cz_k}}&uoycpSB$bdGaB-K?ibyl;;J>^1}C@@}3*?y#!c`{2&9x z;k_Et3}kCOvIHb%GDu5*uscKH`&48CG6h}-BfXFgAUiF9qNK-tORmZ88o~$Xj(bobsl*7&!{60Jg*#Bp=uy`MZo@4220cw?${K5Q4GeB z7pzz+NJt8d`KP4}g3Ne9{sW+UZm^R-=b=Yr;2I7wi4h_Z1YUo7k}tsBtX~|Ve#ss6 z%l30{?B`J#tntqXf&)&b19e`2G)I6sUx5erL8=ad^eoV3YGbvL+7NA!)>G@Kwa^-C zt+l#ZORb$Y2F}d}4(xzfVg*Du*MM7>fL}M^mj^%|4*=f~BoioJ44H`BMDn2R(RXMK z%#8KKreXWA-Pm@l5`F~daRZT!zrsrpJ|aM*6Zy$M$xO1Uu8aPr{%`$feJ6cy-7PW? zS(uoPyYQ~qpJ;#Wg4{#O5Ds%k*(J;qYDppv@~c z@!rwQIno(+Om$pz9C6lhiLQielWU@@le2*1qK&iuW~*k)wxZTTBX*oQw5{&4_M{ z+z&ShmkQ?&*AG_I)Mhb@mq3$_3*>EilE#?hu}=Eas_)>gI@`(e9c z&#~XIud#QqXV_ZXc3Iz9XtT*&+EmFHFy!dolb?z6_$;gjnxzd_W%-%(QG6sUiOY*)>)w_&FlV-A8REuoQYcJvOI@6tVTt4?<_dL%aZ#|#gzsfKBD+Zbb zrUh;XOu_s?EO;X@Fp%`u^!M;>_P+E4J-@p_cr&EDg;Ujcp81bUv~r-UKbC zxs_bf48hG`WLq;2sb9&%!NSyqKuoD|_J3a+Fj{X2EH%$Ai2Gs`2K{-txC#8#B zMM~HyG!<-uOYjODp9z~)=p&pLDvO!o4yl6tL7t@)QC0Pn_6Jf9)nl))UHEXqPkta5 z>q_Wf>X#Y18ad;5Q^eH3e9Bzia==pG`o%ijX1AZRmv!87^mN{Lws(DZb#Y&G7xt|2 zkluFQrrw&~PTp4DRBy<0+cVJf&|S$r-*v_5ceZx4v^TLK)|xpQteIKevIb|}&nlWd zGW%h6`j14vI43(VIZ;;y*KF4lm&ZNOz0Q5c&AKal#(N%l>Ug(%uX~?+A9(M0?|Tn< zcX*e1hk1*6w|F#nH}^?bDc5SJ=;-g5ZtrRPD+{5H;I?NNE@Zb(gSh0 z=oDuP7U2-@;g@i^xXo;7_6*}>M$(_C&Qw-%PO?_gm}C;Vq$61+**Cc)c|OS}2T?q= zj~>IcVQX=<`L4oB@vGEaxv5q_cA-vu9Py59q~BYfY`J@z!UWp&+}!u zN6a+3K4nRU;+ZiuS|Zv#vN@~|uMU+9-OL%9Qz=KvzMXwM`(n0`-8<(+&eTxzuok`= zSsHB-D;!Ttc$2xP0(36M!7}ViZVx|47$%mGK1qvZt1=DbFGrD;Y~`dfSaB=I0Y8ASH4odnXShz0^9Y zIGs)(U^cU-IEJq#{w2MT18OgAGZI64;@QL~-FJO^<55$VS#K?9YiXb9*zVlzTHtQ( z5k058qkU=qtN!kRPl1-f{XslsP|D+!GO6oQv9#`K+tY5Q-ALP)_GenNG;`X6)H$hn zQg^1Qd=p% z^hTT@lHv-mcz^SHehMeD^H>kNhiS#I^hWx3+D^ZxZc)dmlhk$UGi9dh(tp!odMZYVrm3w{Yp3Q*l~XRHj7$ln z><_wweFGc(XMESZM?G`gtz2&BWqSwk+~dqS#y*BSx{~C4{4JUn>8Wm#pNn2$BF8Z+ z=@yhJ`7VAgwkov}RnRPO&NcPd}#yLN7mW67C zBjNp#h0&3*260E?3wZD8R2RAiQ=ZMoedA{F0$*DgD;yEB1&dfptSVLzgW@M)wa`K^ z3-|cBd>Vg*tHObYW24MbW&~4^iPM+qg>-kiI-N?}XdnF>-HF~zC+T*~W2PHx<=%29 z`FTQjv7^*W{zF-+-qa+d8a5Q)L3|)h`g(?8#>J*>=6#m^)(y7N_QsAv&M(eIt`hFc z?g|j+6!re&wfO$_dHoyx#R3}x;Xv)+?BKazW-yS_I%Pr1zLdQwTT@o0OiF2y;!n93 z>=}F>C>H4FU*cQqo$VRr?&2!yjM{hDnpzX)(73QA zax&68>WjULZHkXfG*6~bU#VSmYvwyMhK;a|xs}{qj^^_4RrtDmHNFDx<-c-AxKUg& z?mN4TEzUk>CNTM#bb1Zli!MhKpw-u?ozy~V5;cSRhdM=3RDJp=U544u)L^6R5pEto z1*Ck9v|qlWyazAyJGu$W!JCp>beZ}zV>MHI^GM4$>qOfu`)Eg7h!yX+y1CQctvy#f zzj^=l`g{w0ny;__hCg3mY~WtN5o{Bj8$2F-68sUQf=p0?{d@2t(6&nOTVO_j^Vjpw z@E!8r@qBfEcfD|)b1buWx8=4zH%~JKjBE8)-4r4NYlR-s-0CFxhuBH@%uQoUGTGGm zVoX^2R!$Mi1(P1;tutOAy9f^&M zHv$_*C2xVJDaM>-DzZn|0^9=b6Hu@f--qwccjjC2zwu5!#2w=La0>f3>u0wyWtqqH zbh;S*mD)(vqNwE2F!J}u)goP=MW*frAG1! zh^w4PZ}b>uBF2!G+4$ro*v$}-Zs7)zKZ@Gek{-{a5A6< zDh2xo7Y7dpAA$@@K}Sm7lzb_Uln}`0fS?qZ90>WF`j`9edm|p)V{{A7uZ}bJ$+qIw z`;dw8hClTZIfD3vwL~vyCDi?L5ox^YG|M?&yo?*4Th}>4YiyG`WsyMN9O0rU<(SBA*%D z6V4CRo5*kG_w#%C4g46sDj(xEa}Bv~;8O~-kCOey!A`;X!Lz|w zFjq>0ly)hdQ+lR!1KHH2Tn`QnQh~vNhyFBwFW)lnVb4|fCD$J3Oh;q8-geT`#{Ahh z$dJ^HAiv9&R3f85$cZ9b$8y z=G@EqlH&=r32hAtp&sFv;hqsOayU9JRwwR(9CvfF17)R8(j6F%`IA-IVcdN#H$Q~m z#^2<>@!9-K{uIB8AH)~tKX6ky4|k6Jou!zyOnv4XJ%tX^SE-30k0Fr9Im!OX-;>Rf zEr6m+ldqDcsjU#}JfUYX)xcAWTn3*md=jIQNvW)k*3Kd+*lawDsG*yqzir@+xy{8b zm8@kTPx)-$;%M#Uo&UNTyCd$Up4{HGpxJYLVP8xCUccmT5Lg&E6Nm%~2m1xr1@D4H zhG2UE@z9W9uHeN$2?t%@MCBt}^6bLRUkn;T7Rrk@Jxu(fqLwv9(xsE&3HJPfRB->LPl*5iwDw*XEO!mDZ8A26mIVhu&Pi5x$$gyx?=L`4xX<(BK6S18oUx2+R$%4Y&h0{R8}rZ#>j}YI`?&p1Nt5 z&1H9zj(4^#);1QwwAxtMa8cKm%)}>SdUTDJOI;&dq?JMm{w2GBX-4Ow@T43!#>>U# zMZ=Nakw|z>xCGGhQs^jD)s#@<@ZPXLvL;e6dKtV+)wns4p4ge}PkCXkBNz{Rf$hNw z+#Fu!dkXu7?}9wC5jiMe>mFcq(J1Wcpb}(0hXZSb5L!hH7S5*Jd_9J056>m&T zAvfwS>E9SW7$2LCo9A0vT7$Naw(a(Q4vX`Ev$E@u%kLiVe(5gl`P;*JI(tuh&Av{) zExsSVlKwyZ$NcZ1&f^SN1C0NXe~Z7rzkvUVZ-6iA?dd(@k=*6nZCwMMT^$wer0t$% zin$o%gj4mobQg$@cnqC|n6xE|MP4S_h3#B(mSEme*OKQF&*FTnTx?GCd!$PwJG>^` zAzUo%3+IB$-;D5`aOudgNS)}%=*n2LIFY!Pn2;<(MIeV6%;aXDvg0@lzmd-k68J&z ziw(s=;v{jJI7VzOriyQcc|v*N3qOy~%b(>sa&hoADeO_EC6htVrVG)}K!cl8xhRAZ zA<{{uT2ad&kEu_eqAN2un4T=jUE!AUqlJ;;6ltA&M){!zke28|>EL>}@tT@|2YEn^*1RdYcLYq?+@ zZOd)HX7A|u;^^vp>8$12>N2@UyPvzud6s*ko|aJ0$?_KV_4EDXJMa4hv{Zb&?+bih z?(5|X`mTH1cprF5d&awuxSl|~lVN{ryKG%)>1EDidSRHOFQa=w48lcp5#rU>D*<_n zSWLLa{lQje^3ra~pDdAR9bX)K6Ri?G6{#Ef7G4(~815Dx4DaD^*T}0#_h=&ePpo=8 z8b6-+GuaV5DZ;!0+tr&(;qUQd1e>^CbV}o;+ma>~lq<;Pi|Hn`mkv{JsTb4-h!}$qSFWc+bQ|UhWHJxfAzXew z$-fs~i0M+6%qvzc7g7?fiM7JJ6C=o}y6O5UhQY?>rjlmT^2jpFn%{QS*2ew}GQ;bR z%FbO*t7|-D*@fK`+_&8U&oHPcx}e55$GaD*Wv{*2UfQdA8SiKBN$+HDdG9MvAI}GO z6ZZz7V$z{=;C9~n#d6)e!8FoX!H}(6P8K50VvW#eT3?lu=Sp7j0RKDZWwYr2sF%rb z!kVZY9~HYC%@bW2$sc(R_HZZkN$!TFaKp%fNa5(oX!n>e{yM%P(KlHI`Xvea1#^;J z%?;tpfjwLBoHRXu3LMkO)6l;p7g)+ikKETiC zP;M4@?UhVv<{iBhGU;+aOC62CYdQF~lzvHFKsq2FP!6g` zv?Itl^cwaAe+ThnmM%m8(Qw_k%{0WE&+^JL#p<^0v6ZlIx4RtUp;uGK`L9#&8tl5^ z3c826&$(519nS>MF3&TM05MT@ZxiT#w1diRZg0%9$J5f2?(PVcGNY@JbG&1{eZOt5 zbuDxiI+*epGxh)KI+7B;8Y>PFcwP0j+(qJro%}$qCY#EbXbfr;`4bJ|lOYN(A3Yc8 z9tlRW!f(Q#ph8wFvMQoRW-<8Yktm5Y(s8~kaCFB!U@n)c;iCe?|#=c^fGo6_d z49fhVUqA%)nWmsq(1F>+@XTmdX18$7pep=HI0c#YOnC@sbsY`x3ut+)3SNt7L^jsd z(w8>aj2XrQrlIB(%QZ_^>j!HO+f!RL`&PSV?*qO&%{ktA-D!5Uacy*ccI9^WaxZsZ zaQ|>??x3fPr;(?Pr>Uo`M-MUgK)2+Y;z~H%ICnd8>}mGOwmR0@meS_DCervte^NJ{ zEK9t=MxX?;S*@*PNNXXl&d)RK3+4)amb#bxk+3D2$JfM|=-?3j4m zT7+D1GV_jU%cisAK^kB3>x4mKEh&$zS12W{{?M|K4D=iJ1^-06CLid|Lj*a|SQBEO zHRe*5bC!D68`dhe{kBy5TzjUyrQ@W-?HumB29#{;TIc!*a@oQ?%e~+I#2t2H9+QXg zB;1ePTixB=n(J?u!S#ppj>F^l-M-j%*m}?M)cnMB&v?YJP~To>CokfCF$CQT(wLO@ zOTERsLN??UOPJC0P-A1giu3Y3{}eLb9+FYsCjSOqgZ%1T^|7j`X<7-bJnU{QrXEs%SL4c5 zMUtn0e)k5iQ&gNIeBzrz4Ag?lU{|osSUr1(S-`YqN->3)Dol4~F>{AWVaK!IAmYLK zBm5Adgvf|5q$BcjWwhEu>j3_`Db^5gNK_$<=-klK{$e-)y|rBCs6VO}T zVYApr+8^0d9eo^o9AQTp=S1fjXWUuX)yXx_b;OnK(p-7nRovCx#oU zC+8DKX~zWnVOu(MX7gBTn_HV28%r2e-Fq1)(#41A66dZLeBZ-Kp4=k@6iWpEN;y zEi@Ny@D2GVTyKtIm#`(+=Rmvm;J=GAWtgVSNM;L@$uwfGvCX-U++Tb(ffFu>v!%9j zamA*FRX~Oy=h2JUDf}q0k({OLrcX7zG5lpLV!CPSYR)nbv3$1tZoO%8loi*ey@5_I{!Yp<)jONCg;?_BDj?JexeoF8%+N&iN7gq%c_!Ncfw+ z_?c1B>e1AwH(DY3NAyB8Pi$>07(X2EoNy&yB)3sh==R`43vn)9yf_zOHmT}q>a}Yb+GzWsi3TpRcWa7T5JMQP!-`EUjwQ@ z;0R)0~eTV;v^Payw!lWqV-tSX*1hn^&548n+r&=;!H% zkqwCyJc6D>=4q`|kCHC!7AFZE_!?YkwjxuL?m$gXo=M<|KJgE+F|k6>S-2Cu8T}gd z#5%=J#0tfC$IB${Bt|9+Q(4qmdNnf{BArHjDM2s(5YI!8wWbnMR;qac4P!%wBNq`B zx}ROp;phOgE~-Z_0V;*jrfaO)SG}(kQKrbRrOMJy(IqYr^ukD()x3#Ced%iu%|3 zaR#Gttue1@hpCWxqZzmKw_LIKtOKkkt%R+OZG$b{mS*p5-)+yb7jpD-Y;inx#2tjw z>Leh0zT?;ky6=J7SY!KLTUFa;D{pCGS!I4?qKpQk)8N#Tx+w7iKaBl_c0)>OvhoCM z<4m!S(3r2vRblHe-RK$A(PT2wCUGU+0Qy`9Vsm5TVsm2qV?Sc$;!ERd{Lh3hc^Wdn zT=YkJFEf+v!d2isLR@$%{tGk9tGrg`s<{AVRSZyL3epN)j9vl^%UARnx)&XR<^gNc z2)U(I(N?J$N_}M~c<#Q^9q2S{fd0ZF-p8NdI&lPd10?WIb_%-?DsOLDKi7jh$~pKs zAoX*Eyy6|mWU9!Vd;y--K`V-2=zH`6_7C2VC=EE6^}4$Huli{QhjE?JZ(3#&O~0E@ zo9&i9mJ=4mQp-BSdd?cRmaq)~&qG1BGuFP%e#QR6{>dJ(Q$W{y_RaQQcBB2Et+wsH zwVm~brKIIA^K+BcRKnQM&|N=PH`0d!H*y`B9Sb8iqJ~aLqD%~#=lam!Fm3lyLVTQ2fI3phg-*R5u zEKQUfDyVu^9RNtd9Y}TbK3W&siz!%XyanDFZ-tk^MeH=z5&I9Vk8VN|S|gz37p08y zC;084G)%lD6c<+WDf~gM6^C(G*~M%>(C4;ne|9N*oyEEK+-Zov*YkOW(?TE7D?O5y z$z7B}Dy81jb|ZhG{jhSlfL|cylJ#|r?q7XwK%xI>GYDY%$j| z4L7bbT+qMP<&aq*i$Q8wNKr65exv{`K1t+lO(EndrD^K{cO<7&fEJ*ju=x{_On)%XtV zD0&7tpp8-ID@)}q(sHr0FobUfI&EQ4dN{Qq`4KXiE^%FacWiX5daPsYN-P>H6(1Z2 z2~8vtYm>F9Mzk9cG~3wWP|v9)@It1zN$M&S%0=ahx<+e>P{pua z?E&F7+VITaGBz-dFs?SHL-k^y>9{G)Jlp)vT;8(4a@(S}REaj8C z$}8mukZsmbwkoR9S>31VwNZcsO+)4(3^D;#(fJsOZ^nxgJBd={4zjpzvF;P(ILr0l z^kocV4Lb~v4WzNEvA1!R@fIL`a+|7{nwVOf2Ak%Z{sGBdV%lQbXp>RCkxj{M1Yjrd?U;-35IuNgflX^j2t1ecjLk9GZx=p>MzE=gcu+~%?4yf2yfJ!b8NY%fPUC0w833n}xwm`d~ zL(#v{UFcoFMK#0LVPCKy-VI-mKgDIREbWN7#3|xE5hYNvFj=4MORgkuks;EqtE_9L z>!q8h`%|}Gw?}tf_g0so!}O{8a{4;@4*DMY#`X_#OGbz*_Nq6=5`V^REk8LIrV)_)TQR+<{w2815=Qf~-TWMvrTv|;)S64+2BI(FID-dkJ0N)zku6_p2Q7;CQPK6><`$sKk-ZWbNnMvT*GPn1>PHfguTXU z;Y)E5Z$UIAIuHYhZ@3v>0GQbdSS_qE=D;kNfR09I14iBfn7BE}UEt|mWF)dj+X}hb zVP&1NQ#q!LR0=B><$Kab@r&?PXaB@-v0R?qSBIUPI2PrJx7n9-`375yo&tz5pDvyMS`)38xB|idOofRnBPtC1nDL0g; zGD-~s6~Act0F{40`%OEd&QkBFE404I8>9`o2fczm04dImox@h)HHmG+7vcx8nJ5gl z;ToPwTqUZK-O0A3j{J+z@HO~OfHMC{d?Q{HTZq!caXbaT2vNgQyfU$d*hCBlobXos z3)UO!3)K1@AB3mk>#<6}9UpoX?7~05vD%mydxf4tH==b=7V)EFAgXd=Ip_*>AX*F6 zp*f%j1>sY1_(f6Vq*g>*t~OGusBP65po2?cZWYyUK+RLiB?VL4siV~vYC_qr6jg4@ zv*q5f4VNbYvZ=M)LoO_Tgu2*kkhPDuq*Pw21C|Yu zNI>yChIp^PJX9Vl&zI-Q8{k%aKUNld0rp@wx&x@R5S@%xLq8)kVSQHy zV9Qfroy|(*De@dvQS<|AQV-TnY=>19&ya7RDLs)GAo3>xPQ1ES9Q0~1;KUQ^3UwgZ zqXX(W^(JI=SJWM954Dh5Qk|?m0_)_}@&VOd+6}d($|{-459PjcNLi?~fhyQ4xrJN< zDq+jy4f1yRviwp0B)(uWZrKg6c86R| z9wVQWbL65*Z)LVJT^R&*%CSmJX{K%jH0XF(kwi1(wsl-BJ3{jt`PLw1t;wioa zpM)RA@8C!AMR1>OU`Yqy1b!Zy4zlP&z7wl(3vBXMsN~qO?>dDoa80UMTMY z^NFj&)a_6cAi=gNYP$MKEe4#Jr5TZx;2j!i>tS_9BP|FB{d=%R;|qh)iLz1tLuw}C;#OgWFiZHx4PbjQYv`qbt(Oxo65W%J5>w+% z;w2zjJQ=GRn;##LD3_QN9~A!)KN&w2Z;)tC=>R!55oR@+8w&M-)uLbN0u&5uv(PPA z4g3UNgcwa`z+5`&TIg3B?i$hzPxYe=`wYtsOANyepY(B^Kw8Lqgqyg7#ZU%0r}a=f zDo5qY@-1l-)E%J~%b(%eaAjd{$aUo+oQW?6XwsAHcZeE2To>*%FAJL3Pg*EFmi20e z+E8nSEJ0tQKhV!u9ik8!BNIBGVY?x}v9S>|38wSr{g&z0wYI$WJN85Nh4xC2Ij7rq z+9x>bIrljAPMtI6Y~p(BTiUqU zz`I<;qUdHMO$$JTI9DDkof6jx3jwJ-m+j2fU^5sW(};%N5nvUjLvQnGvNE7SNsTh5FPb`=2&f+J zft4MM?i=|YJUfqdz=opxkawV^H6aq^)YfWGwYYj!A(bQYHTkAIK~|)GPz%gdo-1MH zsnS+?Bkz_&atmdM@>cFFZhkBC8j%UYiMejyxMYe^} z@X}D3kS(O<+{kI4!)H&-HfGziw*Y!HGsK5|kp|Fb_z`IstrF`MpPd+&%nO~p4Eh8h znTqmFgxr80MP;Y*L}>)o+=Ivyz}B_G^AL3)e(RxotUIHBZMbi&ZQ5h%Va_p+vrM*} zh0auK+e2F^`(yhYM+0XM=WRfg1fa4ixH`GVx~IAaxR1N-o{NC`^15a@*E#mt(`_AW zFRX2>y)D(u15Epjj}2e+R=r48C#MlJ@LgCT>=bH1C%_8ERhmaz0yciILdj=kL7t}6 zRM)FF)Z^+D^*6PE+D+XAwW_jEbH=n?;Q27MlR8Ho1!tZpRg@lbBdLT~OEB_}ScNIi z_4n7 zejcAdG$dJau5OC{l3|~*98?cN=GT^{){T(kn(ZI#e>o~bpI&v9cDvkB*C*FDS3OsC z*CbqdZk%o84gC#o^&R!uy4AW4I+yMTc?Q;k9VRufzc0yCXbF@woB6@tCob@wuU}p^H9E z7bke!hwHFoNM-FEVA2Ok-Nd6pK(O*FSdCsy%}av6fQswO_#UWgMPf~37o&%x-=h*# zUMEIpMW;j;fK;`Ly@`#9+Y>z!GZO0)-xEWir_vQH*=4#FbDjw?6`(5BokO9{`~^Ch z3#2;oJGm8PAEVU#upX`m5=Snhld-mV8KO9>dO55^^=9>jBqR?gvv@acFxJPR9& zWkX#O#SUXl@#~Ni4}`2(PxdD7k|lN9bY^`M{XqR#{aXDUJ)_TMSZD|ss~Hu;I)ex9 z_ze759;s?t$1C)nK zafouyK(ykAtZXZ+)7%CBRe-?y-OdofAI400Q+x`<1NxC1pj{05ttuT)! z`l9+Dx+A)Obz60-V9lLT_cvq@i@*=BhiqUdwi%+VVUQo0VO`~PsNQx!&T9p=)9OXl z1yR-;SPx`_OnMLMz^-Ex@JxIFQG$F1JgKd#r|Ye|sjIEOs&8$$V?c~L<6T30kTav< zvYyqwB`*^<@u%23G!2~#ejrob2H3*0;wHcbb>?4louS_QjorppVG|4mh}Cpv44_fB zfRAfK_n`lUF5?&`$uwsFV2`pEZY-D0P3CI=KH-K~RvH0ym3vZ(JOU!u!^$+(4H4WY zEfr$JyGU7d5_%Ofn2A^z5Nu6}V&qM-kZ!E*hAu~!S3g|;ML)ps-cZlD$7nLuG}SgG zjD3tB41XG$8>$;5{S>e+<8*JxnqWa1~mu5-trCRb;xiw^%W7HhLo;A|?K@2+`DS&Q(`rSIn{}Px5 zuZj1^`{C80p4=F6=M;$3Cy{R5T3x0tx4yo9Ce+wk8g>~t!zyEA(^HddN;ge1Wf>kv?q-5U(n2Yu;Ew}v>f8o z>}r0crMyR~1#1E;iYnf;Lt}k0W7-sa_~| zp&qnJswk}%PYGxF3)}{_AJdm!1Q?cD&|hqlpyU6=&&E&0ufw|m)=$<*)K3getV>)- zWGC7Hj&Uy3f3xX%Od7kF9l=clO!9GYpEMux!Q~18UG33YP00RpV})@K@rKw+_6JKm zLm$>RG@LfHFvg9`z!u*#543o#|5zVbd22CS59s`Tf#|WSLvT!Uu5|tme^{~I(ZC@= z9<$nB*S^PQf|~XcsK;Kmh-SYTH=P8(Q&l&Ld`#pc`s0_NYNNtxdJfPD?UktfLOukw zgBQ{aX|?2(7s*u>o%%0Cxu?|r>PYo9=zb&6{)bwA_-BGaP`Uez1fi~94_U5VR!>8| z_6}C49TN58P$8W!zy~>v;lTz+lICO&h$QF6)!0AK>*^V+9CO9+SX!(`tU36!;jtTl zdpsP^o!AU(xcVh$0)BQX)tWBBu*^sHE}-C3gk3^?F)p5!R>}*MY+h(-V{K$BXLmT>I{Ly|z+uk5&auuVfPpCQ zq#WlR6C5QSpY5CMZR|gwdOgru!(ui6Fn%;R41M$;bfa`v$*06C{3S-A_0S_w^Z25T z){^Q($blKi+dqMJEdc+pQkxGoyJ^s44?&MT71qo5f+|D+odS`_6?7)*M5iIgwU??{ z{ayK6J|h{VA>tBYGN5;UXKOQ+>Gst88=7o-3X& z-W@W-T#31fABlR&JcJk^^!R3;b)s38XQ4 z8mcqvFccq-KgR14nZz}6Gt{F0)#vD|8HO6}L2rJA>9+ZqWh=!6U(9d*Eg987Hb4uoDrBqY*}s@$Aee13O9v0;&?ztEL94EH}F8EwF0sY zYO15rS7;UN1U3_&O^hOgx~aN@;Ke%XMg0rI3FAuBcyl`oV;OG!0m!7IwwutA8*FO| z)M2cztRJlaUxL-vj3o__M%7K7jc34i7dK>rkNd8xuiHRU#002tZGg^VQ*0B|{>H&S zDU3m0AeGQL(6>#63Uq&LHg*@wgZBhZ%>iE3BQ62vaTa-R zS#u2b4D$vvZE~8b8YdVY>l^AHLM{FySs6OLPoQSK2lHTk(Y>HyUTvrvRZc7Cq1RVN zT?4&`QQ%z*AoGD<9B5THsM=Nl|J4?^LpPu>IS@KzOUO>-Yv}9D#P5SmD}qjf+Fw&` zgxXW7CZ|b+nBWtDGj9vH8jP6;Yv`_0|Hslc z?(PnYJ1p)lyErV11z1>I1Ceo`p8rk0|CuKtA<4}2?YdQUtIjz!#aZ3?)X|s|NiD2N zwHxeN>@DpJ?C0(O*)uzOInFuKJ7+tqxC*$fR1R`^J9;<5%x%gVt@O_i3<(wqJqs-l z_oAltJkmzkOa4((+$L6*K1$1U<@IOu2H4``HsVwIUeVP0ds2n9%GqJAzoU8` z(v8ynlx9dJq&s2*&T3~P*R*}~Ge-mm2iDRxdgy%z=I0N0Q;^T|sET}WPIu;Z#yj>p zR>Npm=Qst1yaimZxv*d#IUBknu6J~W&v@JT&eLDd<)7+LPrbf$@B$gq&(N{(5Ul{Z z9qsXkZV-Qei7Tby?R?mTE|4+0^s41eXT}`CIyGvdj8{WbO{OKG}K5*~^*L`Pp&9vC}aVPTW$y z$_t|TtndVGEC+Me#u>7@(23a~=O>z#Q0H=HeXABD7c6bOZ=7RlWiDlr!J?In8W*)NYJ5~fPVPaF z`E8a6K1IK4UgxS>pY6B`gn?@9DGaJL=}r?|h9COOwb>Ej`y( zDx8&%u5>b!!nw6VnoNKGe)x9S9qy(jX|p4_v8GX?KsV{Wltf-TT?&dsUSeS<;Zvk) zWR$inyd|_A6y;w3KHq-tIS-gm_^Q2KZ(wZXcD{71b+mD$bG)=~w~x0^XLn_CbjAD3 zb}WV|QkOG*Jh}mUIiDtYfAa->tNcX*rvp{!0nHEf4aaGnBHi$jN#b}qfi-mNbzWT? z{R1$}g_I{sH}xO25dG9^hIE|gzZu7w@|zRP*DdR;9ip_TUeVK|M@Bb^E*_mJI%{;v z=n7y#??(-e@>oY%zgX&6W}6S0?i(G3l7`VB$l{b|awU0?eueIgbXRu>rlassk!50ThNxPcl5l64f4)A)F=B-`KJeZ(6b4K_R>c@t5rkiriO4)=pgE) z_tFWXSX0?AuTp$zr&H0;)o|QU#`wW_-E;)KkVe+m);dv>=-tnWS{!vDDi~EHx>EwCv<|lHG=JvQcHP*>c-v6fFh_l*6aa-hNrE|SMFw;NTw}>^m=XSe(1)H+aS<(60F~Q-pFQrBvfCWTohf1^G36=DJZ&^pd9MSL$IS=(sA(?-lz|V)pObr?Fya8 zL)t8@t5yrW5TsJHOwXP(ycPPw-xaEjKLLt<9|yt^2Hxts!enRL-bU;JLa+jgA`2 zXEkby^&d-N%Tlup*DPS{VLWVbtF>UKJeBjyt@N#RRi*4=At5euivDIpdYg;rh2N$J z{z&^rd#qj4wrOj$J5)x-kyVeNGa5%7>0i(l7U~4A#T8;3v67gJKGjSinZD96ZE|>M zXn1f^V2J-$UuW-Z&m(t7x8A+ORlv2+*#K7FJ;!;+VaE!`Fh@;C2FE-5SoZ-Bo%=juzru5`J2pl0$5?-1lHUb};s4Le$_ z%c@_Zf2#NCD}dLDQSK-w)Gdb5##*MAEw#(U{Ked}K|(t5Z*iH_oIHOF z)tD=wHfGBe6!)7(Jx?icHT#~)|7`;KKN|IPun2#U257K0gHkJzgNNo_k@mO-m zm%JY{9rWG!qAihH;q5XA&4rr3l57eZMbKQTTC&AZ&09?-j zzAIkU+aC6IefLYavZY*_)8TyOyy86OTT_S>_JEHBDF;k91JJ~&>VY(jN&1&q4ZN4MxC#QzK?#QewqF@=*m;_ zaO!-r;XXOF$#l-tAB5^G%PVrmn%1(`a@MZaMb@2U0LQ@oHn3i@=q#Pg=S;DtVaA(= zs)jRaW%ZB}t;ETL^__KVNCVw z1Cs;q0)DMW3yl?z3*CzJPoT-Ji4M z)i>0^h8)K0#-^sFrYoi&rrhS1<~e4Uxhr|~4$FGWNJ}G2l6jOl2&yX9G{*SMP}}fK zodO!@tWt@3(INeET_4UJ3x$uIYM3v`bPRQ1@;7z0tLZlbPmo7o(nz?W&%$z2E4(M zP$E^LiQ%i^>~J5(X%o0}>3M%;L4aJ;e4t#4N9s`JI{?zdWJ7p|dX`HPSc z0bh%6Ur1&!U7JbGqzCUe6MeKFVl0u>Lt$*UHEsHhz(8j1-eQ-j|_wmv7gG`K%_ z9t7Hf;J)Ba_;7nUPk2(*Btl0+e_|!iLV-}Ba2zL~)!|v;A>o$PLBpIkJfNdna33ay zhlcyY1#1%?8NSAytIpjV0P5qg_7bE;5q#+aG#H)aCi{dK^4Z5?A!!1&r0)_(Vksn< zIcYbb&fks-?pR%a>bIqIG8K;F(spT&bU}J6>2*=M2)M$vpq~=NgW?FW16aK3VhuWA zE%~~+SOMHY2{E6TSIkZ%cj0^96T=Kdth{*R3gB4si?L!Jv9#D&>?6(+*MM=^FK%U3 zr}2F!qFYPw$9Y7Fnu=ZcF1(}OenMD;o?}jM@=s8l9EBbB2Cr5;64E|v56Cihb6Va( z6>~E6%$#_#huG(8_I$T+#c=kpHSA~QPJ=5h~u%k z+MJeOO8-b_rQOmz=~u8W={OrMBB!d2#io!Y&qP17Ea;Xn=&;AU{#txZOR|V6ky7-9 z1?pFDtF(`tfoyzy)BYth*+F!v&%O(WUx9JC$r*BMczyT)yYd=%m;>Q8@a4vb$DlQ} zCcGWo;W=rgLqv`5o1B* z#Yv;21yo4RO1Gt#k`H8ioNf$=s%iA(y6Z~PX*o~)Ya->A0$@50VSOE0nFeBIY%>-v zMnv!k@XCZ2R1Qwr6_2lhM1CLGhYV{B%=mOhBRYE-0Q8R6)0+ zwD~*t_ZWA0HWlOLk!7HLHi5?4MD7v?UNxGm_#>x<=j_MK^uWxh=$+B#fx#UNXKoug z#9b{O>q`NX^_?v6IyvDh?J0<@llYTg@g&8l+vg$5i}Z88v(B%={%}tA`B*IYo0ch3 zh^k50NAy65l&#)0Y6OKwhCIYB=*mbyx#rLoc&{Ks^%iJ3f4FR2kL z`OY)}@z3CF?D4MS5kHz(<9M4lt8)?{=|yRxhMV~^vg zD31Xf+J|hf6}D-JJf;%Ag#4zdR#hvis>*4Aw_ZqEnj-MdBe;E@!4aCep#2%YNO6w_nfa^?bdO2(T8PdI1j*FZ{r7rTT}w zc*9ZR4Dm24?h%8WEM9O(bg0@% zJ=pmpr2%BL4Wt~>Cvi7_Q62x8o=QY+PLieZv_M!C<PjBjSj(qHgQT&sGOlnYttio_2Ugk(Z&`=lS_SG#>9jD`<|Y;w$Kx&3 zwooHj3p(&5_7-5b=H@vwMf4FTJ3fhy(*t(=0~lO+u)t1{9>lu!ye}E0;`T(qF7#LW z3nPezo2lKerIWr>*v1*?FX0R4dkwadBxVo`5{(APeKF45fu?%>y z(R)71o$QKUvPnoHuBA>kI6y8rFER{$;$J~d)&hH+4_s+Jt}zqn(sZ0x3WF`G#+j}j zJ1sNS{J-gUPbZ%nqfO=9yNF0UgvihWB-bn=!zFyBre%rbq4S%ab6k2>>Ny^BleU`Q zozHKNAUmDSnjR!pnTTSo@gDoQcd3f{-_kUzAET3@`85DceT(M#CcbS(E5u{`VV74GpGkS_-i0U5A${Lp91U;6i6K`R3rcU1Yj)!}N*7x5;j5}lm zn<7hi)qeQmzO3XrJhU@X5N|!0KE!J9#y81q{uQ1HZ-j4TIj_>PoM~W=Td}h{(c4)e zT*VeEz$=(8Zsu&hkH>mCf?cr3TyzA(uzlW;tslXHH>W+e;ZMiVS8YvQtTHO!g76H5 z@craRvxxVzdAFm84-0r_XW6Bx%Gw!GY>#H$auS>GU*?jA$r7z2l3C@hRrmF$67 zVISuOL=d~vBdkc9i;yo_nJ?c(rGQSkhv)bE)C#O-Jge9e>nx7{PyLGkxuhLrK{3|8DmyrYf4hwDTLlXJHYbu# zWHWBfSOz-FJzv^3fNs4^Dq99%eAw^d+#~|Hv1YVjun4!A;oRwWxJgB=4xm z*VS3CviQ3wa>a+N)god_SE5ZGV##}Q>2Jhem1xruzqx^k{(!x0CwjPG(TI@<|Jqqq zk*IIvdduL>T~tevC)NG%N+8X z?ZOpKx2b2b7wr3|e2y0q@rs#=3OU6nG01n{1d*?6!H^orxure1UM%s#&&kgr{7lP; zBr?Ch$dL9BaXWD$s?J9bR&gw^v5!~yhx7Dn_zNHKDXC}1=WtaX@fQb#9n6s!fv>K{ zeovislbLvv8~+)H>i$}*jxH$L|a5#$LzGoDr2MeaOZ7{xU-=h2KS zt&Z#%}-!oKiPw^a!`OW^U{V?wE3_QRY z?(0W>JDCh36KC|cc&71W0ORo5_JA0w=w#*vkNHq%OO+G|{yzKC>p3gUa}$ z_Qa0g_<5=gZX_Gu6IsRYpWxk}CCco_$_{bwcViRV@uUm+&DH$YVP5MKXHGMAkQHlB zotKpjFOr38ti)9o;Pn2CznG549g7d_OuwlPJG)Za*(G(ici{9ii3l{4I5d=>*CJvS z!4nk3^A#rwW+ju#&U>tdUu;2MTNkh04u3e2wV%n~E#dq)m;JCJ?LAFk7cAzxg?zt* zpG;<#w85e$W5dhXHy5}!33!gWWcG)I6tbmqoT=l)hGG@IisfvQL99s*S%G|167RA@ z8(`TD$Q;L}P57~4N9kcP-4Tw7S#_Uu9lC#Wi zP&DJAjN8xwpU4D+Ik5#}11Q!WN?$O;)AXy;eT~@~T{@}@%;~HagSnk)sj-ARMDlx#lDW*LLbq+4`|MU*4G-fJG{>A&R7>3QTj?(FT@YaeGH zPIvmF{iO}`R|UQW%ZK-AZG=zaP2F0#gxcOP&R7a$VqfzN^KtVF^9MA@ zGK2S-VCiY;V`*YB!3)}Eu4#@oS1_+I+suOH8)&_`=0D6CEt@U9K{RZkZhxBY^M5E# zR0YLY%n~-|HV-$|Ko@i_U5#dnN4_BUmD9-w^gZAycZIk42c3Z)@GZ0PlT6BVdT=9| zJ91FJ9#;Qzae(j_NQb|JZ3Az8*StGCvb%xvl>M`SAI`nM{NDS1-iQ1jbAHx&C!(GCk%omJkTxYhE;`X%#@xtsh>KBCM~ml>KE_Z#0B|21wgrlXhG%CJ{`sGNW; zM2$w;A@&oBM6QMVhAIZ<2U-WR1TqCa`7ir#``7vN_#2=}e#aB*8RL$3m2nMlZgBiz z-)~!(GA?;}(&5D9pWT1vMx%f8&+>`slBy@COL3;$wpti_x^!GacdjI>z79C|fL>t-JOZ6~0qjjN z{adO?4l0r*Va%#jC2L6Ei7Xe{^S3zVtiqFQ!`~eT+t^2ngXQ&BKbCrZ2lar&fib5_ruN|dRQg+y|Ww@q)z&S(?6T@>mT z&QE=z0a2k8`IbfMt9znvu1rIdKrzlTn!zMQ(eJVuHX2G9_Nn*rGjsJNbx+0lC``nG zu{;|Z5ULew0^f3VXjUk9XcZjSp(yfHqjz4~Q^Zr;ofF*UWk+GhN_$m%L9n`; zP&=%H{?88g4^I`}PQR7O0oAo1kqcrU-B*1}rH|Uiklpyi*w^&dRNB1CY^FOopWfv> z%XrH`?7O?Aq$SyW8=gcL^A}T`DGAm`Czv!wI3y1ZEe$=@IJh(m=%s`~U^%I~v=*jB z4r_mces~50I%{B-zmmVWzk`3Qf0lnTc+N|HD~xDQuzGlsHY+k;SdFqkHQf$fyzZm! zzHXOpFkOk|c)5CFUBM8!8NL`g8C(|gHh=kLaIT=n1cPl2_50Zr;3s4?b1pR2HE zDyV@E&KPG+M@M^a+pZKbWnOYu_#}?xohf~7mF#8Ep1JHQ&2)pF{(`~Jq2tONaZMVH&v6T!tI;xiw{h5`#Kml-x(ZQ)lNSSC*<)Z8}$vrCZV@={M;b2!t5@ zLH%I4983|LdfreLq|Y>CZQ}z&MZ-z8q&ivoOODqc(p8Yw2nv%V?gc9bvZ8kR)H}sn z+M9%$hy@i^)xF-8-?iB(IeR)T+U;OQ^QDwXE}WDz(eTsyqd~&s@29^%LcxD;Li-=Z zQ2VZxG(S0zGTk2Qyxw-4NfATiv7xgRCTFSz2_-@Q- zs%L6r8f@CY^`1k?p(6OJ7fiz$Xgb5yA3@>aopFWn7h{YOZAn85Lt#T${R76xO}hPC z<)OjHbE9|KQ1# zQL8EGJSz6BDl{W=Wcxlq>mF@~sq~t)XMJ)9sq;slarG?!hymU^pk(X0H%0 zZjuTUbCW?`-_*C1ugFDVacoh}qq^{1`Kc&sK)I$gS02ifMu$3eFh4SPd7 zLS;io=*Vseg#2;-RbbU-d+NKr&MR0%KKmEjT{K4S+En`lyX@HQ=mnl=msdH{UFC;6JZRURX^ zgSQbSztNw9iBbe+)MQ;A-FYI%P&!l3={VGp){FnpPg%fuRO4*0UYkOvbR^Zhy_!JI z?2YUb7NK+F)WyoNO0u$9EdaOd5$sa0;a|G9O$_nuf(D8x&(-}9hcQj%IXM1Cp?H}7 z_uzCUFP#;1)n$o&7!aJ7iAr&yQ5hBC1YJ|{f+6nDTr>-I`ey2 zVlMNa=JDnd<^XJ#E2aZ<-FuoW;Kc_SOT)#iYuKgg)HzB^r8Rt}!su`~K_&j88!qh; zeVkN+R4G1jhAcyG`(yYHRd;`Qn%0;oP+M$`dPO3rwh-$+LY^b9r=z`CZZ3b+=g{ZY z1?b?*k;UN(q0GUufqDKUUk_gd9j39~Vkiq;@eINb9CP=8&GN%_m5C&KotGSU?B8wf zl*}pZlW!%BO&XB2ElEwDo~)!CPMK<3Vt?)E?9$vPyhHt^@qr7poWfqwNX+x1Yu5}6 z%RP_>e;d9U-Wz^`Kp17bVRRcUCLMY$TZ|)lEHxg0_jii#X5q7bHC8hI17qt0OtHP{ zMbxt-xLaiQs$N~Mlv4gC?{mN(Ht6rd(jTvDNPkn(B}y4}Yf)0DDdz>pcR}rBxL|M? zG8(fOqm3fWmn()o^z6&3C6pBXSnmHgAv$s7KS)TwQW>yrATMSa#*(s9?>$?frM z^EC;)3>FLb)J8?Rfah;7wa{hJA16B-#9jCyH&JdWO}Mg`>J!ks$J9IO7pBf-G^97= zHFPsmZ} z#J0S2cLny&I(aTif;owzamKwMJu{e!;$K^sI-44r-0&&;8mcp&V5h#O?h6R=5s}u~ zFX3q@F^mru4SovDXDyES+o6y2k8cT@;|E~FHT1MYL#(c|mZK4?Z~;cj*W|Ow`;reN zUm^~UNGV{m+Osisda+;sw@Si?L?+-`t{)BV$o-E%C(h7 zN-d=XR-GN*Um`s43-VoA23=IK|C|dj>aH&cVi&M3nBv58$G5 zs^8=@`h~itQb;%!p$`y#7wR4|!slufbb!bn6F_4rkUt{)TU&L$dR6@f(`}WSULCJQV1A_{^>cyV`kVZC z1l$h|E@e*LDWZRVvL6}bgT8nIJYKe%I)r_6 zPrV72Cqc=i#LANXwX}^q=(g57Tsc%PI5+Sez5XQMQq(MUzPsKX;P=;g7kh_#OE6of zglDpQyK4g(@B%zw3EMuD7(OK*PCYTh&pwvY!dApy9mbaAzTny5n;7U2GNI5F6k1Ea z>;BaL1?xH&99f-VI841-oJ*|ad$Ud3O_xk(Va2vF#h5-B-y74x*56>-W*Sbuy3!bH z+-#_3c&RQ|JF5lAeqJg2l}?JP?2{YHZ^@-=qeoSPN^}Te7VprjVHZ@!&R3um~(A9s?C-{1$ zslw-H;=^b6J?06mb`N#ucCSKv`CrFf`zhPmlmsSiO-r&TE=sJK7=s^(OFWxcGs%{e zlw8Di&_3GP#$DL^(l-+|jh*29sWpjPxrmlmn5~x+rMe699wO!% zVrF5^OmX^n_C;>y?3LEd)fFMyerLYmT+~G8qs&_0c+!~D)Q5F#Zz^Q^$Jorc1--j% zN<;ZQ>S6}*T4X&tU@O*tA>d%H(p|D3Gg!W5-eIWomGHjxH1v#e4|dga7IfsYmtp3{ zbTkf%CGAYChY!r3*f?=!qC4?a(m%-sZHMe_oQbZboFux@A z1dl$Oh%iF_0%|X;^uW&7s56-knorH9R)X0$4J$dXURHOh!_@|AI`y71Nhziz!0P=8 zrdC$I%YVpSZ&w-tJxLS6!_BCssES1nxHYfIraq zO*Gap4KhtN4K+12$)+W&_;>Y)(o+`ohowm(bEqR-wGrWQp@qS#fjogj%sBI-0r#GX zAdkoeaxn98q-U&qm}?+4kU{nlw&mFWugQ+2C1{z)B$<<%B;8Lsko2bM#qw}zrLb9CpkIZ8!+WKw zJV585N7zdjkmsp!hTG~Cxwmwfu8LhcClAJs-YC`NiBeXfMWiS-sTEWPvM3+ry86*@ zc}|JBbUnyL>nl0s=~9b`RcoLfh|H&R)?Ub|G409o;QG z=e1;y2m;)w4DUZ+h zPcS36!x37kunuIz=g5A^qpz(-!JE9o$*!j1kTKCz14dI%%V6_z6hhyi>hZ{&hbmdv z^n{Vx;UhWL|E&AT6P2Wx_G7#R6aC;$(vt!|J$ zz5HH&jjeWorE+DNZ;GCVQJ<0O-*VFh?UGz`YT;f zxjQOvk(a`+TdF@zST2k=Y~Jwj334-7OQm(tHG_-G~7~Ks1?-WDE$4d9)c?s z3)g9x@{jT!U!03QHB+%De{%k;%Lz27KY-dsZQVI)P)ooh?qJYP?yM_Gnm zU=scG9D;*)-G?5@J~~P|x`i3wlni4|YIa=+|7q5hWu>#CdpQIjTMR|O(o~RU=p4Gf z`b8)!E~Z}hQ176kx0GF#EQe8ZI0|Oiha$Q`Imn%vPF?c?xVYD-9hJjsH}j0$U;-UL zo2{;R7S!*2Dvhtgw@@@a8D0!Fw@dhYXd|keeL0i%K~)abSY}-O48DaQco;TSGw_mq z!YQHcsLoA?L9ixGIc#>g754ZNzE!GL+CU}}qz_LHm8YV&8CALxAhqg-OQUY|CG}u*<^p#*S)_`K&MThS&A0mjLEFk+f5sNCJaj}qpmxBNtFI9(AkrDh=MUZLZ zK&Ca5vZBRlknYp(c?m9VB)#H8Jl6^;o$cwkT?Q+1j1Fc`EXxj;MGvMyMGG(ie#8|J z4p%_Xm?Wd*0z1!=+^E9W6+HbRQ||K zPRxs7KMY~2cTKLhg!Tqx>LjqwbHansXzLdq%U2t~tG)=A(&~Z0{+HjN%)%%Wm|e{ zd$85izVdM}2szU*O{LS2A%nplG^C$74vaxv`hvB=)BFz`dKLdu1e8l%&N*f2+_t2z z7f)wxFQ}yQ%&V^gD)KPTZvu}|n)r4Soxv@zf2wj9R!Li=m9RK=O0&t3x{xg=fbsB( zVLq=M%3(XHr4ZQ1Anwy5A znQg40oZ1%re>T+C)(2lP34M5ILuhVj5FgJ&Ihap!nOU@{sKI_9xDvsB#DFGg#N8ZA zZ+rmj*`CkC>5lJWtrFPTKS3mUA|0`!di0|YfpFQ+dicbl@aQ*zK&?&PG>S()sWj~8 zo1k3YiMPO8{z3L+!QbUTfjKL`RTm89R#3qY$fwp&XPp8UFAqv<5mru>e5~>)u?$?8 zX>`$!fU=pLhE}QtQm#9^#?c^WpNQ{46h5J=_C!2^wf4c{CGi5b-WaURCh9lUxt1Wf zmea5lhJs#e3R0jx^_(v#0x}UkEP^th2KMD3_^d}*-XyI(2!gU8cc+0XNW}wx1{>2I z?U%}^TP{QOa)j25XK6sEpgYLH$KZhX!@FG1Z*Ai~EM^VkVT)`dH!BX?(ux-t1`h5D zx`TN@D@c(B*k?TYb-%I4Q?V17K}Nv$0Jo7@OvDHD!*|YL z@3!;X8Ccs-=)Je+*}Ae*dVq=$@b_8p31_L7=8oI~H*E)tdJ)|DvT(g{<8Zq0!D~o=)&+WrfFPa-ycWO(+x^91m7=_JF*J~z&{{d@A1|C@b4&7{?70G;CHfv=-A9^ zo2bm1>FDc-LZj2rNJrSag}@K21CJ3As!_FA4bt>8=+fiht4?B{x3RwnXCyCnavKEJ za+nQk`DwiP9W?4Im~&OAg3e?2_6Duqg4OJYGD1N-YAvj^wA7NXbAn&p&EqV57Q2`p z`*va1SJ6zB;cPu)zw6=0Z33S$7_?1Y@ezIWtf&u9qEA0F&Eu2>Go1u3XazRn2Mwf0 z!7?+I;dWpEvQcr)%5|k)RcimgDD~oatoEpOi+^`um%Fjf?{vN96D>A^Qkcc=jN@Yi z_=rPv{MYe6%c;@M0~K%>|2LnVYltLJ#eD=)e+tOhU*WyX;H&a*WIut>egN*j9PF!D z?LYVc>G2?k!7C=BIkyq>!?}D6 z-r)m?lLAB|JBZi5tZaE!I3w$-k08zuvh4&{(w#>)qEaF(iPxaE-os0|4U#&Ec$Ca4 zRAJK03MSi#TKO*;$W%#P_vyGg5VHpMl%V4f=0B(RnVooOV1?@zIyS;EVv-l86m& zqI+-(w9z5*A3GlRHA+yO@w?r?Y<0#TPa#|S8=k~TEZwPPidewKUjs!qoSbwD5$*-A zRT3=#3wNU_nB?Di-3R=yM=L{Qy2zbZ=vh}IM&}`N|Ax)XCsRpc-7ewDGJtf6X5~xL zm+TBSt{Uq!9EIZntodZ7RV*ZqjAq4_5{pm62rx>L^a6CI#*WSk%cq?524B&UNEE_1 z?jr*_L{8NKG;(A1!G3UB`$2Mj5N`8|KZJ_J_-sV+B*7&9K_=IRH8zl&Tp@D0>8kI< zE(@^hb*YLe?E74iFIog^Qpr=I`QM8CpAqzVX;$GA$jsx~e=t){k~7XECKVzw6(%cM z&Z@rE((^nS>C=?K4=x}|XJ^0X1`S&pWaVy9SmSuDUc|t5+gX^D~}>{Od87} z^=G5;smY*U3xRh11pYb`E7q3GbS6>gcQVrKQtEzqCcb1vOW-L}qjWQv1PxgKrC{20 z;v0}}`@zb`^Z7FOY!E0ymAoemuPYU~7K*F{*HjOLR3T#dHtc2@5qlwivgoZC-3rdD35cnUWPl?;UZo=0Uw~;1fV)gVAL$IgUzlAyo)z4U{kEsK(~{gNl@EV~ zf7_9L-U6*{1dsZFRoArAJab!~yD+bwpB>SOOlS&-u-VjuSAvkT67}k`n{tAAuFHBo zLzyNSF3mX*ejm7^cPKxP2hrAwXKb(vN4^%G$q!VPF#i+{*<1!pVBO$=-{C#&mLydqGZFi>zcx7JT|AnSWk>&&@(9kt}%!eczm8dN=w3cqlTA6d!j?3r}4o%7BMEa5yl6f&&DgIG-ytSK|+nPPap{lu2d zKT$|6Oy-z}>P8%K+sWG8z;1r!-g?t4v?=kbJj{c>Jg#w8 zP33<78F6b(h`VR-@LR}@Q#l3Cu;Vf8u@3C7dhEskQQ;1GQ36QVpKwd&v4?Z9hYJ$f zmXo6n!cRUXlC*=5@lnfW{v6)|6J^}1K@x&7J73Yz)}@wpRrF$28pTM*b|@M~G{m_@-N zW{MQv+LmH}-LR%wFdfG7yQ9G+x4?qFgPJ~^7R#&hocFLO9~tI5 ze5sQPrgbZQ~uNg-Se?T;MqJEf>t7^w8u4R9(BgzzFJ(rU?P9^dTW*4p|YxxNq zATtcbkdTda%!kLUM;ysP#EHe{)h3=SAOkHyu2dZhOfM#JmKs6z!Ow2YO-1hscC>{0 z>>BRj9XwzaR>8%-*hTET2~Q-*iN?cu`6)R26s%(>=jX}TOMlM60l@??wWm%oAtkq4fI}_Q{cd8%Pv7W?87EZ7QsM6%- z-+FM3%&;kKkO>2L(usodt= z@{{w-b*c|Hn0N@ z;U&*=pK{V=-ideW&Gj!xiwNadDJwp!d88-TkWAiFgUZ7&GQoP(BTC?}s*we~XRjt} z78sso_{}kR!+Kov1XkcFK0h<(lT?OGdhTXR`uK6ITv_&oiOh5qRfbudUiM%o!?@11 zm_D8#Y0zM<~rJ&VV_2C5;zd2^Llb zlnDBh1GVAg)Q#-tcQTu6#QOW3?1QZODITxLZQgUvpGQ0zM6T1E^HXy&qiV2M4OD_Y zQ=={~yrtSIQO%po-uAOv7s*d1aH8(c3Wm|2-y9x+O2bepl)d2FmSfgVIkKG&;f_4U zhL=#^?M>wEjlRS3@D8dG*Ws2LI0p^D%Jq1?X!7+e)Z==xKI6zdz4+hm?86o0IG^Ee z=tL*1+IMhg?%=&HL9ht^~SVmOa#SX5H2QNuYGa6Nb%;XJzxCR-xcd^vi z6FA$xWe@y`hu@5En8n>#$qHV^+rK5o|G{}H8Gn(0f60p9*TJ5sO1v1(bN|KrFc5)4 z@aRo&AJg%XfzzgyU7qScW8svJ!{4stOjI3Tn;Sozng35c$sqcQH%Kpjg=h2(PUd-1M#f{5hlW^#?Q|DO0IR2v)BVZAL1-A6AR2jCi0yM*<-TE!!T?|;|+$xh;NZ* zyJj>Y^25~4Ku%eP%&{+eIj6MZ{H+9Qu@4!;0ba8lm6QdhtIsQ!QNF9I zjhQXgqc%l{qt%$+(SxFjN99Jzt$=m2`HiulD#;NY-Doj6;tjW@+Z)FW(<{Ci=w!8{ zx3|qb(;alT_jF~d+*^;y`;;DEz`KT@UG|jq*wMZ;fD!Te`uHs%Zi@vggxsMDS|{$S zTlg$Sq^$Z{ayv9rE}~L+$#B)68dn=1fb8638V2U0x~ZLUJUz+xAmUmYzk_h7pp4V6 z(oL3bP+=JW)_XGEJ{>W0xVVZny^ZqecHK3-UEZZURQnp^Ocl+wEg7uaP*`nhO>Ze~ zjxygf{bK5D?5S4L_ZDSgwkCwu2G06@%&i#espgrw96cua8 zcof5)8IwNhk-4!c&d^MLF7*+XY5T*gLu~>Defhap6+FY-F4uV1VJ09~bgguDMs2Bu zb1jOd+fcuqX5VJ3Yg=N|+t=8FDczaq+SYbI?WQ`dnsoQoD@G0PxJev}N? zgE-z|zG$9eI?A-ZyT;1Ko`!pByc$+hV2i9n&2}K@+(N3KNf9cOhbN;WuQMd6zpD4a zXVp`q)ndvWusol^A(sM!w_G<*I!V-hhj(or>8_m*bqjV3{Nvl>jdwS3^>H=^EsiPKqQMTK{NdbGR3-|O#8p_>ME!gDmeLedz%E06V+-SO@RAOcLBAL}8xI<8f*{$d zHdlwx(e;D>Sb`>M1n;m)j-umRQB6X-uZ(erVT)n2@wG88cjkl1Y7s2InBOulx2w6l z*^k=TTTs|*jeQIPYKB(BF=agS&hqMVNXv!g+S1U9pfm7GAdK$$5a#9?!O6RrsJzoN z8l}Ca=$@H94$mpiX3tb_9-rnN>CNHG=bzwTz*N--z83yv{w4nH{wjgSs2F8t9@N%w zNc){g9xaptyLt}w$_F|{pN(l5b)*7BhHGLOJXQiH;}ukjCo$zFU8qjzUT{WWKwwc| zP;dx3J$u6UGy^gEj?hpPr2nLa%wOvzpHix!oIe8G@hEkrsxdjCF0%(Fa38%WJ3Ey; z%4dCoF0*bG9%z4LO4u8m%^a#*fujD)px;J&AA9b31n+yi-X5mDmh$#QhwC}&t*8C1 z=~I_x+QHaCp&P_c*Sj?Kgrs5b4|lnfRl*vNIRsch6O3 z2Y*4EwYcvZzW)*Pb?2cnH7wLUJXu>E84GW8C?5R0)LM62k|noTlKZz__a2qjqi}4- z;yI28?WqZurH<*9a-jm)R(_$(;Y#wNVq5-nrVD#WmaY!S&FUjcHNcvDPe1m;QxWN4ded&GY{1)A@7y@Ay9j zz64u^ZiePiO)3F~KO_BSCpDe&QYU)%Z^gsXc;>D(;`^a|XjCVDrIvAwlR_C3vPx1t zRAJ!k*58nS1ACaDh7HLm(XKLwE&8Z>QLCaRqk*lD8f5*I8NT^pcijS=9A@s~Dy1)I zv=h>KaWHkMU&E&Zn_wOd_g3|omFGW@>CIW|GWr!J@~QUz$Fe`kMTP9BM3n`aCm}=IVPeS9LPzhCE7EkgE#}e;O(n zolH6HVd`MMZ`q2Tce$v$s1atd9<_`#&%)0iHAL|Yl@vj~p<61I7PARdK{Yk352o{t zb6<2_L-S5@Ua@boJxn>Ae1^CRPh`Y2v~mQ<$f_~p{fe<-M=C~H)sx`??6 zE;WZ?71*Ks%2j2vd`;JcuFe9w8|Tr=J&(T5JF0nKrC#ty`pc@4TOAGBs;@DJdA6mE zb&YkZ^^A2Wiotu(Q|@EA4U;0Pd9Z1_ag(75NYWMZb^U#`&4!4BwR9mh7$2w_(D|=< z4|!xy4R^q~+?mf+3H{mwj((2Kj&#np&ZEvXt`qLA%#rSjhVKzycQA$r{YwL5f_jiw zo$w@8$lw=iD?wajB(p5Ubkvu+t4zZwG+zGdCm3AWi6*IKVTzOw=6Ix znckU3z&+3m*VS*ZChy2&^aH?IPY^xY0cPgfV931lP4$-a+;M*a=T*vC%=y7l&+*V+ z#Qqf>`Bf63267HvW+-c2zu zy6|Dt1oaFPgQDT5Wia$t7lPV4X}D#`4c>n@2&Jd`HB8{kEd|Bg(r3|4Kl7{DRjRK` z(YKTLf^^>q#yh)lhG`j$zl~7^nFE$1rbA4znD}TvjLPCs%TRdkYH4J?Z2TQH!w1U0 z`hB{AQW5b#ty5@ZptFC0?-%bYcLLc)A4jZxjBO>8o%^KBO)j0RBtK5tp0p^bN^-rF zt;}pcZ!1Ao_1SKAjBqS)ol@>PH@YnPX4EBX2kT}_2D8DGXt)Cgu(8}8Ygi#hN1mcM z**oa*SMg2p{_R=H%!Cf)djp(4+KgrG9qb3}hwY{9iA-63?)U<4DUMlMlBb}jiD##` zm9HpBznT6`fgE^`*FkqEA83jufMKeZ*drYzi@7O z!gTo0p(5H0x*~pImh?%tNWWZut2Bg*^#lyEq=uEklkK`=Z=YvaYPS|ITu|w>Zmo| zdd>2yxu$qY2m{QC3 z!8XEHfXUeLOiTM=+v)ghuLkF8A2YPi!8sY~(p(eWSKR$PD?#kryr*HH#fI91tAXLV z9off;#0TEBFOx$b>!#?V;kf@PR&|ArE7zv*w$<)vyS*}{ds8LZ(QBa=|H2_YtDLPY>*;)y#>Ii00eKE{Y z`YC0V1A2OGLcG>F^f^!~aNb`DY~)){ifgg69_O#pj&F{F&SZOGu%f>>20NCadb-VN zb~j-v!wT0*_a^r;PkJVq)bS7IYI1`lJi&~G1JvQHSm8JEKb;=7Z>q1?Gj&8}((}K} zc$~uQAA@284I9$S`m#D7wF#3rfSLd^!-znOBX8+4^~d{f1(#9}z2^C_a#krD4aJSW zndX{Rn5l}T7dCjxGTd6o5`~_wX0jSP8p;|bD~IJJ`iijs_*;b-rpU>G{W7bGxTNl z(zWR9>uZcESw3N4AvnGP=-q}&t z{=uH?7-|n7?e4riWTn9@ugShQ&ok9T)mVecN$t}M(S?yqYF+qZJ4-8(h1Hku!DS2A z2(=H&=u-9u)&%N)QO38anjuz_X=to1fQWR>m7PPr0?v&m z(2;b)j{K0mEqo0}DUROG>@mDF)HF|F4_FjyimkBYu>FO7E12UA@ORA}>2}I~6}dDC zmfY+E(>l1S3K{Hl0rIFmBYIo&sO^+m@?~j>XvTZ?D_kLTKR6FhU^8T5o(N{gUqj#; zbO4{Y9rC|R!t*jMOrfSaB}^3Ni}j$1{wW0{9TKEuWt7%AQXd2h?2VJ#jO>MB^ zlzr%krwBCPluHcn3K|1feG7dZe7}8{eC6R&G{UiX-`B+7FVG|44IU593Kj~T34KP| zOA~0aMd2Wlye3Lc`HTERacX6vP4K=9)c-&iRs}klHPjAz0An@i4QY%SK7}WYYG`4s zf%MTZoXCT~lgdRb)VCsz>5oC(u>?A%9r`>VXcnYA^c!X{GP!0WtMawEzh$2FjqQUi z-KMwCu-&trv+cGWvu&{zu|8#6vNz3jO__$Zh5-ysUm;5opQEoMowXCl2Hu1G>l$J% zVKz4dsj!RTxI7&w6gU~Ui%NJG5?lI%a$hc3HJA~68r*{{q+a2DNFgaBG!nzeyVt}+ zm=rja4(dJaNu&wbG4-+W^Wq#x)5n8_I*nS2l)Ym}Kg&rsru!ooWew_s!`OSTj$Q!4 z;2(AB0(MP5kz&*u^ST=N#`hB$WMgU!GN;}edYgur>ssbobKC0LR^!CaW&dUSYO8C% zY5Qs=tP3qS**(YvU`*c(KNv6lmaIiw(pjQmOmSDLd6h=8NiqrD`6;MB)`rX>Hq<@% zCs+}^*&8I!bO?@yx0FW?y)is7d;`4xMnY%tvzRP(flhjn+!3tb<7yjBJxXI+`cz+> za6`lJ5DMnwp10_WBZgo+MUSM=pNk*sC~`I%>G9FA)ixsz=`M% z@5&53ksS<&;BlzStfRY7elT2%pwljaUb7M=+K(|^C9t!2sjErkq(0CM7?rUaf58v> z+cbb3WF277?g-d_+Y=r8?4Lp3IA^PjRHDN@mxS@r!QT{T&m zs#KCkBhS90@QQ04(gKxmW)utM4Tk(RP<`A%-8k2`(Kk8pJ@^GWe;$t5^XPLDx%GT$ zwi|*P!bRD#k^ee=Cuno`YHo`om46Y8<2k^fb(%DCQzu8sEs- z#Cz-p{n+k(!SlB;`W`x^DcA<>j0}xl(v2t1l5MEs@Pl1v2;(i&Z1$XGA(Dl6*$>)1 zw%@j8_R;ocw#(KyqNAw zveXqzFly9AmTslAK;(n zQ@ts^hW^j~iUD8XTX21-48Ad%5AowLY0QTnGf8$TnMy1)pHDF5Xpa1uo!B@UprD*V z6h;U05zY$^C&)dj6i)fRm?I4*>gdlS4<`ZzP%?I>{iA;Dp-)3eHaSuQ8Dp)8&14MH zJZl-I8V8t9S<0cdUupL^lAKQ*#~f*nPENhEsI#PFmHn+PzqP1ky}77~G)!s@}o+@1zW`Wb<3g-)bLs~=m;3~XRH3L`tbKy^Q2G#`(!2`kW=$`Y1 zgSek5p{|fc9EH@X1%LgSCT&V8@$Y7*;bY;b8QUZHQ{R3z3T2CS|K^lK+TZ zg>Jlw`x$zMzWKl4S!9?*{OSJs{ywGx9G#b*MhycEL&UCTlKu*Ezh_~0 zH3+HzL-Z+Br)kLadK>AWTcPiVTcSL3iFstWXDY+ax412@Z5Qpi9Df``9S&&Xu;iJVTE3@Gr43C+B;BhnSkN7X*$~p`H=*&k=(ZF_G?Hesb>3Q?PzV#D zCLjmTXBfytz*!REj-k*$T*1aGhS;b71VZ6^Y^_IQo7D|ls;^1{rXf#+*2oiUD$Wr_ zp@Mh}f3!h*Xh{(KXUZGpvdUXIyOO9bQ|oGjkrTa4&L^*t9*ePJF7bwVT69S#a38di zccA);0h_3+&=l!MQGvzpR2#XYjFerf1o8_d#e)J<6Z97%GB|o(HyK$GmFP!?-=@9n z9ZN0SX}ilQI{!G^x-wizG3l-qt^%$z&X1@Xr`lFox|sVKYZ~%0>yVzi5$~@(YSWG& zW9Pg?A}wwnpUGLdzoD|>XlQcyFftp)gg=IkhmM8@hD{vJ|K$q{cZHtfQzSH8m)=YJ zs7}QyZuCceBmsaS*XNg zS*|5aj2{*EF}7Q5LQHAr5c?tPPd1E9D=Tup#?cy{hU~hEkuh-hy~noYwNRBG5&jdD zkfwCr_tZPlo83Fzv)4_!H)PHRRV?Ig>iy^~=X(LN!4l*Heh)q476`k=M^ZLSePf|G z{v7!lJ%dckF4%2Xz)zI}fA?5l4M_?uNsi3Kl(Zn+PaiPJzd=rbd#XOM0Ls9r=v7{V zO}7wwfL@U;S~lE;e6*^*12G003LA6UFw=Ai{HE5p#kSguI$k@DJ4?GNyPCV&;2WFd z%(NfEExp#V65i3zrgFwb%rmMnc~{>MM2m{rPG!8jLK+8#%X*=PFoSQwZ3riZTVM_x z2^jISwhLGThmkLO9}}zBfzilsnG-sN8s8*%gyzy=`98AzVl*oh0zV^5&}**8q-hJb zd3$IJPK-uOF2gIsbHhnPKEqUIJ?)1}?lm&7R^o}_p;CMVy+e~oLFlvp5jTBs4EZBB zq7hvW@PIy3Pv{V6Am0tujVkW6OQzSRckm+C1M!G7buub_7YBkAk!_JJzOpP2iu5i zn48WG`2E8IkAgXH%KJEtFCk`%3#9|{J)JD^(19l58rQYy+Tr64F)mBfK!3$cheS6nYy zkO*>4+Z>&xuTH+FybOg2cQtE&dt+yJ7w<}rF~$YsFETsZh0iB~lPJN((ee%R?t^HoFE+yf-dwG3uKj#|lZTKF_q zo2PIi-9bwFH0gs>Nq#5KhAtumzh(t^3cqPzBMz{j;)(3!KJqI(`F+UBWDit}JwP}b zL2_`Lyo4&Kw5~0DLrKxeQ2lJv3Phj^);%TOQCFBu^kX|s5kjzUt z8#(m$OUMn|3WdM{<8Z@qW)xkXYDVrL4(K}|rTVXS7ZX#fvJ5G=h19SzO4%Y$la`6O zLApp6g4lcQL84VMcPG3!JQ+Deh8>#OvLCv8sEw7>RkvRPvGDJI#l=&~_ zI0fxH9RIn##GH)n7I!o5dR)D@g0Zh%{ZQY3uvN3JfF5U>G2ZZb?I3<(x*Pw(h zpgRYhSo??!-`gbQHTKbpYRi#s-CJ3O8Rc2^mR2pw>3XAkiKl(cRAahn1iRL9*gDV_ zwVgv3UEEQ~k>EIPXYILdg{}Q9(~&s7(zMoi4U_a8^bs2ctmJ;mPxmlky(j}pwo)*&|QHlIZq@fR5`=oX#K8~RCdeR@x75^lyAZx=8l7#`X|^8 z8N-_cA<#i4g}k9X;gj45zC3o$FQlQ$Q#FJWqFyurl39JI8(P9g)C3yP<4}Y?iPVOd z<2W`b1ZDv1p-Jrx72l_5Z)oLa!%4La83Su@vloSu?uafcRN2$uc$o;r*#qJ*d7nB; z&u7*f-WWHS*IA0#CfhGLZa5pcdbmovemZ+P4?2vFw)X#Q0ZTqMkEyMpC*6X)r#}w9 znlrLZU8fuX35t;Biw5wIcJg|DF=~$7Tnp|T_n2GC<>fwwZ-&=nMtU;bg0u1S`E-7y zkR2&^HKi=FSviX{=Z~7MoxrKk0BYez(E5GR<%asP4VvYWt>~LwuaM3v2T-#F77UP)f zobT!$6N+JCFT@Zrr0W4_pOP%(2 zTur(t%)y3iK)4s!cI&~i>l?IV`qmukur2sGt$bD+Ms`Kt z>Avef5KGC6u5lGi#@VoaXKM{?g18fFo(Q{0NDRMu!vno7sW1!~l2scJG-2^-> zf05t$LvA2{k~T;KK-KtyZtRhw$L{cPw3YrDQHT0SpEo=(y<}fluiKY7Pq?fxA=frn zRo4+`A!oW{t>e0VqAlH0lI?FgYpB3nqwJ(j-zi!tQd8@yo>6My8Qdl95YG#r_y|{t z`x<^5-WSdc>2OC62~_pB_ZfVIFPAUHH`zY}bDi~}-{Cs^Oku7#Q0gOhQi`L49vE2@ zy@_qm9wHeOLY683fi~RoXV4?W>a*c~&Q0Z~dHOQ*$50blh8NgmYdc$cd#Zi6y_@|L@-I7D-&^4q6{~y$%A>zr9Cr?UjhCT*p=_bl zVA0@@KseAY_%gUSv?9EXTfk35wrNjEks2c{E(0@<1f`vF6lv7=)y{DE=Y)%;9DIA4 zRtMVfNq9nCsIx}GMN%1k^?oEHY=q}-G^&m`yc3O}D4vb97F}eC)&UAYU!;hxuU;fB zQLUN#h88As`paRCa;G3Hw$#9c`=dS4NY-9+{v?`bFYgWfWuln%?M5D z8}*DjLoKUbSE?%{((_`Wb}6Op)Cxi+UF{!DUcZJ&2HCox;kZ$U?9yA7;D=45fDJ4ZO5Ig%VB>?>?dtv}dR=9Z=phOUekNv>giLEZSs9krTr4||qn!UMh* z|Ay;|bC3(w3*E%@jSuV!OvL1OWZ-HbHaHn|lrGG29QT>miDM*D?x60{E=7j_KY{iF z?y!FFCmg^|orSOGGR}=pa7JH+<7YhlOug{@W!L}v-&l1sqL(5PavNQ$M-EASuy0+KfjI57h5By zt}EhbYHwie!Y(y^htepCE=0wVKlOKX_pue&tnE@&WgQ47{p80|So|ye^t9poyG!Ymc5CR*5jgZ@XJA9e@!uJ$&$On|~Dv6t`1QgdT;KiLnM2JOXR;UCf zK-G~B!d(aQ4l-?f;HOH^ZG}#LFx)?haJ=k_ctG};r}l%wqno-IIftjzwdx!-MSYzPy7tCl6!oVI>QExuw?ZAI*r>^A#lTLD`|YX-a7JkvA; zoS;jLp7{f%)*zy`K7fwgr(RMX%Q12<>AF}=+$2Q!_2BnxMvc`JH}tqrjZm-9eauN$ z;fW-f;@&164X zep+|f;_RjDI{Rvy8@cc<>psxImt%vp%T&pD6FP|Jn480BJ2tLHOH6xf9+8vq_Uc?PTrfqSkOnb;fm1*is z_}69fmU%PKMM-5>3k}`pKs4c zxkFq(t`_d{zvM*5ZBI0dR{6nv#M;OekK?Y|urgn)m$cDSF5L4EIs zBj7AJqnViamIV#Ii8=+J+-vzV-lin^fRtByCTELIh0nIYQiChsY|B*01-t-{1MPM>p&@W33;3~aV|PBr@RC&?-97Va-w@~j0)}* zzMqwF)EklVPT?JkD&rIa^!q}xAN!5=NE&^KpRH|#!tC`R*@gaw3b>5ucm=1?OH9tXAYo?& zd^bGmwIA>U`J!9{eM&odplFgBAW!4!< zFB1)kixM`(wTh|j4B0MQTAD8y+RzV(TDn=yXTq!&ovly)I)N&4iBo|yyOqdlFyZG6xD?*p%b_0e-y;R_0F#1qn0d4y6A z3hsm2(#XB&34J&6CS`|prKZts8qeNF4LjZ5#Zk^#!)1@z5pyl3TZ{tr>n&$B=W>UD z3TcJiVK*aPy}124cFY@)huz3#v>mb*w(hZ9WIvkcn~odYbQP*HkxzGCTcBK#lEekr zpJ<^M!E%8!zPDb{v&-Ee^Jqr1jF^l98M=%+=^N6!rPod0o-U>L%ovq1DB~G^0-d|F z`-gjjNA+~~*7Pm+mkh>+n}KIbD?7F3x~Ak5rmrc$R<|8=d~gM0FU4mhY|gSdOS>$k zvScP~OqiF@B;iYZrFb#!LEN&qE|^63iFL$Ii@E4}=p5%LV?Sr5EkV;-gOQFWA`xCG zFFoaFherlq`gi)id3~Nro>HD}o&(_O_w{9grf^%ZUicQ5B=iy2NH^v8$~|?iwhFyl zS#+k^wYTb2RMDU1;__lt&>y4?@-U^CS^;DXI+~)ZN0gvMdX~Xu>TiC<7O@7b{cX!^ zV{B)ww=E4U2FrG~3i}p501MlWJ;J85GHbO|w=70V`&G+Ki`B9gx5+4z(>R@3NtGl1 zM*Z4UWt}*He+mlb?ZAJ2n=i&2@8L7w4R-Abd&K z5?3nrysNykhW)9ftND>3AH9P36)mLwlxfK<^yTV@XF`v2BCyYY&bP`t%fomw!B#Eq z-io}5vl+uO+GNbjIFzw1V^PMrj9f@Qsp|H)Q^8&?>&xNq7&sLShT5UVY9Q{C3Mkjr z#7N)hOI;r#7ka6~(7Zl06PB|U9a6z}SZ%hVwu-i~wr4ilUfMp z$5qF6$2&((XBOvkM{ma(`vF^ub-ZONJHXro6MzDS5}2~Rp-NIM$x+ZHevjUZgyF~A z0vC!Mn#%{^=Z*z4cR$xRTr^}0CI|ZZUqkV*&U*vw`1|f-?p^LY9*g&!cbIRPKX-6u z=u)^MFAGnk3yP?X(>*87Q6rc)h9AbKrcLGo>^$}r8-Oyc6rRpcmOR!0)@IgsND(-0 zS!*e6InL%|FPrU{knJ&$P;g25RnZn&Go`Q8PZ+`lLkOu4BnPhg_d}634s6c3IGH+z z--1&-9Fy1-H5WFwoiX{+VG{WkGp|P=r>&xnLLA@Ek7Gno~w!GlZ(Wrg~MvK7n zwp~A-=mdpHYkCPbj-Rm6cw$%rT~H9@W;b-=B-qlks7usY(3|@r%cC8XdE1#m2G%&! z_z^VPtH>ppXgXl*W-v0xsj}D#Tt)3yQ#~w?kxGg*JV2$fwJCyX8W>(^+sB3Pg+1ZC z*bt~(A>@)A5y(jn!ORzNosjLjB?O{Uju zAzLR$oNGDcaZx8tI5dE#Hi6^ZK;J2szg$$b@ZnHe;E%7aH)eoc^1<#_H}GxT;aIi zvAtp+#>g(kdD&sK|AH2xq0vuwA@IP zq}ql6)0??UvvfYHFj*2Cj8(dE(VUSq_<5Xa3$P7es|L-F9^e(y;lHUD;d-pBW>tA* zt5OAg@)h9oE|iSYaj~ZOP#7qrW6GAnMYx9iCB7;$;TmbRAKNZpZ;LsW+inwyyindTU0 z7@9FJsCUFw-QGxlHIMvN*ufnL8G~>AD)NFlde3`?dAdU-9`C*B9pmfiKOg82Qp4Bz z-Qqaet`5{rA`_*EehlcxA+kHQ8oxH--QdBEbka@ewa6(r#?*w;{Tn#2&y5q{hPj5s zh7xQXl&8)^$3gN8rcxD{H^2yLX>QMZsSKb#=trC&?t`{? zA0GMoa1XJOsp@0dDYX|qq4&NWa$^G;7wF^{eGhz_eY1QAeA)cl{S5;-f?tFELU+OS zHHRC3R5~x*7qi&s@DZv|)R{w*LKVWBX< zi&I*>lHVlXPM({bklZUbg-el>K@F}iw>}}UjXMV>E+iYunOA@OyJHYcD zW@yfc)C}^v{%mxCR#~|xmgldBmIY4wihKR;ADPjNei?N#mS^ZQw`Ep$e|KNTbJEYss((LHJvVqF6Rd*ZD zYjvvJznvyy!}hi^NaP!gx4?x@K+-}p(|FSjQ=EA`l1Cb|m)MGyUzSbQ(zZvoS@r}+ z8%KG^Q|OGE+sau#vL(%>jA`^#(xl%RS*?DOn@JhiUv9t-tU&lK6nw)&)u7>vgX;V` z>efG@m!S)xl+fbPbac)W@M}0G+bu)e;ZCBs{ZL;f3XB*lb(AkE6}1hKNc4gJ4!M`E zXqam}VY+4Bz*c|~S+V4{=CD$jkFB({v?N0Bd?6=+EkEq?!pg0 z7=GuSIPH&tXuApeqRDb$8TM%@hujA{tuabzI2??iA&dkEB1Lype+x6_UQ`I%;_Gx0 z$mIK>RnBH8X~<<@LDs#&d}k^e<`@owcW*aVh5N!}JPU?#YlF?OjJW_W%Tf4#OX%N6 z8%64>4mnNu1|@Z+;9VqaeDL=2@}60q7M?+#tDbsL4bH-C`99DvbT*uepCLRz%2Xfa zsLE+^;M-W>xyphab}2aQEJ&HTY@BB5VD12i%VkTVb%Is1&a%COek_Zfv8UNi+6LKN z=soS$DM;XH#4a%3MefiXP?9M_1MuaO>CM8MWw=j1PxK^L_G z>QXr>t`$lm6YV5?bUA}#ks>x4+WhSPeEx?18UC04zM%WMgDIiX;Wgn$VGSz4yj*t9 z6FwVW02kV#@Qm=B@H$M-vm#?+I{ysXgO{kSDo1MRRuU35&5&eXV0mK;I6SUPv1Q^% zC(O;#Ch-;O@^4C@?AL+k+CnwlE38`9{Da8!3D z?&{7)`l=D>h|rHK8j25O_pSD{bhpXenh}@rApKDKxpZ5``HaJvkKB517vDKQ7jT6d zhEut!!fNq?bXQ)D_ef9|BR8}GSX8ILNB9qnuHl$q)W(U^A9LaJTye!l+v;@w+F4#AG34egABZjNV zRpE?CDY+b89c~mZ6Rs4l5$+bA8vYjE!*zqR&jwdtqFh-?MJCBa-9lm`)dD{9oTjGc zfoxgJBRI+HS=&P$dEQdSa+w_lAJh_TdWIt@sGxBL9HM2Ih0x;Hq9(&1x(S<+Q_&TX z|1?n&P~6i@g91w-@*i8$i`q2hYWS@EF>`#-+%!@RUrY>m$2nI+6?x#*)VB#=J(SF#><` zY(oiy!t7xxA;oDBT_3kcPbhr*((UMKbR&4z^3gmzM&+m}*zsLQy7^`O9$f^^lAH2& zaSxu=qM>zx0)E2R-Fw$Fz*EhW4>^L_J&inXJ%7Ay{Wk-JKr3ItZRYz5bwm|vgfgg6 zW-4ve=2|(h$u@y7)tNX&mI23oqp_LU%Z|40wjH;xam;dda$Rz{U7SmD{dT3evb#n@ z%jmQJwr#XlfGfmpiZ=~2hLAn+hIvQ7z`NCmJPLZ#To6X)K`B`nTYhX-o&7&-4+f2LcDDSEk_x~RJsy5 zRX1H5E#DM6a<&lXH~PwWwq{PqSet$;t!mo$zrMdi(qhuHWE9Bk;J)iA>pSd^4NeLD z3d`JG{w`+swdKA_PqjLTj)UQKs0)QyRS<(xF&BJ6IFQ%ai>gHTg=2Z3u_G#i7r2*} zvHel6IM@_(PIEI;3uAXAIE3Igs0J7MN;u4%_*`#6sW~5cfHUD1b|Lp?AAJ#2@J_Tu z)ujev7j;O#R<|m;20YCw+9p+}Hbd^mWvPW!9nS1D>`119x?NVzC0CS(KpQg%z8yXO z`yo)+?L`tysxVyWAT$?x3A2PuVW*fPJ(NqUC$%C-xiArHNDDH)IvNX@AFv_IL2Gf_ zblV==F5667M_VksYPFHP=VvRhBhBYcVfd5>!<)GaPlFR3Kp$c?$Yg_~r?gv2hQx|_ z`2pd-!2tok@2K|@k|vJ0t?oma4>Q|<&A@r;`8fZPV3Y6@bka^~B$VQJ)i1a%?*1SgQOnW+e<`a@U|u1>e5i}e?3>TQ%%yaZHN%S_PP+cRNVTXJS8}pLTmX`#@HWNgwak|3MrP?DUhde_}$~mS?!O2%xEy*O9?R+Z8Q71O6}k(9gu%jU;WEe?Z-qC4 zCUi%akV9^%oK~Ae#OO!;b#epU2G8k4^AYx*<%#u+?X~@mV~ew#YldsPYk=#wGn=!l zqrd&3Z8SdFo7UdeOv_|T4$B?3HG2sj&TgiM#=6K4vKu-vt!XdWiODBX2 z+zTWZY{kUot+%xIq^GB+i)XW^l$Z3y`I`l%2MG)|8e+){hqy^X`Yjw7TyNFB2YfW2eV=mQHjgX%h3P+5k|i1)kq( z=mSR~{i!YH{*$O}AlGb#SG%%-Gh6|AW4_@vD#USQNdF&HBP+Fq*xZzYYUCF3X@+2D zZbLoV0X6d<%@rN0>#g5Rv_U>XQDkB@MoQ9Aq@w003qsZP7mTgkk;~xg_t0j7ZIThK ziH+`EIK|sj`)LIXjj^ar?jwQewxJS|RsU&>vJyRYanZA2yA%LPHyMP0u}AipMQiU8eXu5qoYrdcy* zWnGpRmRi;tc86md6z8Mus%^SeVmFxg8cFDf4l*|8H#`;}NrmWx4$uOM&S&VucN2M# zHF_ILn8wsS3Bkey9*DE|ZQ*@8oAn zNmTo1(S^HJAKs_^*cZK2x2O-)?x3~*Q6}QQpRRhevv6~tAu3Xf=zNB|m>1b}>ZM|#}Q3>2Kbw^Ful(~p~%y8ncJ`J7!9rd{^OZ!EmNQ;Ao zcmb1Zz8|NA)`Xm)NpPzr1fN06H6?I2unCEyg`uDv79P$y_)LDX&_ry9G?626R8CQT zD|-|Ix}f7AL7$5>i%vu@Qvw_IICU4e@=ugON_XSlfkURA5)ni{e|uTE=_;rJw=h} zH4zDtdl)xd4A=0EXQPs-59BK{4UW4SWL@l6|M{hNgY>otbb~R_c#Y6~1)*+dq)6l{ za?V<5b5$F(FE056^j9f@Sy;)P3fBzv1vBWNe}jL7|GB>$CTeTo?i?9P4i7`WT^eWC zL1Bv6Kw2$Fm2S{JOhG-^S~m_H&Z@*N;wKb2f5`;u1#%nP(Ic7NAW(I{X;t2u&DPLf z%wE90@&B9J3YL3pF(^DPn61dYo^I@ju5}brjJpM+du zF(_}d3s3n;e4KDi7!GZI6Qom)*7imF>Aw(nsqst+BX8=-wz3$lkFD=)6|ia9XAfi2 z#@HHKhrx$l$6OJ!iv9)4Kmb+YH_uW zvO^w*onb!d4M;_eMIRUlbA>iSF8n#WxELuqkD+4whP!?oh~IzV`mG15on1FAYKweU z+d$`iRSrmtr2ELT{R`hmY1yvKQr4=?p^-Nb6x`Ss4M9^TTf#cbHWAsz6&%AI1#upn z#6;U|U4p$vXESp6dPUMSm z_d?r)mEjz!87Ld*gEwtzFfEje>&m|t#!4sUB;*To+5ouDwqs9x2rBEvAhGX5-sC4O zK^q9w))n=tIvifB!pM9XqjUw)$E>=vT$sIl)?Lw`B(}n<9Zyrt1)OLnkx90}xXv`x ze8kL|7qc8Y-eR(Tz)q$$+mJm4l}rSaE)BB;mCnQPc%Ckh$;5SdgTnA~Jrh?53%HM= zNZ^Ry>-*|mh#5gQPajWN&pOX;?>AqUfG0RO?B=csx#c)?U$vtLbxGjQyrH&(x!`7G z&`b6r4``tArO|KvYr2li;Tq=bc%S>3N16+oQ!yJ%LDF_U_*}jj4B&elr{kz?L?Qhf z=yDf;J3LR*Yx~rtssr4;_h4Bx0zdx{^w+si2kbS6p{*HTU!Mx-4jYbbvWEd!y*Oo zdFTJf!G)qP2hoA7iOd-me(>?|3RC7-%W_K{>r(4D>pmzIb6N{n8ne61vrQW?TkpVZ zp*vAM;4N98YZ{Fpd1|hDQ|X}$RT?QSOw76~@z}1%LSt7w|oWX=smuI zxLo=rFI94BC7?E(fu6fCaREJdH;O|>W>ZveF+^i<)(M>_QZKRq-%E=6A8xY~YCY(l z*25Q^8QrBTLF^#GG(*Ce26tWo(;m|jWar&7bwzy|58_L2!+8+J#?n?ghU!ALfSNW5 zJB~yUV9JvD$YaQ10B1QmDdGnK?5K2Ah~tNceZd!jDgH`G4n60Y=-KJ{;>qxK_dg4) z2p!`R#AKOKTSsW!W+?h^Be8Wpxee)4$5CJW!9-vO=DHt=cgV)-PVNL%E(w`;4*CUs zgqa7`ND))mv=1}OV(6+am|L4~m~xxG8tWUMf>gE>{?W^H4kRYVGF6%O%w?v$;WYL% zx0zMY*1w`Z)9;`Nc92i?^YpB4bY!#o5w*Z3VLh+s7GtN<8DySYz6`u!$==-FW#0W> zo$s-46gKidgO$T~xTpMg;l5Z_cBq}SP~<<|eEkMu4_TA$LLZ?kFh!7STpNt5Gsd;X zuO`KOh23WfSPEL7Su~5^5@R{SQfwY`yeYxZ8q=Prp3^;!j){!Zekym-d!|WANTbgt zW5xovY#LN57qwOq8;Gn0bQz$tz6F<2j~sAHD}!f5Q$J}7plo}BGe}aNp^h4;v{vTg z&pVVR3i7})#q1}Kf==rg-m-U?wpRbYqT`V)$W}#A-eZQ?Cwfd*oESmYqmz)ocg>jF z+?+jOd2d-^ZE4$VS)r1k@3josz~Ral`WSA*zvh?0 znfXL4Djk-}$_g^Eb|MEX0b1!~Y(et>Kj-NO=5U!>5qK__q2nHnnbJWp?jA9DF?m~P zUdWcW?6*w9Jgpr1fWO!rHDMJ~QIp4T0CS{U$eSH($dB~gd`OS0MW^7~-$Sk@UlYra z1kwec{xOixrpgzPfZ3Zr&z0tOz;TYRHYA39Tne9p+%^-=fLm%eaA+stZJB^P`rRPh z@58%vRa3Q^@VjP!H@Xw&{!-*wEP>{!Ea34y5WUI6$k4h6^3QFi zsG%ZwY{!f@L5jQ#=FdbB%Dp%=%-8@<2ch1y!UQX6;!QHO?|-2 zvzWq$FaJ{XsQTm{P%2aP=ZI3s3Y$R|q6*V98J{7|M6pFJMX;YeZJA*?%AP|nzTJ40 z8A~OTv-PEPn|l*xfuIr~gVlol zK?B?ouElY@NBAywm2X3V6c^p0JBy9h7dY#dQP=1?$VjYhw3^C*rSqO`VM(>DvJ|mw zWECWTUpBomls3#~wql04fLuh(h9>l0^c$vmJ8_EN$G5dHnh$*DWKhrZ;Uu^O8dfL$ zNvIN&ko8kkw*l1b=Fq&^B1N@|AkL1&n>GPDx_jU)&Xb>Fli5LhFVI2(J_k4r?3j>LBq#=ZNaGGKxX& zBQeq(@tV+3s46THQiOlr)-Ui1(2^=zrGa8w@s)5+C@rc`za@x%F&!Si7RnE$wMxMQ zkfAk);(iNwuSp=3?18o~1Gn}-?VLIayj30^p6%)=Z65k?CpiB@NP_Ol{50&uX8yGK zxS2td!U}FO$IKMN*8WtmAG64?H^ZHwG7!`>0)4Hi1 zWDLKRY|7LYnhtUOA23Qt-CHAbz9{I}oALuDR5^AyFT zZc=}s2RjM<=N`3$8dR<+x0SxC1@+e))M1OzvzCP$=Kyr}YxEv{Y2qp|kE}v23sym4!*D}8V=dgT-?1fLgwLu6GZ~Jr-ef&gTZ1uOb45sP zv|0ea_Np`BgDoC?s9Qp?l$W}XzP%h%1L=(|3^$pLATWJLCUOdteP!Uaeh068p9lx% z)pfAcrm0<3S=pfMR4(Hl=!G=OkSv{p zGd`k9k^cJKB(@vQ)qjM{>E`vOE~b^x3gk5G#)&$V>PKG1 zjolO4@oI3ymew!F4$c%U9ytx3n->a-GFm6(Mh%WQ;ayvT#FZf+<{RKu+=hIXieN3v z_|E<%?}YVliKFP}Dxl+-0&l5F-!YmalB_jWNO_m|6jjp!G1%{yBV{$ z+o-ws8y+zsYBre(BI}h%jP_YMA&-DwHQ)~<{_fW5WU>S`3XCS6zQ#;L-82eSUMBU0+DhH0+EJugS51amdR8Fcc z8Ah6%iX@b-Aj01TiKb_?XQWhQ4iZbws6D~B+JV{o6KEU!;sx;(($~x2^csi+<_!KV zsE#^uwa7|Gq>pkZaQ#k1E9ut}rKpbBX*4ia0F7}tlmnI6=4@g1rTMIhzo=uRNO_OA>IUketjt{)lnv> zR;|)M-n{M!ax7kf3Dh6{)2rxvYwB<51L&)kBh5KGW)e|)5XfmI=-1H8_=tz_V#h^O zwIA3bcU2l-M?L{0sro`k!62>|8%qwP3~y1X2m@N?W+IcUNN;8yg3@{#yTbX%gsz0y z-vDMG^NxAMjAe?@smOgV4=;H<(NDhxc_>SxLy(VG4Mc;Y>Js$J*QGP!FX&&hp+89B zrgOu%6I@B8%{~w=ij4e1siTdI26P_@G=7>c%h^RonVtPO=T8({cG1+oq>sH2j z-1!Fz-Se@7VwKnyacXQ_+|<~aF&~^ez(!eP+YV)5ZZ^Zz(zppbOdS3f~~!Oi7%gRW5o46J0FFJq-u z(0LD*wJO@+t;e2?Xkv|LMUjmh7P@Z3;|P{q(pOwy)&!jr(y&WnOR=qp9s&zYjAbe!t}Inlt9wcPvSk9Oy@)Xac5&P zZn`;^O_oO1hVTiT2YEHSEfJfkX>7zYBgIjOgW5)nPKz=%1k{bZ^Nx|H<~MQMvK!* zsCks3@-OuHr-i%x4eb06qP}YmT4vi|g&-aL1cg}VP_-}@PUfG1z5N*;z#ce_u4_u9 z6+F!=@H$nBjMi?b4z;zC3BA)7xwD)_sw__8hj1UU-|iS%iH@=-v`0%kf8EF39o$-G z$IR^+ztiugn=;mAoXsRXSG=;XdSF*j3TfP5AzpT=m$gsP<@!uw7V3a?%q&ALV|P5Y z!@+-^X6}L6%XoGvrpzX5OY1yr#Oq;4^V#wS8pHJ#i)Amnn2mw{G1D{z+lA5SF^hr< zonY)|>~D-1FPa{k{p>jOciXK$ptaa;Z3paTIo`#)w~;PK z&xYsvC((ka3F2jSa4&izS!X8Rv}4FuEfk53n4qW(!$FY{$p$9>He_H7L+aaU@S)3M z+VDfms%^veva>Q@o-aKSd0`z~QY4>;dlD)XN(|2SyL=-&liiy#e`O5KIG_GF&6RfI zZ@IsP|5o_h?CnTbPx5Z zV07HX&Zq(13ZIw9@ZQ)LI-%|6!t4ytQ**HO*wxTxo<>zr9{;%vd)7SJTpQ|#av*D0 z#IH8SQ}CkiHnlciHAkT3ISifg7dC}G1ASQ&mSE?bc~cOdVVrTf;RUuL=fLlt3nf^( zfiT`cE_hkPOPqhdvDrV2r|djjGy8}<#3$4P8obs)cvsh=dS9t?B5ib!z66MR@kABq z!hRtSPJo}6#$KwF#wkWnST0Jrq!+?Dek6AUUEPFGh0r3nrCSCr_{;iF`fB)&dk1;* zdF|c{NV31{uHr7>?&5ZOrg$QrG2Z1~qi>Awfxk*HKNyB%xKaFL;i>ol8oN)*1Eg!+ z)s{u(f+&IP5cnQnf-;;3KHRg^2`Jr`VqVn~zWk+38N&`kqH&+`gfZ2af_(2pQ<`ay zIX8QgmDtJXTt8XbSj$*DS?A-~b6T%hidmMzbqm?Mse^HeAp?7w(V!$3Gu&Y^k$GOn zP{1&OIZW&5C)8M~EhT_BQi_r=CHaL^%>5udE=1l{Du^kqptkD?`qvw1Y8M+B(=yX( zs1qAw*E`zCqdR&;x5gZ#g5HfM>kp_D1?7M!2uWb+4Ga5&O9Ef~d5{wD#{1Dz#&gF# z-|ci?%j}+M&g3&rWq31sWM*;Sbyo+k*yF7LeYZZ868^^hmKJ_=wrH_$? zV0j7=?2i^y2&zN zOy#A=)4L#Se~c;42{6nb8m=P=e#rlIRCU02D@-2+@25O90H1plKFg!vioc|%(%Hb; z@=^8Z3E+e6!0(?(Kcs#@k$W5o)&r>;R8wjfYLrP}n+#%}GXZ8eGUiv|`TJ`K89L$f zscAe8O_V_2rf!f;iSwvV^XWQ9vqv>|YH}W@n_q9|^zUw(zM!rua+xF0X-eqb2-O#c*#FL6X(8$W5^M zav&f33AXqtM1HakGCS*#twAz6Lw-UIcV3bpb3*<29yzjh;v$kkJ|JbOI#Lna6Yq&G zVQ+-ml2qOs3m41@q8(>KQehIz-)|F5~l0!p3ATen%5%sK?>%FGvQ# zK-xkKAWGv68jAPm1u}5F$U^y}`!|E*i9zIMQX=z%J~x>5(K{Iudgpl*yj71rL4D;RQ|gh5Das+LHYhrO(D=1ibR$4|+x1EM8~P0(e`aFaL z)__*HPB*S`c}A#9=ibzkj7NZ4jiv$qBq%+8N;K#~iY>T#dz}(G)E?(`bc}L1J2)ph)vouhG45vI;wE|j z1;aHn;0cza&c4A^{ttRsA3*I7QMFKiSO1-QU(~hMub|_Wk=tK6aUaedJ;jn@DRA6P z#XRC$L}jAI_6LBSzKcT9I(XX0s&B4!sB!~EM8QDK~G+-{s{G#cB8Ck-F-O z@ATzw9)v4LqG%VF63XCMTm|pwK{y}R$C3Lpj&ycSalM*To<(-bd6>i3W!GIMPpmj6w?;dab_7UsUjuw zX54hfqJg=F-n+%vL407CW5{Z-(0~6-j(MT?=}Q?h8|oUG8%mJlPw8jqpX&PRPH7*a zs#iokNTuN(J6m;``(-QDZ`A2BRbo?CCcs#CZbcEm}v7@n6YtiwR+qwIM0RR=4W zA5YTk$}YseIHF-1J|fDW^mtB!OqvMa^(i-wdZ<<2fWbHxg{5z(_%`(CAV%jvbMB$@ zfWvO@Z+~LTZOf9n3bt3Z6df#vE6GEXmnPpyu9#9TwYY7deYazmQ*_Vw=s?wc4c-ck zi$tOo!O>JAzZ+5HISKAFyCy}m4NYRT&aCUq4rzreKmwTm28JC>Oj78cPBRQQG~;hB z&<}e~wyL0$wUu?Nsd7r_WAuJqdVNl2afR?;d1LrPkF_q?o7(zQWVq(K%EXM;c$hq5 zW-&%rO{bziQ68*F4_G&A@lu+u`0HQ05$(d-!hX4md<)m#NzrN1U(rt7*;K4o0v=F{ z&<-BYZT=np+OJ`a|D#YUtilZW9vt2&k;~y$;m>diT1)HTa8F0&qO5>{L5v;=0hzuC))gm1o-cELCr-XFF(%w|BC~I*K^kxsu!yyw80KI?H{fvY`gx z3+_Z7QxA1VQFV)ACR2ribUoH+8fmlY7J=e?qx%L9cC=oGIZ>JQ>0$VXYGe{?wT4Lb z-4HbxMYX7->%HF)FE$nziF=q%D#Z=-pf6HYuGif~3-XYryygd$%|~@z>WD>j8GfrL zsy*f-hfjDib-mZ43 z2pw0orMr*jNBOmK9t zyKHmWPhap)vQj&4PkE72DD`FPQ`>&~Q-{hWxNCwa`{Sz;co6Ip+7ZqkO^;WU32edw z^o0wkn`%}u%}lR9pf6^4Zzv*m6>EqY>HMEH%r~UyJLxt05D`6vRqLiZgRjYPYNf;E zw36CZsC{=NyQ{VF+WepherWvgDF$h>qJCHy9QAspqixW0W$Y4xv&D*u7%*ma&Sj^h(hy0^xo*Z0<+3$@YSp=;r_kqt~xM&KJ*8{hj0AS`Yu_o;^9 z`=CaFaud3 zPqX7DQqPsqx7Ul{Z_ewQ>Tm(lZqQbwE7yXm(*owb2=8q-Jg_RNlgj(dN}J&A=EuQp z9*&!TeV{+!O?L(rg0bjHOlN{%hqu%W?KL%hp$Lu#F=WJjsPw*4n(!A}N#vGrV82UE zaReRj9ylDAi;jr=FMKw1oxXkAKq~aE#@;TTk?t9;YfhcBwc{lje<|lof&0P;+a-9Q zkL)8I3!JM^xi@+z`d0gI1u9Da{HLJ6Ye7R{GpZ14z@qO!+w&s&VHtD|-7LLRpW9HI zO8=^%tN2I^lB=@7^K8g1H{N(yY%V^9og^A==xzFley4sGSnnIUjzqGp+AP{^+RvKT z#I{YEei~Ul9bK2rsz%^y+JUagK&`Y-xe<4_j&v{UD^}xUYC<<@B5s*$(ZTwT`;>$$ zUIAQdJK`4@6z(euQCDhJ4e4BdLrp)Tvf#wDgg;NFvpZA3@sycR&2XR4eJQ6jGk7~- z3N%L(>5kXt(R+%yJGf3beU5sLE%w@WgZ-&3(bm=GOkJ5;4X*6$)V#K)_QsBk&eE>d z?iZd3zE0%)@uBYM{q2MO{z!S8ebWFO1yw2>@8*VYWbZ2AE&s*iB_QsF;q=jP%&?DG zeH83|B9VB!p*~Jh_1RtJbqTm2l+rb%#@+d!uKr7OUv6r8@lgt_c|OfM^In`;Y zjdpN8yr@j|r-RlVRn-OXoJzn#xI&%2lYV$Iu6J96g{TzuW8Sopd;I^{L*tn(C8N}O z6Iaf%>=7k?(;dlo(^1PQDr~|rdrnl2Op4q?NmLaYjb2WT;MBkaFvzcb3(+I0>K(*M z>*mhxzUTS}*R!-P!DVp;(5at}f=_X0Gw>`a&X%t2t`_cWo{ro-vf({dmK~InJ{1bD z(XUiSv&n0parJ4!C2zDrxQ zdans}$%13>WV?hS<3~UhmNX=+Vw(YYY;`aK6e$hnlE1Vam23MiwVFH8l1IGFukm=`?OX>G+ z(Ol9#)h*Gt;QfCTcN?>sHk+=2o(-FBnC6=bm{N?FjO&cMjf0FCjfX@#Yw%G&8^u@; z_sVp-=ftB8+8f%r+LhWl+)kQke}im0LsU+uPEqZIAF+y^bVqfJ+i!yEf^s{owk*oG zD800UfzuOD(zN&x-@}cmKf2sSmFxJIo;Vb5rYh>mzum^AWCo7ri*TD=C^Vo7xW_GK z0#m&{s6m$scMk1Ax#AYRkdA?!{!hM1J{u9}fMOJH1luR zR@i3PUf8PIt2y$c$Ns?;b=UE(@}&)|3VxFMg?EzY1-vpRpty5Z*@J8oR&_@Y`iQ2l z_9R{5+vwXBr!Kt0J*0-A6qQjn*rjLn@AW^){(8e5B6(i=XlFphmL>LB>1Pbnbk$4) zw?7ut>~GB)JXV}|w&}nFrqdQD`&9#55udyU**fIGd838Po(VdgUltxi#S z19i?MG^!>1N{4_j%SA2J3~k;6@ON@DX%e_MKNPyMZYx0+jlw;%K9y8sRI}SKJBh;u z{WBBM^^tp#nc>9HywC@xsc!?_@#jYkHfp3ocj;FBqgm)$kjobcnfyVGk{uipxU4Mws7hM;f zt~3$2g;?K|YC2|dTie8}i_IT5Fn&OqMhRIHwkKpx`!*qW+PP`2#t(>}7q5%g$EDDl z?Gy9fqPFg`)VIvD%m%-2H@-KHH^zzk^(S@d@LZ^)xuzPeSVg7hXM(ye)KvPx^tY(A zA=o0Yni*jFV1rPW&ah&X42?$}*}AC~Nmo&*kpAS5qBV790JG-PZ#9nJ5XTc52!US#A#$ z>9ze)ztj{bf4!qG;$_|E5tR<(Ebvgbo>{(A*G=Ed@IQP?7wU#_&$$JbYL|Mbs;BA> zs)9Wf-SM!!OSB#VQ+{XkZX_jK7fitr5HGL!yF<);2cm&FGn_Mg0xg;KA$RBqUKT~9 zQfSWh3=M)`w>bPX@|@N5MxREFoKJ)BFuEY}Iy^A^EmSJh6z%MW{=sNVb-*`ghAWRV z-kII`-WlUwO4j@2PVz*(asJ;ROREHC1}3m)r!k*#2j-)*T2k7|w6kp}TljlqNp!C~ z8%^0Ms@Ll8n#0=eXb?BRlQiB`*mTg;)_ljjz?{K^{e)pVbx}3_Cf$1NVRR1vRUKE& zSKno3`%qmT-M3*N$@VcNE2?gy9s`pt1fpcS5YHUfjSlEPXf@3vFQp?^%ZeJR7wSWr zj>P*pI$3|28{t5{cRP5tIdN;vs^3b?YmbMf8IZ7UoZM$uUY<63AdtOJfV=0+_zjKMJo5$=c zVx?vu2a_lkTu?JbDX@anMcG4%Jjux1&}+1cN@E z@GY7vvLf_ZdceeJFl(kq{Vx^=lyv@+ptnzXgC4VYs3)EKJviU5DA*2nbagCojHb3O z0EZ@>x0O$e3+#f>l5pqfU;$hh>OdnkJ+%4t&-EVtef-Nw?7@}{_D%v$#m`gFLb#yh7wCVU}O zFkC47mvvG;JcbGXA{717g$_ykV1UPjF5*;Y-=c_=+H=BCbKuBa#BXT(w_SjVBr;1-RaRdQ+Zkt+uwQe`u6)4_)`Nda4a2y zK6oO1yvo#L#iJ_vGdHMNv)qPMz$+o24|!f-u;EOOgBF zS4P7Tc`8+wj(`iC4$J)m{j%2KTKJuAl)K{D&>AhL7C50;>6on5YpCFlQ@j5U-PP&p zMyz2v^K^7)M@e^u zqm|>7;|A(5-5iyi`CWVIPs`}RZ1c|b_YLgld{rl#-H5y-pB-ktu?uaG%Zhr+Pt+A} z>EX}Exp^Lw`!%XE>M^*hUDRIG9>>qBBYf~g7~(_G%buz20va`uowi3)gNeLar_}{? zmtbdY#C5iZeug1MtPLx-0JF&?u%j(ZHZbFNQ14kG78TDJYUsb9Z68$KMZ2Uajw3sj zIhD;&aNNMXb0dtAwnP z-zaZS5N^<${h*9hb>n0e;JJ*Tqjrz;nV)#HH@Gw~lp3I`-;UN+3Exq;a$S8Ryt6%T z!4b6q7uD94!8yxO&{5Go3#A>wHqdt4zRr=sX?AUN|IZr}a0D}i-iPPOU6qT}mx#r6 z;2^vP-*^<=fh~9?S2uM)ads8z4<*Fz+#>GK2RUSL8L|*J?}!`dIGT*Z#7ttMp^%}L zK0hA64%i8gR6!z4E8A8R0b)53dTvgq}#r(r(r&tCR_c zhStG`!8?H_fin0Xb_s&NMw@G9a3(qdlTjc&A8HyN7k(Ei5IQa04xWJ9Gupol9|e~u zpIZl`Z;4ay6rEYQ-Bx$rb?$P-y;2u>($77hh3SXIK z$_=V%nj<=mVJ5ZFKw~!Zc32xjt@UH3#TG>|uV!4KxCgP(n0|Qrq{8mJVA> z(rDYFSo&5q0Y{p2>TGnlhO2U@>TT_Zhd ze2x7!919bJ^Z70-;0jL)cM7in<9rq^!pZb5m!p$XBC?Y>G#7or3$S0?!pncelRu_B zpqhrqP7k#iJ;@k#YjrtvIp?cHSa#{~Yiz9PpuMEqrVrw{d60K=O=Qw)9Eelg9`kc} zyK^nQEgdaIEql$g%=^s$Gx=bYG{SYPvUZW?min8jvdYQi!cAX(CLQaOU`P82NoWKP zMH@RzbZJ3{r+=s~j@&O%k0>dn2`RzwT?`i`h7XsUqRjtRkr6CcJ9QdO7fmIN6ArLV zIZoMFnNRT#N?Ufk5Ql<%C?RDI<_j$MEB&W@&%H}L^AIyy!_<1ba~J-%|JY?)DOulLpx)(eu9236X_O2n??GPhIA;dG!x4)1^Gcg#Hl|-y}gn5eMmJ|X;M4|`85%z zUnl&s41!ZQ!#%4GeivQUwP9LU)qbVlR+}DgU9c`YK}ck!%a%zuOxsiwW@=el`CF09 ztz9Bkwh&qhPnqgX6p9IPg23!eFLaXsA{V#7)o4yf=p62O+rh)H!!7$Vx2AEhv2O$m zu%4enlf!T#>77{cX3vizX(4nw$CLf9z~7bvGyS!E`Mv+5<8lP=<8~-pK6B2(9qpMb z0Y};zo<`pOz6g51lei20E7cFZ2sLMpUl4EY|3&lQdAtmUKUA!1W zF1=G5r{$LN*PVi{>rMGCYt%AwF8rE^^i66FKdKU^Y`0VlHp`*lqre5wASZm?=`LpX zHt~p_hp4Z-L}&I4nu#&!v{Xioqmyr_e{(>T^wbUw!#l!D>D$+eyk`Pc7k$;L)0o4w(KOEd9k=AcmhqO)<_zXbrV*x$rlrQQAlrB8ih#hZ zq^_WHC?*Q4=qQ$x3(68Fdp#PRpSfk^kB-8@a7Q?Acwp#{bQP4Xl0DK>S|(+K>#z>D z=bYifJVhDA-Y?;a!lk^WT8i6hA#DaQ0=+;3oFyalRz+a1U!?Y#6Mi51E`8!wJ0_qG z^!AVSmG)LfDQK`eE4(@lPJ1hzHJ$w(yX{5ob{HVFZ0^+Bwr=RKbake4^>#P+mhtxs z9u2LD?2~sWhO3HezG(Y1QLJPbMo%#hNYgtg80`{Ai-qZu9TdkiU)0kZ>mc41ZQ?0h zzvsZbiWdhPMp8L{z;n2_T2jg&I>Yo&2g}vu|HrAYf!>7*qK>W+ zT2eYVTC2hEHDNwv)NRz#omB4xBU4kURE|LbX91nWtK3G?DjtGc{0IH?Af9{QNl0JfYFM^jzKUf_@{e1#?QTf)P?VKi* z9>(m(a4`HDU66h3qjHL&N=da_(^z*vUsXI~d}~r!8e03~EA=>LXUq;x+MJkXOl%uCnn!g{=f-3jk39-6FiwSFwv?;SAnD2 z6)gj*>^8{MufjvcIuHaI)YowMI<1+Zt-{Ua5J>76-AQdFZAr~9)hOjNVXnM7n#g@* zb?6Sg5Ia?;D|jy07p7Pln2oOkjRG(I+n7u5@V)mcym!gkJ3T>EP!dsVo8sB$d5uo> zG8lxFaK(rL@3|T;VR8b>{pxV9&@Y_3U6M^YB-N4*273n&1j|cn>BQtGV-yePNM z%$S(um_W?Hm=V@Z7PDoeIjy;$sjcyiVW7UXuAR1uri40x>MFWfLOXnW7J_!@%gptH z+>7(JDLR>G+AXs3FQYMR;D%ug6$!1ueXB+IJh#b?bj9kR<=a;nPOY^`IU9r+nn7Sd zrfPD~iyNl?f~s*x#UqfPC%IkRgN0DTztL9)=j{64d7eM`+-?L*ZAZiPne!_eY<6Zu zyX~vNJEX-uWuR@7?Xj(vJ=uQB@xqzcz1cIycRr8{54t~5jiP~Sm8QC`hF%GZX($ZJ z_Qrn32-En<;tbAGWBSe`4E3n-=5YciFnetThoz~Zn&CK;v`YFU`uT$PCG#%_T+q98 z;{WnFPjPpzD%=$sG7;RaybX5p7Hs`Q?GWNuSM+B*Of8@3H2Ts^;WF#WYp3FQUKw7d z8cfg=#X3B!3xVM)D#+~Vf9Mjmiev`4_!KRKr-4*|Y53fUXwX;ncJ$uxcJux8y`+0~ zC-_kk(T|uR2ZhgyY^wcgALu5Rb}X6;BQ#O<8~7^K74JZX_LXu5xA#4x*IwX zSq4wNj(WBBs@^S@Gk3DQquZDcVv7vbjN*rBc7sb7ds}!FvP1-a~(ripKEB;Vix42d)y|1!LC|w*kM`7Uf zgM)JkY(NE+H&(q?1msE)msBk{%$L)%!PUp1vpHdkr%68ZC)b}+ zNfnYBB;Eg=Bk9}kR=?9G^-enUTR>^HLelOechZlfg?}<6w@iMV{3kgz`EE+X)SaoL zQ5o^VC;Z}yqiPKMR|Kb_hf)CitxHi$C8^tKC2ddrSHnv&WE9M6%#|&ftjX44F-b9H zW9!A9jC~tBGBzRhYfPrtnAr6(*~yJ5CAtQw%mCGU>x4jF@C-$Reb zwd}8}S?ckWd330kCC&Uj^ zl82@oNG)zpb=-Ho@+|cE{MGO;jwd2@j2NP~qo?Gx^l@6MPB3RItvjSIB7Qd>Ge1E6 zbZ+eWxC!x%)4WR4E+Hl1N5Zy*g$cTZ!f8_CJH`Kl0>ZD@&avrYZ^z`s1w4(lC7ybD zEVs<_QKEfg%=F)0bAXLKN@i9mufw^rL=T3$g+%F5;F!OaPw#Ez`9cLFxO=!>J8jNV zu1u~6Ot#)Q7CG8dEMK&rw6C!j$H~%Yx7g>}2jPdi+10}H#@on0jqH3PQcf7B?5SR- z-LJ1EJ~S3F8!Z{FF1X`MV|+19Vn$mXmeQ6L=6vAAkHWI+DLw|5P);9$lfPZvQ&mgp z5T2kVHz#}*hNwF5n$x@-Pm`SPjj+bkxKi*@OLB&s5oZ+?&(6E|dQN+H`)2y*1-1ky zOPNBosm^+ZmW1}exwy-p@`N&m_DaL)(!ep06mT@3(4PrKD#(wSS(a2~;7)ATZ#0Yp zXWP?M+T6^18cg;qIAS+oiRn=~8EMTObm0aWO)E`%E8p99Y}_u z_IWDxvzI9D$2SF6tOJjFY~y0#w;rs*mERx8$S0*9dKc`o2G& zf}YpzTBv#sVNSftdC0lKxxx9x`4_3%+hg&*_ZIM%2owx%lqB4AbFsq9lvCl4Pu0a3 z`iXChEzQj>sg?=W2iDp+kG6?j8M`)iV(jSHR_JO4@}5a=SUFx)g1|rRZK!G_FrVO%=X8&Hns`2 zhqjXTbdIZzI?np8bZ)a}x_1Z;vgHG1$o^BPuxmyv+`Grh=V03Pg8!rkrJh~i#V}Bu zXS`_oX})3UWR0M;el{i{Hf?M$#*Y3?%NR?{R;$8V&Ccpa_re`zTPT?x`h(7y6SAEwJXGNz5HRU8n4d+^CW|z*L8PA(dpjy)7qd7aeQ0StJRe#Y; zCRbz!?cKxZHZC%`O+Cyb%%AZ!NkwTipK&7IpbPZL^yX^Nwd$Z=29ji=!XPX~`=LM1 zUEV{8DV1~qS51FM@ z(SKNm15%=DGDwAd;1tr(5BdgHs}kI)Y|NaOf$-_AsiIA*Td6Cqe*r$SCOEB2Add9n zIjV)_%q9=$$AQZ_s=LP54B`%(1I$P~^}_@#s^MRP5-cV*rgyXjOzk7hF7;Ps9>p;E zb0jg`KC~j}^>6X*@cKNxaAf@ko9+VKe4AV0spFZ7-eEgB9s}s!*K{3pI&n&_Y@cW= zVryy}Yuk?>w9oEzRCmpDpYfFP{m)-JI3hGWl0#Ng^WRtH27T|=_SQ{7F=znn?0UKq zIt|)q8<`_t=l$H*^&U_!O6r56dHjS_(6M*j?S(6MZa352!T-O1-E%`xO-@slop;r<=~&d zNK~4__`u%^{)75_lTb-?AlgU2P{U+URtFsvP#*{DenERpw+Ke=DMJmA|AXNO*o=A{ z=}VhtqB!Uv%gbfA8Zx z=zWNbYJKkPt9;jdH+>3tymJHFgK0veP#9Vumsd#2gX;R)t2&FJs<_N})wIIwKoxm8 zOqH_cyyo|)H;ypw7IzvJ;^KN;(+5AKJ&N=~W86;ds7k-}&-NvFd%2%GM>z`GOWOLS zj!*fNyghkp^0ed!$=OmCrF2M5XG?GI?N~+ktuQKxPkdQns!f!BhdM{TM*9m(;o99L z#xG{J@6*oKwbSP?Of;-FTr-%(BjQ+NDbo+rG;>H(nY`i3EZfeXkpw%Df1Cnk$d>DbW?Ux6lA)% z1eL9!p+!vd_6ENBi}Cn|aHO%Y`O*1a84rG+Y{kO<1g{OgF5idZ4O@vI^R*-J;LJRYMkOAUwhe^n%~` z-}&1FEU4F9mBxf>;InipS_c&~rRour?hooZn&~LgTvq2&uc9L+p;jD_tzb0rFypxt z`5LJa-4=~R=gM8cD2`C>VTyQ-ir_MuuB$+Ey%jCSda!WM8s8Z&z@-^t%uCHO47Gzl zD7n=()c}R^()81G8#U)WMvbwgn9;CHr`3*AdzD2Lk?4+a6RAv~sc)R;qN|Qm;c(mP z*lwhD0J*44jb|pE1e2qQZIo>(YR-0>({>jPuOqh8;ALLgJhrf{tbKz$m*a|K94xMt zZl|ZK&ySb#ed%uaSG1sFfGWS{w0400qd{T(U~FvKZz^Fv2wJ$FrN3p0<)@{jb)fa6 z)oC^3l$Rmqhc(f<%G%hfwu9 zC>NPK&qpP>4L)i|!g?lH<6%{8Wn!~lIahT?ZPKpQHGLIv{02@{>QU z{ya+>lT;(Ad{UvLYDu$_0!hdIEKHuCGAVT)^N>0qjha)TcJiMIWXCn8d*ng18oku1 zs$rTey7st2?nbZiDN~WN#su>E0!~*AbZ%tx0LwK?ZtG&)s8smC=fh9@zI81AVU;W! z%rcXcF}Mys25E!3pT4dBC2EfQ=pL@rRMc#sfAAR%)?BJ%$}bAFBBRhi9?e875f_OH zV9U+~Q&Hx#`TP3Q``a=v{f5``LU#qSaAkKo`iI9{M_j+bay)W{BY zS8aFSTVF?dN3R1pxMz+;bx0OgDATFI%IWUw?-`bf4cHBnOs`CdDE4ne0c)^0%urar zP1^`b&?tm-N^~F`jeGnbukY^7% z-*x@t13GDQC_b_RKlgWv?W($($=bf`k?M5nkBVuH1C3XVUqR^qYpibcqd$LAydb_3 zlf;mi%UGQIcOiT}`husPW4NV%tXl?#yqsE3b|@qy;b;c|Gx#n3aW2^R4(NbY??5n&PjVi}kw7LHsBH$s)+X2=`r2^S^@8roMt=WS;q zTv48dS894;DNafw6nf=irC-?zlz%z(MU;}?5N*fndcoEX7@mq3&?3ESx@UT8GMnp} zyR(0*n}!&ti+c@+(DUx0&5jnKQdwUZ0`6wCG$pXkx6AX~)e{Z(8>r!ywYxz-EWj6N z96h5PwpdWJfz)EQ_EZAJ(CV4#=;q9dp5r~Y*K^8uB(Pf=9?lm%jt=e*(6I*$ugC}4!PCTxW$53U#q);rAo+Wul8sZf?lpYx zy_&q5&+3(GLA?oQ(R@?_pXm;G@phc9Xb4l|hwz%U+l%j^gmYyd^m~f4!{5RYR)_P0 zvRWN{i$>d8s)9VYxGqI;>Y?WYy~Nj^*6fbTKAr!U|0V7@tE9c5o8k450j%!=xu?(v z6`6+Iw#I3<>VD`G(CQgxs%_41iMKAWp0nPwuEpoH|m!1_uRKmykGXY(1o37#2vj!tnkb|t{Cx!^pGuWE7f={r|f_Ye09 zPaUrbMbwM_1pyOk0(Y33`Nd3K;DP?H(a13A~<84u{+x~eSd z*XlQ#cW`d@>jxQr85)VZ(V`8DI-_9xM9uoIm_?k2W@`=oc{i2Nn1p# zMH??8bJ|;Q1B0-X_JfKvDYGct@;g*~2S?oC0AQGbT`MUSk$OmDK|$P*ZcC4(-^>Tz zNJ;!|uJoL__wPV^{LZol(!xQ%;~(O$>hI-0>G%4_1)2tnffGuLUvZ6S3wenU1DflA z+NpV~eW2TCz2-2!jmyLu$~d@<+DspA zg3%oS8g8R{u4;$!A-=9jd3%+1AbH+`4avRK8zFYlkj))XEqQ@qnM2! zL-Vc~%6GHSVX+Z8R?sC*AK8ei{Mm1>HfT3|#mg{8J{oPs zoH!Am&}xyV;n`r_=7z7K;}wSrNHJbp9Xzx5NAlu;8;Vwz$I_i{E3AVtR{=J`BZZ1- zVlJftv_m75tERzoz5%Z#H_prxct0;9D|uFHcy}3@W#;7ltdM)-@YWvp&SG*t6gz^b zf11$Yv4t;$SF&DfnN5EL(ep35wsz{PzR}ZYUP!P}529=LlGtvIJVI+{M!0{tLij-_ zcWAkkpM7bTinIE&qz%#@utr;$!d;Z2(wtBo=JKsrXG63(RoV~MbREw-ADHc>!ZTEs zW+?)S<;pssg&X1mvO<#&R!4r_4qYw%H~k3i6K@Tl47UuM4NJLq_hwxchO7F2^dJ#+ z$6>qFfst5DTY@h670paC@MUtl2X1N=)q7_qQ zYE=blj}fZ=sv@eFAS&X~er>PFuDCCB6|U0Vs)r_J(a1AU4SncweMhmU87|Q-&?f!B za#_gHSA+Y4Tlw$npf6aJIB<%Y(que_75qQN+2y@?YV&2AT#mis7ltY%#a0wLCcyOR z2jlrF?9O}Ylj^NX&*pOL4(Xu_I0+Ep+g z4xmDE4;{_P+8Ur0r)f%SPT_^S0&LnvJ`~Fo9=aXOg`u6oZ>*9#poz zGGkiLiR>>Q$NM>mvShRW9E8U)4Sge|1;LmIM|vu}zmLkCs()aVTmezxz+=V^&*UyU zVjhg9PO5^c6xe~=K`t)CUtlWps^k3mpmG6Rorj8{*mB(ydcpEpBIjf>KZFx>HZql& z=gr756rLw?634;6n9ScT;BQYvE}+Wbhl}u#yNEARCE6d(-GS(X=uZ%=4xHC2$;-hJ z6=(MPQV0uK6}=S)@OhpON3j;lhM!e>bzXIK^$hh}b$U&1K5D?SnGFkmC=9m#nkKN? za%m(~4)^n9(yAZB3Fxb`sCMycFQQ4-Oc*6!iq?w0j`W3vJf7&gA(S7t(kb|pbY~LY zU8*nTkp$^O@Fw%h6X;gjf+g51Q<=V2m8wYn!Be=UilHf}YsH4^gQnRMehZVib7WQI z0Z}qXw0d+XJ}6pLqYudfmCFGk0MBA0ld-nwFt$}aQ8iGnfh+t3j_4QI&MtKR1>g$x&1< zRM8_~Kdp>2@{msc(7hL%VPZg(9cyHP3XMrH94=3G5yl>MkLc7i;Var|vAj3oxn zp~`xKqHzNdw11eFZcql4^}!=-0+p>-S5P-omscy{@J~Re@+%CciOOcm+{!G4v!#eqGRvNs3&IEMuigau-!ZK8E+9pBWAv z2=xp#3^gbF902k4K9mv);}&nluc=0O0#Wl6c%@S)<9fnbBh_&do4~&E;kLYqSTY4J zOFQA5P(ZN^+*$$UFwlD+lnF4>_n`WeR-K^MtDUMh^bKy(+jOcjgR*FXs!~ODdXygC z@VAFSHMLghR8N$XM%OBK}>Q9Mg03H5~ZCl}0QOp3} z(1eKL0sXTT*VS@@5`E@t@>TZ3G7zO@!J*mV+0Ef6cf+4LTl7_AI?lK{G<%=pigh-8 zD7=K6*^7_npjFzDK~IBE5%BHl5?Rd2lu?|R#FrJm|*y=#`CxMKh1RaG$5}4c6#Q#Tmt6#coik*Wr;w*!yo3cZoMAiR(WVCU#C0 zWhYSo>xm`T;CNr>^C){NHxXqfdM*}t@Vmf-6%m5mptiAcdF0gS<>*;(EJt`>|4@zm zUDf04u@}*As0bxT1JNwtm@3MxsSqZxzgM%vFMuZxpm0)0=nQ9NCTrFDzmJ|UTF1j{ z=}VO~1rOKR!f2rn%;_$ihRPuMoUG<Xv|HXe**9-Zse3QETj(h~&lyNv? zTdAQB@OpaT>D@fq8a!|V5Nuh|7ENLm_jB%!N3KP_pxvfGCo*fa9$z_~oqLB^mkG>3 zKPsiypuqlt*>(+$yDL2T6}ZaoA=8f+2A~n$ombunjzD&*y)>*xEnf2+@Ny?m)AE2D zt_CK23pyn)sQ*5r8s=9h;JK&avxKq{%=va;&#QxHDWfccCPk31JFQr+n5`Jb4$6sY z>PvRoHddpipuvCrU+TpivI@83N38Qo*mYf4>xt3LoaBemlxQ}&In~s1)@7G`ohlR% zIx~Aed-|vR9IVYIPGmoxR&P#BVREu9YT(yua6FrUM(PVgt)*OKAaSaO(MeT7qantd={ZpSNZF1Psa*9vkjR3PGUPq6SL z68K5Asne?R{VVa^`pT2!sq!d!0F_&9YPS}=hOQv*)^P@3@rwPtdb5yL$O$WcAnX2w z`tY6bflt4X83n#tirR__>~o94iLTpk!6AfDl&h#{jAGnqFbfZ;TB6h_N~Mm^2>bdf z=W{3#G(quA*iQs$C)9w)X~fxHx!i--$s4%E4wgG}I-9T>c>l5LBly=5)Uo~f zbpl^ML7vIiT_u+W;gl8?>avq2!D{OPHasWq+XCa_Hs7r`T_cU`1@k3yJ1!u1;Oxwi z7xPorvHK5m4%V~oUHBO_z>^i`B<5k~Hszxp>)J@}&W`w(^KgXc^&R#}W}y^2w!1Kx zzQ+o*h30VXhVWCH@$NFR0%h65O@u1M*Vdf4nZj;j-UE2bAt5~&|DuZgd=w=HR7a~J zhayf965ewzHt_xGQK@HTKH%X!J?G;!J5a^iRmP)x6W`~kaF4J3Bz)u<-UP2TQs~dm zZ7EcOV_Sg#w+0Fbb@*L6bpGOa_G)s~3-;Cp`2_oU2i%$eu{TbWxA%ka-^$)Q!45pb z`+CLC`UrpNBX=4_rp&2<}NYf80$BZb*s%Bs5<*Q zs~pQd&BO{eM|-IjJGBm~1NphlIN+{2iDELkj(S$N9w(*+XJsDe>>MW{NDTWT-{+N_ z=hYo0BJJdsjr; zef@WD*Mbo_fb7#%(NWO{7U(iE%oMnhHE{&2$u4fD=u2d8rKkftvMayVAlCcHN%vq# zPUOio5(=^gS&2&`yGbt?h*24ZSiyysxr6n(%icN7e;;vnFUucfyZm?6k=&&!GV^um z!GE-8^%|gDSsK-oH2*!3pzLLZ-M9_>qB_aPvn|TMW##E*=VzpVG@2wAk!32G^V}xR zlZE$1*F~p9M}c8ph=Sym=+~&5I?}=Y%Y*_=6VA{{KIU**>hn>9*bpO!(XYKsU9y`f zw}M+=KRzZ$7xU*t^2t}wddYlvqY9ozOU~95qDT)EH5$upIE~Zf*?jcl_boYZ`+2wd zI9Oy$|+z2}NoieHKlcN!l#@jluSPvA66RCHo(E0ene!YkB_PZB2*VGFz= zv;HO)zXV_R_P>8g2AcH{$2f{W_DFlVY5 z&!iG7I{ClvdzdUTpE`Of=dU)=rwUOf1#O;v?9A1?gT9<&k-Yj5UjAD?-$$RZDmOu@ zoTa|mPt9^Zx+*#d{j@pMj;B}`C9_X6QMVqeFcrPENz{_{xU(q87OeUkh$5s3tz}I}L2uTtWsA*AM^8OM8g3Bgi{hSQ`@=DK8%FwRpGXN>X!deuf!8+I}1aJjq`<_REmFV z$s{;T#Xo9mW)@FxojD>WWMt`fpOhtc5@QFHdqH(Y_#2A}e{e3sJl; z`?CbQT1!5t#frznJWnKlOqPeUPX@D3I`D3)ld)Tq#r~?KZbn`85xFHGN90WWU#0oT zM%>TBo-apDl$EIRj9oO56{rUPB%_={O}+(9{vF&t&clm*Pd)RPJ#OQMZ{tsoso3YU z+FjA1sL3=ej=Eh&Gsr-9zEZRy$nsYFTAN$dI=(t5dv*}t|2C>4dH9KKiGN#&swdes zmsm?DSn2On$6HX>Swrt&74Ll`|6R)GUe2}%Q?C?jorQf@LopD>^m?Lge^8HQ(Z~?E zZy2dEEL7G}_WLLHqgs)VIMSOPTa&LEK|lNiYA5p)EqD^;_#QR*esKzkYGogH?{d@- z#aWFn$|?(lXo=3d{bE$`ypFM0h{3`7Yn@uXjV||8{){uIdB!WKvX=(|~{d zLL9kEBz{dKPKv&yc02(O@gA!0&)CcFi7va@^OK_gvX|fR)%SQtw~4tqa0hus z%zdWNz`Km4Q>0UVK$-k1HQQ^dwgPmN)^g)`4cgho=X35Khn35@llY0!=h@S{h~eGY z%jG!-AGz5s;b)cPmgOTC|INm~xf3h`sap5H>~4|2(dipTcQg-u!SD1n66qcujch;% zyf2*(dd%p)mZJk(4IPH3kvOzq|K0-*@ctiiZ^=V6w7{B*M$>be+mZK|6FU!(?O#(1 z7w5#x;{>1KRxpcq+@Af{k?vVzR>45F{X|^)ASV%<_7Y8dQ~{(@U6tQ#+=MveCNsRrr+%J#V~<-ql9`HE%$P)%6{d1 z^nSV!0XlR4EQSWK8kU|$xl7eZeTII;b(Es#>nh`hve+P?0CEj3%v^f8%g~p5rFE#B zpz(j;u%JQNG;?4-45qX&B;(x^T|HcFUGrS$a1gHN`QusQT?kgOkY|7%|O8eYfd{u)x@VXMChhgOe)D1Obb#o0Xj1|p|EL!U+Yb2%~{?hitZxz%qYt??v})=SIgC5TOm6_Z;m}ia6t#?7VuoC2dV+k~4Ip@Jya6DwqWhw;Zwhtul|DaH*Lpp}9LXWpm1dl%1)AY?tkJ$2#XPS2I-D1@A9UFYgE3 zCffRj`8VP8SR6D#sX%V2Rp?zv6?qk%CIl1*@XEZUiRuO#9vD>2U6a7^H#d5WwT(-} zTfwe`wwL?A<*$&fWdALgW1B&7o@oH3r&%?+o7CJ8JrAsh5wgyJ|N8wCj#ksPL z^M}1NdMEd7?``FnBd-Mea>HI2Ja1X|aF5TM21NH-|DeFVKs&TB9C&DL4;_~L!Lw5N z@Gm@p+D6;UITR0-7gfjA3$%0f?+t6j3C50K3fh~GnD3jXnM<03CZ$3y=8t`^~75riR-;{Vf+(!MNe4sSE+}J=>w5x0R&Uv+-LN1N711>iE?Dy>ce( zz)AOYT)`vir2C_1kMFR5v!6JDr&;UJN!*R{qQEdGT9MA*KimdSlE;rL4ye$l!Ec}y zoYPYX^-PIVkZXJoUZrgN|Bu)7T?`>VbjtVf36 z8@|hq&`;($X(O4Vzu{$$3ttUy;rCY}rK3r5Tk`2S#RR2G1)oM+AKrLAgHQhvjpGVv zHkU@RW)(d0i@JH*@#xd;LMP-ZnrnNt&$PRAHdv!q@gC}du69TBH`8v@0n=8~W8-_Y z>cWQp`nKAI>W)l<_o7sMn@S-!+|bYA`Qb9SFxF!_mp{5JI+a{onAuvr@O8;5?PL!B z!1uy)9Jjw?&V7z2_M!Id_M7;UmUbjKtAHGN<}L+tu&z%HFZN}?6=;R~z#`sXuh2AU zr?eVR4>i7o_agi0(C(5~3agdhRq^=0)O`ZIAGdcwuUsp3rWonfhd10EE; z;hT5U#ps*sJD}2-nUmPqXf_QrZ?NpP^a2U9-%`(#+dPF_v&q;^Jfu&r-3r^cm2$J7 zlY7#eZ67%l`U2~61ao(rlrL0~S^OquvdyJdC{_LTm-R34)%1>apLRZV6mVGZFdc3S zrFKibmU_h&YhP#|=ZME8{FJA+w~TL!-^dO&275}2LtXK`s1qtjKYc^^OSn{IXtc0! zUq}(&gW^00dgC12r=b3bK__N5-Y{-5ZZq!3&-%8hqp7$t$^_A8a2oQ7E5yTM1#ndH z?A2sW<9f?k_?y42XRKO0<1$2b}+g7IDNnLC!Y@cSY zgjf4@x9l0?ZRXns{_IYmGVXi6Q09mbQQ&~GEj$+e*lv*y(W~-#CII&opOxv=3FwPi zaNDSlhKmD-Zaex?QDbX7&iY#OU2OL_>;kuz>Qe1EeINpwd*Z$V{Ed>G}1MYwl zK6~~+2LCVLDF0I5Jx>ewBG+fm zSXg={%?Y1pn!W^wfTNLyQ7yB~F(@J|5sH(=yC}!22BP@9R~v!lHvm7QFXC+D8KS~W zV6!p5i?|ohHN^BL}9yEs*hO0+@hL^#?f50T_ zV|aBWHTqqi#9lnCxC!@dr#c(TAMyG$_`at#zA_#&P6X?Ai+K0i^e+y-8F{@i=){h~ zTX%<8*!aV^!#LD9+;raD*|Ng21pWQfmVB1SFi$!dvlC58tpgX_niR^YO{Bzy8)`oZydWFlD)V62fOft z{gvJ5$mAU3I^+K1*@Xj?34h%dFjNu!R{n5wF3I7F+7NVkBteS`d&{SPteTrTq zHZh(vUMAj6FTTx>`)s~5z5+OKF85dT z$MIhE{tIBet9ae8j3cNRUveraeQ*b;-A~dm7aLmocA?1a45J&x+B#H>6y+( zaQn?kw`DD}x+JvMmdKyw;q*hY(#`0tY^1uNuB27!7V6IGlMJI!H%u0L8{ZoHlbI^w zY;+C@wWKmC5 z`sKZNr4$b(1>fT`;`ep)ee!PemZNeFbF-M@uN-Jg1^dN+%sm zEpt_Hu7ss^jCYmKX>}$$ce-P|0k7TX^3R~^=l~CP6izO`BEQLqN4RMhh#KMGf8j1Y zo(kI|_o16`P|;BJR=rTu1|K4W;kKck_)x5eYW{E>^(^Morme;)#@XoSCv&b!7`t!= zQ*au{Pvl5vS!3B|*^3O}r_Zz$e(g3DYiu-bp! zSKIfFy0r^6>i~a3pdZ>Ec>+KD*Zi0K?feekeV$krd^z5@!svDkcTB~Lqk+@lJnhuF zn|KD}aGlNn9AAKQFnU&mlEcFz#Us7&iq0547C8y4w*foyBvZeJ_@|bp=Q2X6K`rl* z#;&b_Hl-eHSq0-gV-*mQ|L5o|pq$9kD4bMEB2|^74INw?cXxO9#%-{{-L-M2VQ?CE z*8v)LcXw-AlayQbvS-fj&T>{dovQbKx%a#Oay7U}mP3}=19mKX-BSZ9&s=N{_MWE+ zn}w6ODST&s0cv51zr@|f)7z76>FMqIz+A(#c#b$}yJgih3mBKR0%}Q+TEFi<4mgZq7BPzl+gOxz`P z0pE8Vv?n%wx)BX>b#XIjW(7q!%5s8gdLKHU-_|&E<~Q&}GI$n?kh!UH^kC+sb17>4 zv$(7JL3vhP%&^+*Xpr@zMsVuQWzlD+Q#3vH-44Yv{jo$}P|( z9!Dtx?rnyb`SR?;yVaHTNe$d(-zdk zzuZ|p*E}WhXSX~P*ah4RZaVjnJINdT4{kj>f$hQ8^&~+}dYnn8@{rjG(l!U_k9Uxo z7^SvQ>~bS%C%&tt(lDu}bVVYRL8yEKP%rk9x8u9pD$kHkLZ3ZLXa<(d&%l;IDX@v! z220{|Ef8{v6OlGINXbw|^|5+GbAss*Z?ra3Fdy`S<5LUM90>%9v8HD3!IZWLk_r1D zCyj+#f}^T|{P~Y-gnKZ!apgUok*_+OT?|UY2@o#p;3x~Hfv_P83l zYvLJ0a=OJVXc?WyaC1Dg~M8BO#tS~0Z> z7;4ky8t{zX6Iu&`5D-nA18)^hk>C?tCcT!5$P5Upy~X`vb}=L92u6f1hlV1xe0XSv zpa_kG)q*aqfNPAwC+n}ZK<-!tXk4qAeXKUtEGP?dTOlLUmC{ywJ9@<#%)L5!T_BaTjnS4}niMhxd^8 z0@xx&_!n#g+|BLWMO?$3KbQ=vhod6V$F>r^RwI3zdIj&2OW7k8k_w3fg%837@w(Im zKjYs@4ZK;aq{q@MdAXcTN)YQxm&G5U5Zq+#h5Ev^P)4Y!I1v2rgZNxtaI~H)2h?HE z&UXd5dZWJ9P@y-Kj4PO&7KV~H!h8w3;TG&@r=bFg#CB$vy@w-6D)cmvhdROY)CRTg zQO`DX#z`I(*|76HoF@mqsbyScZaWv_P3OCFE4WJVd!+L3`PIC__VwiTB)W@XLOImg zl5R@wa;&s3z^Pcp7!9)PW^JLG70%d_QZ?Ms>oB|91{c>O<%`^34oI7&EAn@IU*mCm z?-!52*V!xd1-aoJLZ3q8#5l2@U=wqo2ZKLIZ4Gk%SoN5;21>-A25+r^LhLyz`=Q1s z=pvCUXFkB@ZVqPa`>}ft!SCTAHEJm%f|D>AnHP0klRVwn!kz&*E#Bet4f52-b9j<# z$hr9O-Y0xp_=2)|i+LCDC-}eleK=W0VKxwpyoIjLRB9gOPaGT`^EhNbi zj~jXsGUgsSS`X05B-VHO4 zhR729Z2UIuVb&UAt}<^xlikFcg*p04?BT0npEusN)_$C*LDmJgqc8IcIUr4(-@sP; z*Zmyx!yRncv($5)t;9>*5bi8rz*o&H<6jfK@A;8@1#d&X4Eq&xpM^LPkGL4;eQF97 zL){{N!n&u1q`rbdNk&38=&;+YxV&l z^Csw_4={gQ8vcZ>c_cJN?TC?%TaMf0Cb}@wlrGC$be(eFg_`)C`-3Ns=NV=;E4aK! z;BLw9@V>!)e1dNVCP96^r?(=Xi*1M7t_WzVXWc)Y_rP*|KouhI60&Wg<%9$6fH7H5 z)MkQ8dQRFTiP9+O`JYRjp*c+_hPJwcbmv_Loo z(tRUv^FAsY!Kiwouplp1&}$-#ZmxbC(;*HXHwzQ5FM12qSE=S$Y@udD#gt-s!CvS` z%q6}%2zn`q|L1ATImo>qJkb>JaebZ-?sKf4ACKIzPW*iDIDQ6qm@nZ?XlZPk3xkp^sVu2KxykQ}3aT1LZMO&98MqN~o^p)^BJh zF-!XluWvW?tb7&(oI8>LvchQ0g-3}oqJ)(6e^C9lM2@phIEHk#2EpZ_@&bb!BQumu z=p8x|Y5?E!-=X&4z65bYB)~VGA}$uUh;^iPNcbzQ&o`!;R(KDQ-7%gVK@WGGL06WK z8{~c9bNSZ!K1V)|z7>5UIy&pIYm$QUL)Ed%;Q!TXa~}4gNRa&Q$!2LI_e#qWB2I;&YiAX zPSF{5FURCGH+zel!yn|{aG&@Cd_&&jo#qW<-tmO%zYYH+JR zqf_Y;@Jw~3U33?!545;{tpE|wn zA)uC*1%2bA$IhPSdhrt5mzBAL{AS!*yZNf{S}w!1U?k?>N8xC^>Dl0E?|$lR2Evfr z8ObD2ZyhqWv?J_YY>L&v%z!f3t4C|Kz-K$5koCylT0xjfOw8;|sg@Fl2PZEY~-Y)`bqnx<`szWct~5)P+DaASnj(df)p zsP)vP%D>tYD3hY%|ROa2d8JOe%dSnB2zAFsx1yX}J@y!G>ebvJP&y8CMY$pDIZq$(M#I?KwQ!bZIzXCTm^6q8dxvne zb<{YeU(xI8Q`D>SFj<42sxG#UoSH`qD$SMiDj03rCv_LdCm+>as#`CuZ_tYAH!-z- zu0MnJd^^4y5lIC7v1|X1o$np!9p)h!c(E-Jx{#{a?!ShDa}w_76r|e^)Atx-%mi!$ z_i7*Y>c(7zb}>Rxz(wRqQ2B0!gEmltq3i zS5e9;6EGQAt&hMr+uEFEve3bxGcs%9>^%Whd4g38{)tu4EeYXM*kM<-9V2>Tu9Oq} zhXZsheSrReozWg=Jy&;d9;RUe@*B@*Nj!(~+$*jJeE0iNadh`S_YU)pMs0tZyT+B| z=CF&vO|K6R&1?86-^24!&~Xm5!87*ZwkYeB!C)tnqS0D!{V#B);=qBOtu0ilDvL1< zzJh!Do0Lr|Cz?oSA16!%5BPqlQK(obIam#@dsf&l6cMY7?Qz=`MKxwue=1{?@5)*{ zk1gP+TY+S=HEK{ZjEB$;3^&_{<89C2R0|Ln!H%v>9;V+iZYJ6})?LK&%H0u@HX8KT z2bh|!1BvrL?jJ7ne>$Ls>A=69cE~O1@9G8`*HNY<5;+!8cCv;e5t*(x@IDu@avF_6 zha8Ki?GG*clzbmkj~>znCA-F`IaRyfT~ATFYsHb8SqqB&A#m66*n{T)i{~HgECg_p z|JLTBlE0@8hnp-3TSGhM0>43E^&0)b2ri%>*VB=m%Fok`^-DuXZi~JbNJnU(%;wT@$L0? z@~-j{-lp6P&tCM~K4iQXXB<=%y!wZ2N3Anv1tUdGk{?S=aJv1;)M+S03u%GB1G7T$ zLeJ2&P+sv1^5*Xey`=G&U9H7#s4sSc{gwC1LvHHEuV9EprT+v9Q&Um=A#@SjOZO#C z_Qb^s@)xhj> zUAUn+Rj+Iu)^97<Tn32cFdwKQXeUu=8?Ct+f^Q0u*shPpd9hC<1o!G$xYx|b5*!X+&WYt`OsNc z!4&bQr-OSG)CRvm=Ew(sYi)WKnM`yhY7u8`Tg|8XAE)nWZ3TXsjaqBvs_ejKLV*rr zo>~K4^)Yx_W8rDtrq)+`q03^`)tE8f#I4{_mdhPMVlRwa9ZV+Fz%QgAKD8j5g4$71XYG1fvD?_RB+IVhGx6auLIVOVSvyoPqjjpPm zdiW$+_$0m|sD}r9_kG>`n!jPhmWbXFP5oc{N}9kRGq06$Iaz2 zs>0dR2bJDs?30HZw+)wB7VOz+=z7W-oVm-W3+LM`J&W;MpRBjh+w14G@oHhUik3rr zAs>}2xr_2cijVlevtzLCq zMqWcTW3%xNiNNLIZODa9eM6|aia<#>*mezy(|2&Rw8FoeZn9u8morzu2ekss$UmKJ z9{rhiK}*yrOy%}t=3T+I+8*UtPlhNPrUXTiPBF#Z-P08H#&m8gU(svw8T><}nOHpI z8|1s|^@7V5<$cDhn7`d-mv{tcSLQmBIUYHBLt`IlI|-G_R>RQFDd(WiC?r)7Y1~Gw z(C^>E+$`=yCi-pBDV-H%@v~G98#5Ah<0kYUN0q$}!L)#3AG!4~2KTb7%|ZQ$~QEq94M%>BjBLOt~cImkCWS3wu3>n`hB zLDxrC*;A^C274_m^eHtg#MPf)5r4wrD3)t~~z{apY-q~kJH^=%#o2-Aq6eK6q zJ(qoYa+1yol3N4!e;%HT{m* z%zv%4a69`lq6#^T?(59uuFB@-L;PEB6~F556~RSbjjSK_CdwOKF{)7{6%X^tW&(6V2f33SS=A>mP+0o2C7xmgMqqs(^&+*&OA!m_>ix-3(!X0##Glc74 zz{ZJv#eL91y~8AKfD)xvRg=^K+FIPpyY&J_eIwae3AcA|WPipRi!h-tYi=<5!iT*N zlc<7LX)Bx2N1p@Yt{u9=?V70WRLUu{l!=(YzLh`8&*Ve$7v!h2S_!=?>f!~K72b_3 z*uf+iP0Vj+6zF?DKw%rn#qv-2Z{BoY75@j{E?VYQk74mv~t?g4ySP!ZMKIHewPtLv%}-(tP;} zp0;J!+>TQ&Drrg#>b|0In;rsLxsy6Yn*-(5pX9@a=4g-us>A2882RQAQ23t4oPHLP zbwzyRzfs}O!1v4;b|X>muW!(E!pmP6dfQ0&1FB+sTiua~8RIj$FfwUW*GkZFQa$6@ zHe5l_g@WKW+Oa!|<$HpJ_ml0-E{8L}8R(;p!4qocJj|4%n`LTRlP6N$pfjmTR4rRn1sj}>Y+UhBuuTPR9 zzeP>oM(Lq~^N73ep_T+ySS>9(CINL&CH6&~MWbh#W<C?@k>l6(v{6hAIx%hDPANKSjsh=BFo`^ ze}klly_h*wK<73Sb#VaNoi_0C-$3|pvRT042~#(iF|LR19<0Qv{6_C6 zUrGNOzwRFy@iU@ZWSL0CFZpWuTlr&r{k&Ve^LdWl<$miP;2!NfPH(4LlADR;b`>1( zDdsaMjKZp^RELVyF82kY&?l}FJ`2UfLgF&9D>j=UNtX-Yvl*Hl6-p(XH|w$Anv9wC z5A3*-&_8Z5dYa!rUO8bbgc5A4&gm2qiC>`~Eu`N8;dvFdFEiC{%4krXMQk?w=wjQ* zt7H=d=Xy#Pb%{0>6S@i3$#9Ad-f=Kcr!nnZ``u}t9^5`m+)DW}eN4pMNKaHCqI|@= zh-{H2?rGiMz~9j8<16vEx!mkDcOMt&^wSC8$aW%1*$P=(4N{+`uEmTKlMd{?1oT(^ zLZdJ-I}YXHDdD*=Sj-PH_aqr-Ip$6Ys0MF=2y#TNgvtD5Oa~f(Rv^P)T;H6DZRL1q zIZ9hh_&R)#W8i%GVIIcr=!m(~xQjX@5gY-#rm08a4Bv<9>^123&9!UV1>J)Vyj=K% ztvIsl2ZF|Z%=yCQ@Hp5fYrE(qkb?7p$ z;x=pND&<_xOr__Mr@)vYu+bcVtwglmM;og?lM|$h_=I)E*5Wu&>BB-xaglf#jGGsD zrxxQROM~*Gu<``&7m~)bX3%F=g}PV<9dnfy&_1AkE&+AfEIoiN%SFuD0tN-g>KQo3 zD8N+Ac?y>W5$2~=tQqf(=-38Q~x6Bv10hOJ+0lv7Kcw>8nY>=NI0vt7d z=?6j0@@o~BIv$hcPWWW~vD1!K z&ftHe1L*SCv9D0D+uo1K{|Tuj^arcu_xK%LP~z3cS^;CC=?EXQwIcG7Iq9O#1@7al zlaKRO^4EyS@K=nu7I`(QM-&}3EUI|auZTPmy&{@KeD%e8-Fz{Q0v|rs{n>e${(w~X zw@8-!g#AZd{+vk#0mWQK{wq&Q3lPANy!Nc8tJwC{SNF~huLeS!nEyKO5m zmMlVvaUFd%o|o`+W;g&`H}j}LYZzdtw15_>?-9#k`L57)j?~o?!F9i zqxZ!ghzI-b<;d$%tO-DE@Ueugmc;#5#7kGbU9akPcn;6 z!5i;W{m<|OG>_;XIUs`a<>p&*ZP`cex~>_>s%uWIcCeZT;p`Tc+(ykIM`M zHiZs}3D|g4(Y|04niq^Z9$nDO@Cw^)dl_Pe-39m9RH8JJFP2k}=%-9;S8mTT_5@ea z+tk;@-!URH|& zIEFDZ+&|c`cTi-{nDtqgWv`#}*I&V0{yZP^Zp&97-=Mso^Nh&zId`Glf8{!yGd71K zd)93JtovgkqxVFXj#%mAys=ykkI%K1zC?Z?M%tX#K0RI?B=;06gq8-%W&TRn(rTs^ zOmib?{b*{1w3%rm)6S<&Pj_WFG74mT2Mswkb5y1)5FeNjs0l5%EwBMuTkkT3OgWPd zGzx4D)CFy@MJSKZ3naY0@_ywkTqdQB&*tm!3;QC6i#khpah`O&chjt&6S+5FkvH)( z5x*n)NA-;U7@Z}{vaIv6oy+z(+nDUvvUkk>G28EK3$iuK`X*+1bb+Yy5eg12t5w@G%l*`4IyW;aHHAbng8gW? zgf-Q8g6<&}yPML|cjOufq%)96i_Zry)CJ7+UxM5i0^h$W zmmLm@{!m%9!scuo_=nj&K@bt&LG}K{wH0K|X0B;SPFccyrxPg;xsrHf8)P*y!rFE< z1)h*t@h_ovXa=$=>;Y$H*^G(@B?JKA580%wk?%UO-ebBECL~= zd+OWNwqU28PEW{4$xI8T3umz7o~A7@hagF?2Q|dm!1FKn&})xa9eFUy5mP@){;WH* zp3NGcwNBR0SvF>g%knZNHl|JVg{Y}fo~R~~(;{B_4WHXr#M_OZgoy!aF_%f_rlK6b zY_F{k#!c-9xPe2UwEQIG7TvhfnhU1|H?|Qu!4Y07O_vs7I~~SUxQR4S$|?;Mb}n&!b$Mr*M_f2=Iy8zV5ah|N6Eg)aUxmzM}rvaYMHZIZG7PM&=8_Da)fBj7LqB@Z& zL~-I1ysfmYHeAlDP&1!2%VDmSV%0{Hc`dlk2iWq$lXe4?`&N$84rD-J0{IM#qvDR{ zs4|+``h*YQzDhEd>NB-8bpc!hkFf9gqxbC$E$LOvtjAyqk)kfuVlaIMTgMs}?rHmI z=N>k_*QtPmw6mSPs=*%)gH3dV61F3a3y7h~2 z4ShjHG8jLn2h~njW1o4*+8(}Odx1K+6KPQO;0EDcZQU0=6sK}W_@Ul{zPY|TzMTH% z{#gGZpU+p^TaQ1B{q!R^6E}Nmd!``IG#;LxJ&Z+9q%Jx*PUw3W$1 za;Sc&dTh;d^&6NB)n0z!e4EPL}4USoq>C$9rQ$9UC&+B@x)g06!jc)uXcMp zO`*R27kbivxZ_+dejQvmC;3?KEpG*10pH)4w`JvXW70d&eZjeb?nHJV`q{c$qcLx- zq7sTI8K~KB3iE`l!YI7$--2I*-cW7ud&9vy!GD8!f?ETLfv8~V;JLtzz#AlKbOp~h zJ1WFR(kZ#W8lm4c?pnGnx8o-{l2(}n?7+8SLiV@!t=H>Y?Cfihir?f+Zz=Cy zsDt`(FWH>zP|tUe@rStnL*83^rZF9d>T!*uBQXJ~_vgbe%?RT$=9Hu5%FU6caS`$-ELcN8p(0#cr5_D?I^`NnwEw6#r z$*;^%MCFEh5uL^ny*Q|yC(QO%k8rxJF;UEsha5xwL-P!c8BspuY`sHo)E*wZIecGl z9^Z7|9`r;PeDi%ReKU}x(AW3QJHeZR4c&CEJ)7a4?)u2&qHB^(h@rOCRu%NG6?C_D z7Vol6_Dj{F(&`{=KzCj@^a+^=IfL2od?=YonZGgvncv}!IT*+YR0JhC6e=xNL~pwt z8=o!E;MO)0%^lW0%nr(f&{={?L~8B}=T%pNdkrR7DR5PE<`!dTy9HaB0bBuYJ6nr& zv8|yhxa8`C)TRc^1tjwppo>xSNDrA0(|x7^ZAnAF(6}q!aokeN43;j&zlBiVqIuf?r_DR zvcG_t+fz)oXSzGb1Jyl-J!bcNLO-R zcNKxJYdE)q-|MaDtLTgMiQc`?{`~E&_b!jCxw9kFjSeDTH$FGPs|f@IPi@Y_879Eu<58GM@yq2S*3eGpWG&z>HwtP!XYrSRUJ-8p=!T z^t&Q+y9Rc@t&BGyEzZY;b&_5|PuA9G6}1QIdyoPzAPe!dF6ljuZ01HNBfp!Up-ZrX zkoJUFPWGXefYzBxCo+ZMj;{f)^b#a&^#!f-y(vH;xN8(inzk39re4@@tyK^@E*p*=Occ*n3{U{J5r4QfaAlQx9mRF>C$XxMosdK3TTc_S?iWWPTl|OuB?~ zyX&QUhez@h#k?&JckXNcDqPOr0S2oF50%c3!ef_zMU1={v|5EmDQ>rY}6ClF?i6sT2sTDY#;2Gh=cG2#M7UdQm!rT6P|^v zkK2e%&`RFtZS5`NJ_I&Ra|;W)l=B zJT=_W6WFzqCMMPDT{#yztqQ{2(68XsVBa7QX2R0IAj~fw1WSje;x~OT6oAs?ODI<8 zE|eF%f*Hz+?_(Jl>MMjM;uW!;)IuJDN!mT_KckCvJlx+t$FYUV%RF>Od497^k?pY? z^}qvP7k_y_=ilwC<|~e!@CWo<)A{po*|cMm-C-B+zU4}Au3@G^t=5}9NL8dtkOPRi zwhZ%yo?F|cIOVS5vQU=b zU{ZGk`I*Fip*FaX`St3UFt>yPJ~uR6U!k>mrx(V)=CSoY%-F9H6Up9GEBJKVIAhSA zG={^|3kLc;*F|^=JAmC>2YmNdY+Y7`hWZQpj2p!_<2xduwke+*U1M=B3@t(o{O_gd zVPsw+XLzBp2VQBr+#AVRLU3&$Yv5aEjm!fXmovs>-p{O;*)yX;hLLeRGmLkuU!Vu7 zn=eRB=^Y3MRzf*FOxP>lmwqGFp`Sj>93JkAX?{n{yH7Bd>zl`oU2`k%AzvT=djB^6 zfBxaZqY*^!~@M;qq}G;Ci|27I7-Hfu_pAyrf=}lB1j>j;LnW!dI*%*aH31 z>ZtGGnJ6oD6psieLpOrGP@!}V9Sz+M?ZUe?M<^ssgl?d)vO^iA_J9(lq}~w;gd?y| zA+X^{(*8jj_#x<)-oa5I8#mzS?glbp8*G`M+1A((635^y+*vSXWH(E7ea5S z>ut1=ibrlGT@=5;BP3v_5c*T;!3T8=36tyK!Pe%v-AgV)KK)hXKDTtGxm=!wo@s0c z?i9C~PvAzKD0F@A7g*Qp!L__7WPnTu=zl!ftqw;)UX4ENb5?LM7oP zoH0G%3co7tR&J?HkxQ0peX=FmhY_-arD*yp(j89XBr=%=%sAv%WRfa59g536Anslx z(@BeT;*EMw3gkiZPu}J+>=Rju)5;cpHHwelOuBEjN9=t!fQ)LZ!@-UAZ z2R+es?3Vi|=jE%?186EMi%o=#P}|V$;CIXny9JH}js@$$X}?tBk?nI;uaC+7cH2Gs zX~$KvE`6K1;*5n>s|qrb?!xO@kdxTf+*!=j|MP@BW!O7Nf2i!b%NX=}YcMGHCB48+`4+#op2+bW4h55jj%kJzhiZF;EMl*}N70o&(AaI#Ug|Tk zuOE)RTTSF)oUz7-*MRKT&FX~T=2~;HX&T$GrOIzyK?ODv^oEuo`6pm2zQ{aaT@H6a zig0f#hAHFRFb8xtXfyU&hl1>7Mi22a4RzL=S<+9uJq$W+)C{KpT5hng9*S3sisSkmxZOUbYzuuM|`AV%L8O zXYXw|cP>j~rJ>R-DFI1^i{zZxAO*E3BcClr&Te+G79+R_W8nlf-@Ka^u}BgJd;^*2TfoK2IV?A(sqJ{7dO z&bDUu=eBRqK3)dFXpdD91USN?tZQZ$a}=o1Ys_QF6q*BlXc4$Yr(4yanB0vyaz4iz z2TRh_0D2Fz68CR@_hk5XpMwa{$1@Qg-pe3uxIEk4mh(U7a%W$rHT@O|D&2_~xE6Ao zjD7;yL`!5+8ZG1t)xxZ}O2)wS7D%JHlfE#cNoK#mjbKi}6dFn8lts`UkJGQ?T<~Ix zINT|&T`I3XRNa&(yZIkD?ybvzzjb`WCJU? zsO^%q*gOOsei_^gpQJF-)2f70f?tBM!J_aEUqL?6S!@Ol1tKx&niLu()D#`~?gJow zj8U3ExpWKP{XV#qjzFjQGrSs^bcM))R3x(&X^I!!ChOy$L&KMe9l}!-zfDTb8sA!o5`{-k^)A`#~yx|BU2ceV&`goFAMv|=ZbTmKW4 z_$>Xi-p6Qa=C?*#mBRnp;_cmtSn?~i4;+C5AdEbAxA)BRtOh-x2`a$pNJkMsd>G`u zhb`q6=Pc&|Bf+4U+Ycxjz9wJBc!Gc!)|y0JiNE@ z%%-Aa*x)MeigohLeQFW8ok&HBd_;J>c|{+uJyIr0b;N=~N8AJRGTUYRlO9CQ+miGO z8CpiUz<=sSAQ~S76}dN<-LHt(j+NvQN~SL`_nk?u zZtlO`CVu-zz~@;8{?{y52iJF3K9|dRka?U!%a5VT4 zT%brZi_|{cOJ9g(V32nt zY9coxjAWgiNR3Da=lv*A!OQ)Og!m8v7 zknBw4)aG>0_W0O4>@j}5cO!OhL!ol+;Cqh>pcVgx%fg-aY{SnU2lvWSY7^PmvA{ms zRw{haTw^$l@%j(Y&*o~!H3?ImyXrJG3+9ABeVt(uomSVa-NBS*Y zmG>#TFt6C8Uxw3nF5dM_a2;uoT4%z^{~5^uq}jpP0&VYCwF=yTZB<#lszn+f&3vFZ z_p}dil!iZ`g6jnRIXL zIbTzosEcF*c?K!9(e@JI66R!mu+~zot<04lVQ=8ZwrdT#{<%VNp@Q&G*e%=yhiIi# z8E97oEs) zY!R=4YnJLd3j$y%?ml;w%ZW{FV_xJc^S_W!oPsKG8XPo@z@xJg!x);q7_uyO2fnlp%Iv^x6FK=zBTO}wpj5g4^#e4O-#F;-X?QS@UyUA zYNq5xjW`)zyD#wILg(UG;+XCji`pX=52HOK(21Km#vIYOF_`no6bt$T#{P){Uo zKMs5eL3YqZJ}mv3SOOp%$TD}Ikhx=msQ|3o`5Yt6=M@rVITEmeY8=) z$Oq;056z`*R(nHl{84d0>sDWVh-q<}Ucyw&(cui+4QQOplLM$qP;FaChj+N=Vhh89 za^wZ);tu|Gkmm&Sz9;Z@U3JX_hv2qzC+>s4=srkSo#|*zct%Q$a#b&Z;~Z^Y z1m{|Dg0ZI}8{sR+!6Hb?JCHmBO+6C9RwGeqne`Aq_Yz{GV=Q@y((vTAa>j!D5OQ8e za?%Z)T^F1OotKycjK{f(jS4;v6b!I|0fAeACQv<12+`t6si@KePv&MbXx+D2b}(b$1TRN*16S=ga@yjk z?Nk7_SAMD$dgvYGY$_-AmEY)#m=W!zZ_#a-v-nAt!_D5EY~;vBe6uNFQV+1|n6+@0 zcEZzE$|waj!ewhr_=Bwv5$hO@@1i1h$t&npw2f|z{GNK`6Qs+00+-rttB=8E`r+QeHiF0dxi=avkVF1@5xPI#U&vp~SHY_yv+@D^%iY_x!TB#U zn{Gm7B}Wk3Y%$@kP>PMy`a}P9N;!sXR24h705)%bNt?wJ(7-i>2c)lD94huRn6r!o zaVk}hMXkC5eg7wXv&(Vw*&LKZBepntI;IlUiL0P)uLDuILbx#qCHc+zP!kV8GTTNy z0Xw-d=6Gyml5ElFPHLkY{EwZ+N;Sf_o3zW$ha5x=YQ!XC_kmxF#Y6`6$Rv19opk!Mvi5CAw-`aRMrzu9Fdvr?m58k%TRydm$aaY(c+iz! z*x!Pjd=ixEJj7Yt`#N#UQJk!YJgjkWQ8lGCOlJ!-^_cODpE*ZYWuDNFsHRX4%%ddu z#VRBDC>8(dMC3ol<9nY3U(9`zHA@>_Pz3KP1?5}fTFeWF1UCfA2BssYJ{noyA>opE zN9v?BhTi3*UKtA9wbq942)s>R@W^|E-@M7bgZRr42VGeqaz8YBJXMq;s4Y;k{!1t0 z{f~3*a;6|F_A*orrtFmzzm;DMrdGQ6L>oh5|V|YM6sK&t@o- z)#q?Uw!qfa!bWqw?UcO$v6YzY$cmpbH*!^r;td-_ZNTrRKh=wV!z@E*_1XQ=V?v`d z7wVj%>~qf{&pK!ZzA#nk8Dt(fQVDEZb71%WUX6!BRL71t7X5u!tu3^qUyVa>Msx>z zJ1-ayt1#tNket^F#L!{rX(OOD?T1{eBA~xnU_{8sqq~jY=WV#DZy^uR&~u?@nS{CV zNVupMYXP;dx?LqOaU7|A(c{cGD>Z!3UfSWK1~XS(^F2km3EoG(^ZxpgpCeNvFGNN~ zb&Q%FSvYbtc1T727rd4E(rl7zk~0eWMFg90zIanv=W_cX-(6&fu~Xs3c?SLR?x9E02wg}G^{vJ zH&8hGxW~KixXwE#K>;?I+CyGO*BJ}lhiL6Hhr^S6SF5L8SO3ydk>ync@7!&@hu&4c zujc`Q?gbRmJD{9=g>$N*wZqB`^GF@2PAnnvI8I|W^T^Q$%E(iWs}2P|!Oh_1Pe76g z6MkyWHRd6&{G+;CDFRKiB{RxpB^j=_N_sy~ZsV;3;Z(pYFB383M?CWcPVMq^B%Men zFt?ZpXGPGKotRc!KrLSl$$jTsajuh4g?z&NFCR{$HPlw}EoPO~;BndyzhY%fChQ>G z|FmpKU%L!Gx`i$+gzSeRcwa}_+aix9!n#{BC-xPz@8*u<-Fzg{PAk?*MYbWY|y{eVuQ*TR3j6rXkl^_;XE4ILKp zlfQuu-45@S&t3}o3}?7h}Is8LY0WmJ@vY z&Db0K4OM$(%%(K#5buyXp?3%~6G4bB1Zqn~_@~Rk(aCz!QS&W!R$&%{v%M8FqCK{v z;g-lK4yyOy*<39x5_5{fu~{oDBtXkM7n6$Y(B~yWgY#8bC8P?Eu*0YzloNVGoikW? zfj_6gxB3GA+)nv0=mH^SqFP%Uh!oBa=r3Mjvvn9dnR!qm7)l}agpvbV^6g-UOwv{u zW32MF)lfo?Votbnv-9~ZzB~RNkw)a+sK2AL#_%y0qtm0;M@L1UjH({>F)}6MwttuJ z2>%4?qP6ZwS2r-XI*~sK@*jIR-s;Ti<#nM>Au`l z9imOr`)qI12H~{HyA+2a!HaPeKA5Je3uK}m+CJ@zwhj*K8AxOu zX`~t5kzHs*Zt54SvGoY|&>XWr`q*7srrI9Uw=zl{xtFw3Y$QGsSZFdU332%Sj}RAQ z8h2eOuk{2)q?>sT^N`K99K>&;51y*GWNZHgc5y{#3#Jo&nH=coLA14Rv)#0{#ALT0QnqYF5P5{@L@&n}M@e!s zxq_SmDtZ+44OxECNGyFt&LF#yqtNX~klP$vkZC3%x#1~tDpnz9X(KodpP>EUfQjN( zeKfd<(-cyPlihI3bdsN;qfC~v!RH$f#X%*^6GKXNwSy{v0?`&;)N}C4H$^uog`3#j z#DByDzXD=`WC32_NhI!PI_76 z2ApK2;Bbkzx`9_(8p#z?kyP`>-kgw7pL9Wb;w5SxtgzE?;+!N0W_`o%1HfKFhhl*3@9kq!r*k}B}J*B{7 zc3yspYRfM+gxX;rs=e*O`@uQT>!m~UQW4K@Exdy-g-7B>X|22-DyV(hY`vQ?4pXiU zW_|Pl1L3*2gYLGv5rA?dKl<;sT79h<`nEZ6LfVl1I8M)MPK6#~rrqbLLYAg>p|eq- zG8*h!47P4Qs9$5;zg^GJd#`d8b7cqfEdd0wmd?)DBiiX{m>tZ8O7k6_|Bk4)7wWur zOi4l=uv?fGx*IGUObM(B)(<@j-4;Ah>;9t@*YX&nOmFxx&Z7E`=_E_5n6K<~&UYPg z{{ve4QuYv=0bTYSxUTCX>AAl<0sM*s;C|PkFHkkmM-On^MUB_m#)hj|ZO!IJ5a(Sb z{T^oJTk*-FwV}`=6xL?IYraA|s`b#{gNwJvXoRzH7nn~~k@V3ldxcSy&OCyRy#BSmsv7@+K+za(!emqHowW)ZH7MPb%ai!R*VrOyF zu?rax#ppBiSf+}z8GcVoKq= zkXw`Clg%XRViPhBnUx*kHHt&3Vm;scUadfMY`CBh@I)!Sm|xD);b#on(sN7o*u z@6dy~iLE$ccEWaPDAH2jg$E(!YKpx$>fO^s2693OuxJVpk@gwLSXmzag? za>(=L%E};B)v{rduUWCUL0b~D9o5OJ9yYN@L78bv8+0r@E;pHM&Ufe!mM|5W1N0c&`Y-9~ z=*1^F?}DH#xSG44L63G03DM1w*^r2;_Zqe~S1_S!uQSL8e=iS1{>BgNhpP+GVgQC9_p z1yh`f!pwa+J(QkAwIz?@ZVT9IgOrD`E!}sw_sxDQKmVh?OfhvDN@nb?* z6Tb4>V4w(4SM-M;TZG2qJKV~@^kVuPtrT2hJJo#fIb~B)<=xmI1;NT4BCo{+`x~58 zIlxO;Cnv#ex=P!oS2TOUy;Ba8ccihBCvYmWV27M=_Hos4M|$S7|KsQ^z^tscF#N~q znlr)B-HieQBHazrEgjO`El7uSN=r(Jq)3B+Gy>8M)2Hi?`+6T9uRL;@nRCv+_g;Ig z?|VPlRU67zDE@VVnDivcn(ao?@FXdzD&EN{?lAfFIUUn&5z7hF0>ee9wv)7FFyTK( zPSXuiNKtRdnYgA{$A!ca5AV50;uj^$ark-GdAH5@`g_;o85UZ@MaKq!)E4)?LZN zoN)v9;`;E0`f6V?8?UNm)5>U8xW(Newbfviwo&8N^UNV$q5PT2S}hYRi1Tt9DcRFV zaqb>5MP`MEqsJSGle0|J4BesFzYDsasHNCsF2oTkxL5!zej-JIS*< z2jS$rR+hTBjy`})$qnQd)q!{IW2#`0ev_uiG5HOh$5$qg`8mYNOV(+&%Mf{ebUdF} zidd?c3z)tz7BM8seWa@5DgBxDjnS>aKU->;GmZZk zX2{FLLvXQ5C{v=dBdOs+;mJIuV^QYbgO~q9_(8aL z9{0{U$nn4yZ{2N;iX{}(;i>fD}bhVE(W^%C*Qd}%JJ#;qY!2$OIFZgey|CEfa ziq*nty+SQar@gseTNsEcB;Jt6IFdU1p=E&eH*(wq%vv@wle)#Ocg*}P6zBYKw@1lF zX(}h$Ml~FJLH+y=9{q)g98HCBF%=iOf?B?`QUk)uSdxD4!Y&>|lFN2dAabdG&&h^e5;{T_TUeO~dm;iJ>ppA&5d7VpGC4XgYC1_ zXy8oSA-|TUaGJIj_mc;=jqE@xq@j5{nI*~VTmaL%8l9V=eC@jAaSfFEGB0{YrTYo5 z|6;i=Q?v%mIp)$&dcw@(y>Y&=lyMSTgCo*n@c{W%!}VHPE6({DvC7eJBOP(c+=Q_n zhJ@dNu1NLpZumMsv%fWsevW2m)^s$M6>F@NRtm7+tb!T55q88=m|h>OSO&q z9$^Fe#D(;BE*qwxNvLA}+gz63?MQ1rcA<*4k5rQlt?N1YikqvOE|Qb-lzCu#Ss}SB zzgShsuYV%V`>nEDsm`w&@DLLDcVFdOs2+CixxFAuy=0cJXlL|O!d0=Bd=@%?F7rUk zEhfrE>(5?i#Milkmee)~`Z#JR7x9!55Ca#4G(Cg{SjG09hMs^nF`frA~ZT1HDL~z#!Bd`@U3uvCb9oUlA|lx0fxu!#>y&{m?C5+ zfBXvllezfm8lbHIGP*Ug5bsV&Zn^*M6kC;}YD~*RQsy#Amm3%tnl_tbmh!fc?TEd# z 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≪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 Date: Wed, 22 Jun 2022 15:47:51 +0200 Subject: [PATCH 10/60] remove unused imports --- tests/packaged_modules/test_audiofolder.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/packaged_modules/test_audiofolder.py b/tests/packaged_modules/test_audiofolder.py index 20b238dc11d..e1034379297 100644 --- a/tests/packaged_modules/test_audiofolder.py +++ b/tests/packaged_modules/test_audiofolder.py @@ -2,9 +2,7 @@ import shutil import textwrap -import librosa import pytest -import soundfile as sf from datasets import Audio, Features, Value from datasets.data_files import DataFilesDict, get_patterns_locally From 420dd2b8805f8a840792d6de5c8aa8c1b8120f8c Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Wed, 22 Jun 2022 16:36:00 +0200 Subject: [PATCH 11/60] Revert "check if two separate files fix test error (i guess not but just in case)" This reverts commit d0b2592b26c6a032c38cbd91591d7d9a89046954. --- tests/features/data/test_audio_16000.wav | Bin 146846 -> 0 bytes tests/packaged_modules/test_audiofolder.py | 13 +++---------- 2 files changed, 3 insertions(+), 10 deletions(-) delete mode 100644 tests/features/data/test_audio_16000.wav diff --git a/tests/features/data/test_audio_16000.wav b/tests/features/data/test_audio_16000.wav deleted file mode 100644 index 7a83fab5ae4c3f3b9f92c1aff5b443d69af46588..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 146846 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 z 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≪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 Date: Wed, 22 Jun 2022 19:24:18 +0200 Subject: [PATCH 12/60] add uppercased formats, modify test for zip archive (check that arrays are different) --- src/datasets/packaged_modules/__init__.py | 1 + tests/packaged_modules/test_audiofolder.py | 12 +++++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/datasets/packaged_modules/__init__.py b/src/datasets/packaged_modules/__init__.py index 517bb7da367..ee422bb98ec 100644 --- a/src/datasets/packaged_modules/__init__.py +++ b/src/datasets/packaged_modules/__init__.py @@ -47,3 +47,4 @@ def _hash_python_lines(lines: List[str]) -> str: _EXTENSION_TO_MODULE.update({ext[1:]: ("imagefolder", {}) for ext in imagefolder.ImageFolder.IMAGE_EXTENSIONS}) _EXTENSION_TO_MODULE.update({ext[1:].upper(): ("imagefolder", {}) for ext in imagefolder.ImageFolder.IMAGE_EXTENSIONS}) _EXTENSION_TO_MODULE.update({ext[1:]: ("audiofolder", {}) for ext in audiofolder.AudioFolder.AUDIO_EXTENSIONS}) +_EXTENSION_TO_MODULE.update({ext[1:].upper(): ("audiofolder", {}) for ext in audiofolder.AudioFolder.AUDIO_EXTENSIONS}) diff --git a/tests/packaged_modules/test_audiofolder.py b/tests/packaged_modules/test_audiofolder.py index 5392376b488..586d8a3815b 100644 --- a/tests/packaged_modules/test_audiofolder.py +++ b/tests/packaged_modules/test_audiofolder.py @@ -1,7 +1,10 @@ import shutil import textwrap +import librosa +import numpy as np import pytest +import soundfile as sf from datasets import Audio, Features, Value from datasets.data_files import DataFilesDict, get_patterns_locally @@ -136,7 +139,7 @@ def data_files_with_zip_archives(tmp_path, audio_file): audio_filename2 = subdir / "audio_file2.wav" # in subdir # make sure they're two different audios # Indeed we won't be able to compare the audio filenames, since the archive is not extracted in streaming mode - array, sampling_rate = librosa.load(str(audio_filename), sr=16000) + array, sampling_rate = librosa.load(str(audio_filename), sr=16000) # original sampling rate is 44100 sf.write(str(audio_filename2), array, samplerate=16000) audio_metadata_filename = archive_dir / "metadata.jsonl" @@ -286,8 +289,11 @@ def test_data_files_with_metadata_and_archives(streaming, cache_dir, data_files_ assert split in datasets dataset = list(datasets[split]) assert len(dataset) == expected_num_of_audios - # make sure each sample has its own audio and metadata, take first 10 numbers in array just in case - assert len(set([tuple(example["audio"]["array"][:10]) for example in dataset])) == expected_num_of_audios + # make sure each sample has its own audio (all arrays are different) and metadata + assert ( + sum(np.array_equal(dataset[0]["audio"]["array"], example["audio"]["array"]) for example in dataset[1:]) + == 0 + ) assert len(set(example["text"] for example in dataset)) == expected_num_of_audios assert all(example["text"] is not None for example in dataset) From eecc449f7ca77db9c7d4e0886a2b394f59df36d3 Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Thu, 23 Jun 2022 13:22:32 +0200 Subject: [PATCH 13/60] add contributors --- datasets/audiofolder/README.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 datasets/audiofolder/README.md diff --git a/datasets/audiofolder/README.md b/datasets/audiofolder/README.md new file mode 100644 index 00000000000..7ab03192318 --- /dev/null +++ b/datasets/audiofolder/README.md @@ -0,0 +1,4 @@ + +### Contributions + +Thanks to [@polinaeterna](https://github.com/polinaeterna), [@nateraw](https://github.com/nateraw), [@lhoestq](https://github.com/lhoestq) and [@mariosasko](https://github.com/mariosasko) for adding this dataset. From 3c6c56a9db8c5c3e3ed753b28fb0f1541594521a Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Tue, 5 Jul 2022 13:20:53 +0200 Subject: [PATCH 14/60] add a generic loader --- src/datasets/packaged_modules/__init__.py | 4 +- .../imagefolder/imagefolder.py | 87 ++-- .../utils/autofolder/autofolder.py | 378 ++++++++++++++++++ 3 files changed, 435 insertions(+), 34 deletions(-) create mode 100644 src/datasets/packaged_modules/utils/autofolder/autofolder.py diff --git a/src/datasets/packaged_modules/__init__.py b/src/datasets/packaged_modules/__init__.py index 0fb31713a02..8b3d82a3736 100644 --- a/src/datasets/packaged_modules/__init__.py +++ b/src/datasets/packaged_modules/__init__.py @@ -44,8 +44,8 @@ def _hash_python_lines(lines: List[str]) -> str: "parquet": ("parquet", {}), "txt": ("text", {}), } -_EXTENSION_TO_MODULE.update({ext[1:]: ("imagefolder", {}) for ext in imagefolder.ImageFolder.IMAGE_EXTENSIONS}) -_EXTENSION_TO_MODULE.update({ext[1:].upper(): ("imagefolder", {}) for ext in imagefolder.ImageFolder.IMAGE_EXTENSIONS}) +_EXTENSION_TO_MODULE.update({ext[1:]: ("imagefolder", {}) for ext in imagefolder.ImageFolder.EXTENSIONS}) +_EXTENSION_TO_MODULE.update({ext[1:].upper(): ("imagefolder", {}) for ext in imagefolder.ImageFolder.EXTENSIONS}) _EXTENSION_TO_MODULE.update({ext[1:]: ("audiofolder", {}) for ext in audiofolder.AudioFolder.AUDIO_EXTENSIONS}) _EXTENSION_TO_MODULE.update({ext[1:].upper(): ("audiofolder", {}) for ext in audiofolder.AudioFolder.AUDIO_EXTENSIONS}) _MODULE_SUPPORTS_METADATA = {"imagefolder", "audiofolder"} diff --git a/src/datasets/packaged_modules/imagefolder/imagefolder.py b/src/datasets/packaged_modules/imagefolder/imagefolder.py index ecb99092e92..6c75c3c7ab7 100644 --- a/src/datasets/packaged_modules/imagefolder/imagefolder.py +++ b/src/datasets/packaged_modules/imagefolder/imagefolder.py @@ -2,7 +2,7 @@ import itertools import os from dataclasses import dataclass -from typing import List, Optional, Tuple +from typing import Any, List, Optional, Tuple import pyarrow.compute as pc import pyarrow.json as paj @@ -10,39 +10,56 @@ import datasets from datasets.tasks import ImageClassification +from ..utils.autofolder import autofolder +from ..utils.autofolder.autofolder import count_path_segments, pa_table_to_pylist + logger = datasets.utils.logging.get_logger(__name__) -if datasets.config.PYARROW_VERSION.major >= 7: +@dataclass +class ImageFolderConfig(autofolder.AutoFolderConfig): + """BuilderConfig for ImageFolder.""" - def pa_table_to_pylist(table): - return table.to_pylist() + base_feature: Any = datasets.Image() + drop_labels: bool = False + drop_metadata: bool = False -else: - def pa_table_to_pylist(table): - keys = table.column_names - values = table.to_pydict().values() - return [{k: v for k, v in zip(keys, row_values)} for row_values in zip(*values)] +class ImageFolder(autofolder.AutoFolder): + BUILDER_CONFIG_CLASS = ImageFolderConfig + # BUILDER_CONFIG = autofolder.AutoFolderConfig(base_feature=datasets.Image(), base_feature_name="image") + EXTENSIONS: List[str] = [] # definition at the bottom of the script + def _info(self): + return datasets.DatasetInfo(features=self.config.features) -def count_path_segments(path): - cnt = 0 - while True: - parts = os.path.split(path) - if parts[0] == path: - break - elif parts[1] == path: - break - else: - path = parts[0] - cnt += 1 - return cnt + def _split_generators(self, dl_manager): + # _prepare_split_generators sets self.config.features, self.info, + # infers labels, finds metadata files if needed and returns splits + splits = self._prepare_split_generators(dl_manager) + + # to check if metadata files were found, see if they are in the first split kwargs + # (metadata files passed to _generate_examples() are the same for each split) + if not self.config.features and not self.config.drop_labels and not splits[0].gen_kwargs["metadata_files"]: + task_template = ImageClassification( + image_column=self.config.base_feature_name, label_column=self.config.label_column + ) + task_template = task_template.align_with_features(self.info.features) + self.info.task_templates = [task_template] + + return splits + + # self._generate_examples() is implemented in a parent class (AutoFolder) git status + + # def _generate_examples(self, files, metadata_files, split_name): + # generator = self._prepare_generate_examples(files, metadata_files, split_name) + # for _, example in generator: + # yield _, example @dataclass -class ImageFolderConfig(datasets.BuilderConfig): +class ImageFolderConfigOld(datasets.BuilderConfig): """BuilderConfig for ImageFolder.""" features: Optional[datasets.Features] = None @@ -50,7 +67,7 @@ class ImageFolderConfig(datasets.BuilderConfig): drop_metadata: bool = False -class ImageFolder(datasets.GeneratorBasedBuilder): +class ImageFolderOld(datasets.GeneratorBasedBuilder): BUILDER_CONFIG_CLASS = ImageFolderConfig IMAGE_EXTENSIONS: List[str] = [] # definition at the bottom of the script @@ -82,9 +99,11 @@ def analyze(files_or_archives, downloaded_files_or_dirs, split): for original_file, downloaded_file in zip(original_files, downloaded_files): original_file, downloaded_file = str(original_file), str(downloaded_file) _, original_file_ext = os.path.splitext(original_file) - if original_file_ext.lower() in self.IMAGE_EXTENSIONS: + if original_file_ext.lower() in self.IMAGE_EXTENSIONS and not self.config.drop_labels: labels.add(os.path.basename(os.path.dirname(original_file))) - elif os.path.basename(original_file) == self.METADATA_FILENAME: + elif ( + os.path.basename(original_file) == self.METADATA_FILENAME and not self.config.drop_metadata + ): metadata_files[split].add((original_file, downloaded_file)) else: original_file_name = os.path.basename(original_file) @@ -97,9 +116,12 @@ def analyze(files_or_archives, downloaded_files_or_dirs, split): archive, downloaded_dir = str(archive), str(downloaded_dir) for downloaded_dir_file in dl_manager.iter_files(downloaded_dir): _, downloaded_dir_file_ext = os.path.splitext(downloaded_dir_file) - if downloaded_dir_file_ext in self.IMAGE_EXTENSIONS: + if downloaded_dir_file_ext in self.IMAGE_EXTENSIONS and not self.config.drop_labels: labels.add(os.path.basename(os.path.dirname(downloaded_dir_file))) - elif os.path.basename(downloaded_dir_file) == self.METADATA_FILENAME: + elif ( + os.path.basename(downloaded_dir_file) == self.METADATA_FILENAME + and not self.config.drop_metadata + ): metadata_files[split].add((None, downloaded_dir_file)) else: archive_file_name = os.path.basename(archive) @@ -338,11 +360,11 @@ def _generate_examples(self, files, metadata_files, split_name): if original_file is not None: _, original_file_ext = os.path.splitext(original_file) if original_file_ext.lower() in self.IMAGE_EXTENSIONS: - if self.config.drop_labels or metadata_files: + if self.config.drop_labels: yield file_idx, { "image": downloaded_file_or_dir, } - else: + else: # self.config.drop_labels is False, self.config.drop_metadata is True yield file_idx, { "image": downloaded_file_or_dir, "label": os.path.basename(os.path.dirname(original_file)), @@ -352,11 +374,11 @@ def _generate_examples(self, files, metadata_files, split_name): for downloaded_dir_file in downloaded_file_or_dir: _, downloaded_dir_file_ext = os.path.splitext(downloaded_dir_file) if downloaded_dir_file_ext.lower() in self.IMAGE_EXTENSIONS: - if self.config.drop_labels or metadata_files: + if self.config.drop_labels: yield file_idx, { "image": downloaded_dir_file, } - else: + else: # self.config.drop_labels is False, self.config.drop_metadata is True yield file_idx, { "image": downloaded_dir_file, "label": os.path.basename(os.path.dirname(downloaded_dir_file)), @@ -376,7 +398,7 @@ def _generate_examples(self, files, metadata_files, split_name): # We intentionally do not run this code on launch because: # (1) Pillow is an optional dependency, so importing Pillow in global namespace is not allowed # (2) To ensure the list of supported extensions is deterministic -ImageFolder.IMAGE_EXTENSIONS = [ +IMAGE_EXTENSIONS = [ ".blp", ".bmp", ".dib", @@ -441,3 +463,4 @@ def _generate_examples(self, files, metadata_files, split_name): ".xbm", ".xpm", ] +ImageFolder.EXTENSIONS = IMAGE_EXTENSIONS diff --git a/src/datasets/packaged_modules/utils/autofolder/autofolder.py b/src/datasets/packaged_modules/utils/autofolder/autofolder.py new file mode 100644 index 00000000000..569d38daaf7 --- /dev/null +++ b/src/datasets/packaged_modules/utils/autofolder/autofolder.py @@ -0,0 +1,378 @@ +import collections +import itertools +import os +from dataclasses import dataclass +from typing import Any, List, Optional, Tuple + +import pyarrow.compute as pc +import pyarrow.json as paj + +import datasets + + +logger = datasets.utils.logging.get_logger(__name__) + + +if datasets.config.PYARROW_VERSION.major >= 7: + + def pa_table_to_pylist(table): + return table.to_pylist() + +else: + + def pa_table_to_pylist(table): + keys = table.column_names + values = table.to_pydict().values() + return [{k: v for k, v in zip(keys, row_values)} for row_values in zip(*values)] + + +def count_path_segments(path): + cnt = 0 + while True: + parts = os.path.split(path) + if parts[0] == path: + break + elif parts[1] == path: + break + else: + path = parts[0] + cnt += 1 + return cnt + + +@dataclass +class AutoFolderConfig(datasets.BuilderConfig): + """BuilderConfig for AutoFolder.""" + + base_feature: Any = ( + None # i.e. datasets.Image(), datasets.Audio(), we don't have a type for Feature # TODO: ClassVar? + ) + base_feature_name: str = "" + label_column: str = "label" + features: Optional[datasets.Features] = None + drop_labels: bool = False + drop_metadata: bool = False + + def __post_init__(self): + if not self.base_feature_name: + # automatically infer feature name from feature if it's not provided + self.base_feature_name = self.base_feature._type.lower() + + +class AutoFolder(datasets.GeneratorBasedBuilder): + BUILDER_CONFIG_CLASS = AutoFolderConfig + EXTENSIONS: List[str] = [] + SKIP_CHECKSUM_COMPUTATION_BY_DEFAULT = True + METADATA_FILENAME: str = "metadata.jsonl" + + def _info(self): + return datasets.DatasetInfo(features=self.config.features) + + def _prepare_split_generators(self, dl_manager): + if not self.config.data_files: + raise ValueError(f"At least one data file must be specified, but got data_files={self.config.data_files}") + + # Do an early pass if: + # * `features` are not specified, to infer the class labels + # * `drop_metadata` is False, to find the metadata files + do_analyze = (self.config.features is None and not self.config.drop_labels) or not self.config.drop_metadata + if do_analyze: + labels = set() + metadata_files = collections.defaultdict(list) + + def analyze(files_or_archives, downloaded_files_or_dirs, split): + if len(downloaded_files_or_dirs) == 0: + return + # The files are separated from the archives at this point, so check the first sample + # to see if it's a file or a directory and iterate accordingly + if os.path.isfile(downloaded_files_or_dirs[0]): + original_files, downloaded_files = files_or_archives, downloaded_files_or_dirs + for original_file, downloaded_file in zip(original_files, downloaded_files): + original_file, downloaded_file = str(original_file), str(downloaded_file) + _, original_file_ext = os.path.splitext(original_file) + if original_file_ext.lower() in self.EXTENSIONS and not self.config.drop_labels: + labels.add(os.path.basename(os.path.dirname(original_file))) + elif ( + os.path.basename(original_file) == self.METADATA_FILENAME and not self.config.drop_metadata + ): + metadata_files[split].append((original_file, downloaded_file)) + else: + original_file_name = os.path.basename(original_file) + logger.debug( + f"The file '{original_file_name}' was ignored: it is not an {self.config.base_feature_name}, and is not {self.METADATA_FILENAME} either." + ) + else: + archives, downloaded_dirs = files_or_archives, downloaded_files_or_dirs + for archive, downloaded_dir in zip(archives, downloaded_dirs): + archive, downloaded_dir = str(archive), str(downloaded_dir) + for downloaded_dir_file in dl_manager.iter_files(downloaded_dir): + _, downloaded_dir_file_ext = os.path.splitext(downloaded_dir_file) + if downloaded_dir_file_ext in self.EXTENSIONS and not self.config.drop_labels: + labels.add(os.path.basename(os.path.dirname(downloaded_dir_file))) + elif ( + os.path.basename(downloaded_dir_file) == self.METADATA_FILENAME + and not self.config.drop_metadata + ): + metadata_files[split].append((None, downloaded_dir_file)) + else: + archive_file_name = os.path.basename(archive) + original_file_name = os.path.basename(downloaded_dir_file) + logger.debug( + f"The file '{original_file_name}' from the archive '{archive_file_name}' was ignored: it is not an {self.config.base_feature_name}, and is not {self.METADATA_FILENAME} either." + ) + + if not self.config.drop_labels: + logger.info("Inferring labels from data files...") + if not self.config.drop_metadata: + logger.info("Analyzing metadata files...") + + data_files = self.config.data_files + splits = [] + for split_name, files in data_files.items(): + if isinstance(files, str): + files = [files] + files, archives = self._split_files_and_archives(files) + downloaded_files = dl_manager.download(files) + downloaded_dirs = dl_manager.download_and_extract(archives) + if do_analyze: + analyze(files, downloaded_files, split_name) + analyze(archives, downloaded_dirs, split_name) + splits.append( + datasets.SplitGenerator( + name=split_name, + gen_kwargs={ + "files": [(file, downloaded_file) for file, downloaded_file in zip(files, downloaded_files)] + + [(None, dl_manager.iter_files(downloaded_dir)) for downloaded_dir in downloaded_dirs], + "metadata_files": metadata_files if not self.config.drop_metadata else None, + "split_name": split_name, + }, + ) + ) + + if not self.config.drop_metadata and metadata_files: + # Verify that: + # * all metadata files have the same set of features + # * the `file_name` key is one of the metadata keys and is of type string + features_per_metadata_file: List[Tuple[str, datasets.Features]] = [] + for _, downloaded_metadata_file in itertools.chain.from_iterable(metadata_files.values()): + with open(downloaded_metadata_file, "rb") as f: + pa_metadata_table = paj.read_json(f) + features_per_metadata_file.append( + (downloaded_metadata_file, datasets.Features.from_arrow_schema(pa_metadata_table.schema)) + ) + for downloaded_metadata_file, metadata_features in features_per_metadata_file: + if metadata_features != features_per_metadata_file[0][1]: + raise ValueError( + f"Metadata files {downloaded_metadata_file} and {features_per_metadata_file[0][0]} have different features: {features_per_metadata_file[0]} != {metadata_features}" + ) + metadata_features = features_per_metadata_file[0][1] + if "file_name" not in metadata_features: + raise ValueError("`file_name` must be present as dictionary key in metadata files") + if metadata_features["file_name"] != datasets.Value("string"): + raise ValueError("`file_name` key must be a string") + del metadata_features["file_name"] + else: + metadata_features = None + + # return splits, labels, metadata_files, metadata_features + + if self.config.features is None: + if not self.config.drop_labels and not metadata_files: + self.info.features = datasets.Features( + { + self.config.base_feature_name: self.config.base_feature, + self.config.label_column: datasets.ClassLabel(names=sorted(labels)), + } + ) + else: + self.info.features = datasets.Features({self.config.base_feature_name: self.config.base_feature}) + + if not self.config.drop_metadata and metadata_files: + # Verify that there are no duplicated keys when compared to the existing features + # (self.config.base_feature, optionally self.config.label_column) + duplicated_keys = set(self.info.features) & set(metadata_features) + if duplicated_keys: + raise ValueError( + f"Metadata feature keys {list(duplicated_keys)} are already present as the {self.config.base_feature_name} features" + ) + self.info.features.update(metadata_features) + + return splits + + def _split_files_and_archives(self, data_files): + files, archives = [], [] + for data_file in data_files: + _, data_file_ext = os.path.splitext(data_file) + if data_file_ext.lower() in self.EXTENSIONS: + files.append(data_file) + elif os.path.basename(data_file) == self.METADATA_FILENAME: + files.append(data_file) + else: + archives.append(data_file) + return files, archives + + def _generate_examples(self, files, metadata_files, split_name): + if not self.config.drop_metadata and metadata_files: + split_metadata_files = metadata_files.get(split_name, []) + sample_empty_metadata = {k: None for k in self.info.features if k != self.config.base_feature_name} + + last_checked_dir = None + metadata_dir = None + metadata_dict = None + downloaded_metadata_file = None + + file_idx = 0 + for original_file, downloaded_file_or_dir in files: + if original_file is not None: + _, original_file_ext = os.path.splitext(original_file) + if original_file_ext.lower() in self.EXTENSIONS: + # If the file is a file of a needed type, and we've just entered a new directory, + # find the nereast metadata file (by counting path segments) for the directory + current_dir = os.path.dirname(original_file) + if last_checked_dir is None or last_checked_dir != current_dir: + last_checked_dir = current_dir + metadata_file_candidates = [ + ( + os.path.relpath(original_file, os.path.dirname(metadata_file_candidate)), + metadata_file_candidate, + downloaded_metadata_file, + ) + for metadata_file_candidate, downloaded_metadata_file in split_metadata_files + if metadata_file_candidate + is not None # ignore metadata_files that are inside archives + and not os.path.relpath( + original_file, os.path.dirname(metadata_file_candidate) + ).startswith("..") + ] + if metadata_file_candidates: + _, metadata_file, downloaded_metadata_file = min( + metadata_file_candidates, key=lambda x: count_path_segments(x[0]) + ) + with open(downloaded_metadata_file, "rb") as f: + pa_metadata_table = paj.read_json(f) + pa_file_name_array = pa_metadata_table["file_name"] + pa_file_name_array = pc.replace_substring( + pa_file_name_array, pattern="\\", replacement="/" + ) + pa_metadata_table = pa_metadata_table.drop(["file_name"]) + metadata_dir = os.path.dirname(metadata_file) + metadata_dict = { + file_name: sample_metadata + for file_name, sample_metadata in zip( + pa_file_name_array.to_pylist(), pa_table_to_pylist(pa_metadata_table) + ) + } + else: + raise ValueError( + f"One or several metadata.jsonl were found, but not in the same directory or in a parent directory of {downloaded_file_or_dir}." + ) + if metadata_dir is not None and downloaded_metadata_file is not None: + file_relpath = os.path.relpath(original_file, metadata_dir) + file_relpath = file_relpath.replace("\\", "/") + if file_relpath not in metadata_dict: + raise ValueError( + f"{self.config.base_feature_name} at {file_relpath} doesn't have metadata in {downloaded_metadata_file}." + ) + sample_metadata = metadata_dict[file_relpath] + else: + raise ValueError( + f"One or several metadata.jsonl were found, but not in the same directory or in a parent directory of {downloaded_file_or_dir}." + ) + yield file_idx, { + **sample_empty_metadata, + self.config.base_feature_name: downloaded_file_or_dir, + **sample_metadata, + } + file_idx += 1 + else: + for downloaded_dir_file in downloaded_file_or_dir: + _, downloaded_dir_file_ext = os.path.splitext(downloaded_dir_file) + if downloaded_dir_file_ext.lower() in self.EXTENSIONS: + current_dir = os.path.dirname(downloaded_dir_file) + if last_checked_dir is None or last_checked_dir != current_dir: + last_checked_dir = current_dir + metadata_file_candidates = [ + ( + os.path.relpath( + downloaded_dir_file, os.path.dirname(downloaded_metadata_file) + ), + metadata_file_candidate, + downloaded_metadata_file, + ) + for metadata_file_candidate, downloaded_metadata_file in split_metadata_files + if metadata_file_candidate + is None # ignore metadata_files that are not inside archives + and not os.path.relpath( + downloaded_dir_file, os.path.dirname(downloaded_metadata_file) + ).startswith("..") + ] + if metadata_file_candidates: + _, metadata_file, downloaded_metadata_file = min( + metadata_file_candidates, key=lambda x: count_path_segments(x[0]) + ) + with open(downloaded_metadata_file, "rb") as f: + pa_metadata_table = paj.read_json(f) + pa_file_name_array = pa_metadata_table["file_name"] + pa_file_name_array = pc.replace_substring( + pa_file_name_array, pattern="\\", replacement="/" + ) + pa_metadata_table = pa_metadata_table.drop(["file_name"]) + metadata_dir = os.path.dirname(downloaded_metadata_file) + metadata_dict = { + file_name: sample_metadata + for file_name, sample_metadata in zip( + pa_file_name_array.to_pylist(), pa_table_to_pylist(pa_metadata_table) + ) + } + else: + raise ValueError( + f"One or several metadata.jsonl were found, but not in the same directory or in a parent directory of {downloaded_dir_file}." + ) + if metadata_dir is not None and downloaded_metadata_file is not None: + downloaded_dir_file_relpath = os.path.relpath(downloaded_dir_file, metadata_dir) + downloaded_dir_file_relpath = downloaded_dir_file_relpath.replace("\\", "/") + if downloaded_dir_file_relpath not in metadata_dict: + raise ValueError( + f"{self.config.base_feature_name} at {downloaded_dir_file_relpath} doesn't have metadata in {downloaded_metadata_file}." + ) + sample_metadata = metadata_dict[downloaded_dir_file_relpath] + else: + raise ValueError( + f"One or several metadata.jsonl were found, but not in the same directory or in a parent directory of {downloaded_dir_file}." + ) + yield file_idx, { + **sample_empty_metadata, + self.config.base_feature_name: downloaded_dir_file, + **sample_metadata, + } + file_idx += 1 + else: + file_idx = 0 + for original_file, downloaded_file_or_dir in files: + if original_file is not None: + _, original_file_ext = os.path.splitext(original_file) + if original_file_ext.lower() in self.EXTENSIONS: + if self.config.drop_labels or metadata_files: + yield file_idx, { + self.config.base_feature_name: downloaded_file_or_dir, + } + else: + yield file_idx, { + self.config.base_feature_name: downloaded_file_or_dir, + self.config.label_column: os.path.basename(os.path.dirname(original_file)), + } + file_idx += 1 + else: + for downloaded_dir_file in downloaded_file_or_dir: + _, downloaded_dir_file_ext = os.path.splitext(downloaded_dir_file) + if downloaded_dir_file_ext.lower() in self.EXTENSIONS: + if self.config.drop_labels or metadata_files: + yield file_idx, { + self.config.base_feature_name: downloaded_file_or_dir, + } + else: + yield file_idx, { + self.config.base_feature_name: downloaded_file_or_dir, + self.config.label_column: os.path.basename(os.path.dirname(downloaded_dir_file)), + } + file_idx += 1 From 6840eabd133cc70c1f890c85944b7d23c881c53c Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Tue, 5 Jul 2022 17:05:11 +0200 Subject: [PATCH 15/60] change name of get_patterns --- tests/packaged_modules/test_audiofolder.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/packaged_modules/test_audiofolder.py b/tests/packaged_modules/test_audiofolder.py index 586d8a3815b..1cdc0ea217d 100644 --- a/tests/packaged_modules/test_audiofolder.py +++ b/tests/packaged_modules/test_audiofolder.py @@ -7,7 +7,7 @@ import soundfile as sf from datasets import Audio, Features, Value -from datasets.data_files import DataFilesDict, get_patterns_locally +from datasets.data_files import DataFilesDict, get_data_patterns_locally from datasets.packaged_modules.audiofolder.audiofolder import AudioFolder from datasets.streaming import extend_module_for_streaming @@ -76,7 +76,7 @@ def data_files_with_one_split_and_metadata(tmp_path, audio_file): with open(audio_metadata_filename, "w", encoding="utf-8") as f: f.write(audio_metadata) data_files_with_one_split_and_metadata = DataFilesDict.from_local_or_remote( - get_patterns_locally(str(data_dir)), str(data_dir) + get_data_patterns_locally(str(data_dir)), str(data_dir) ) assert len(data_files_with_one_split_and_metadata) == 1 assert len(data_files_with_one_split_and_metadata["train"]) == 4 @@ -117,7 +117,7 @@ def data_files_with_two_splits_and_metadata(tmp_path, audio_file): with open(test_audio_metadata_filename, "w", encoding="utf-8") as f: f.write(audio_metadata) data_files_with_two_splits_and_metadata = DataFilesDict.from_local_or_remote( - get_patterns_locally(str(data_dir)), str(data_dir) + get_data_patterns_locally(str(data_dir)), str(data_dir) ) assert len(data_files_with_two_splits_and_metadata) == 2 assert len(data_files_with_two_splits_and_metadata["train"]) == 3 @@ -157,7 +157,7 @@ def data_files_with_zip_archives(tmp_path, audio_file): shutil.rmtree(str(archive_dir)) data_files_with_zip_archives = DataFilesDict.from_local_or_remote( - get_patterns_locally(str(data_dir)), str(data_dir) + get_data_patterns_locally(str(data_dir)), str(data_dir) ) assert len(data_files_with_zip_archives) == 1 @@ -313,7 +313,7 @@ def test_data_files_with_wrong_metadata_file_name(cache_dir, tmp_path, audio_fil f.write(audio_metadata) data_files_with_bad_metadata = DataFilesDict.from_local_or_remote( - get_patterns_locally(str(data_dir)), str(data_dir) + get_data_patterns_locally(str(data_dir)), str(data_dir) ) audiofolder = AudioFolder(data_files=data_files_with_bad_metadata, cache_dir=cache_dir) audiofolder.download_and_prepare() @@ -337,7 +337,7 @@ def test_data_files_with_wrong_audio_file_name_column_in_metadata_file(cache_dir f.write(audio_metadata) data_files_with_bad_metadata = DataFilesDict.from_local_or_remote( - get_patterns_locally(str(data_dir)), str(data_dir) + get_data_patterns_locally(str(data_dir)), str(data_dir) ) audiofolder = AudioFolder(data_files=data_files_with_bad_metadata, cache_dir=cache_dir) with pytest.raises(ValueError) as exc_info: From ffa6d142245c8b7e57af148a53b117e1e3e3c77c Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Tue, 5 Jul 2022 17:07:34 +0200 Subject: [PATCH 16/60] update autofolder, align imagefolder and audiofolder with it --- src/datasets/packaged_modules/__init__.py | 4 +- .../imagefolder/imagefolder.py | 351 +----------------- .../utils/autofolder/autofolder.py | 22 +- 3 files changed, 18 insertions(+), 359 deletions(-) diff --git a/src/datasets/packaged_modules/__init__.py b/src/datasets/packaged_modules/__init__.py index 8b3d82a3736..deabca1f35a 100644 --- a/src/datasets/packaged_modules/__init__.py +++ b/src/datasets/packaged_modules/__init__.py @@ -46,6 +46,6 @@ def _hash_python_lines(lines: List[str]) -> str: } _EXTENSION_TO_MODULE.update({ext[1:]: ("imagefolder", {}) for ext in imagefolder.ImageFolder.EXTENSIONS}) _EXTENSION_TO_MODULE.update({ext[1:].upper(): ("imagefolder", {}) for ext in imagefolder.ImageFolder.EXTENSIONS}) -_EXTENSION_TO_MODULE.update({ext[1:]: ("audiofolder", {}) for ext in audiofolder.AudioFolder.AUDIO_EXTENSIONS}) -_EXTENSION_TO_MODULE.update({ext[1:].upper(): ("audiofolder", {}) for ext in audiofolder.AudioFolder.AUDIO_EXTENSIONS}) +_EXTENSION_TO_MODULE.update({ext[1:]: ("audiofolder", {}) for ext in audiofolder.AudioFolder.EXTENSIONS}) +_EXTENSION_TO_MODULE.update({ext[1:].upper(): ("audiofolder", {}) for ext in audiofolder.AudioFolder.EXTENSIONS}) _MODULE_SUPPORTS_METADATA = {"imagefolder", "audiofolder"} diff --git a/src/datasets/packaged_modules/imagefolder/imagefolder.py b/src/datasets/packaged_modules/imagefolder/imagefolder.py index 6c75c3c7ab7..02f0edcba3a 100644 --- a/src/datasets/packaged_modules/imagefolder/imagefolder.py +++ b/src/datasets/packaged_modules/imagefolder/imagefolder.py @@ -1,17 +1,10 @@ -import collections -import itertools -import os from dataclasses import dataclass -from typing import Any, List, Optional, Tuple - -import pyarrow.compute as pc -import pyarrow.json as paj +from typing import ClassVar, List import datasets from datasets.tasks import ImageClassification from ..utils.autofolder import autofolder -from ..utils.autofolder.autofolder import count_path_segments, pa_table_to_pylist logger = datasets.utils.logging.get_logger(__name__) @@ -21,24 +14,24 @@ class ImageFolderConfig(autofolder.AutoFolderConfig): """BuilderConfig for ImageFolder.""" - base_feature: Any = datasets.Image() + base_feature: ClassVar = datasets.Image() drop_labels: bool = False drop_metadata: bool = False class ImageFolder(autofolder.AutoFolder): BUILDER_CONFIG_CLASS = ImageFolderConfig - # BUILDER_CONFIG = autofolder.AutoFolderConfig(base_feature=datasets.Image(), base_feature_name="image") EXTENSIONS: List[str] = [] # definition at the bottom of the script def _info(self): return datasets.DatasetInfo(features=self.config.features) def _split_generators(self, dl_manager): - # _prepare_split_generators sets self.config.features, self.info, + # _prepare_split_generators() sets self.info.features, # infers labels, finds metadata files if needed and returns splits splits = self._prepare_split_generators(dl_manager) + # we need to set a task_template manually # to check if metadata files were found, see if they are in the first split kwargs # (metadata files passed to _generate_examples() are the same for each split) if not self.config.features and not self.config.drop_labels and not splits[0].gen_kwargs["metadata_files"]: @@ -50,340 +43,10 @@ def _split_generators(self, dl_manager): return splits - # self._generate_examples() is implemented in a parent class (AutoFolder) git status - - # def _generate_examples(self, files, metadata_files, split_name): - # generator = self._prepare_generate_examples(files, metadata_files, split_name) - # for _, example in generator: - # yield _, example - - -@dataclass -class ImageFolderConfigOld(datasets.BuilderConfig): - """BuilderConfig for ImageFolder.""" - - features: Optional[datasets.Features] = None - drop_labels: bool = False - drop_metadata: bool = False - - -class ImageFolderOld(datasets.GeneratorBasedBuilder): - BUILDER_CONFIG_CLASS = ImageFolderConfig - - IMAGE_EXTENSIONS: List[str] = [] # definition at the bottom of the script - SKIP_CHECKSUM_COMPUTATION_BY_DEFAULT = True - METADATA_FILENAME: str = "metadata.jsonl" - - def _info(self): - return datasets.DatasetInfo(features=self.config.features) - - def _split_generators(self, dl_manager): - if not self.config.data_files: - raise ValueError(f"At least one data file must be specified, but got data_files={self.config.data_files}") - - # Do an early pass if: - # * `features` are not specified, to infer the class labels - # * `drop_metadata` is False, to find the metadata files - do_analyze = (self.config.features is None and not self.config.drop_labels) or not self.config.drop_metadata - if do_analyze: - labels = set() - metadata_files = collections.defaultdict(set) - - def analyze(files_or_archives, downloaded_files_or_dirs, split): - if len(downloaded_files_or_dirs) == 0: - return - # The files are separated from the archives at this point, so check the first sample - # to see if it's a file or a directory and iterate accordingly - if os.path.isfile(downloaded_files_or_dirs[0]): - original_files, downloaded_files = files_or_archives, downloaded_files_or_dirs - for original_file, downloaded_file in zip(original_files, downloaded_files): - original_file, downloaded_file = str(original_file), str(downloaded_file) - _, original_file_ext = os.path.splitext(original_file) - if original_file_ext.lower() in self.IMAGE_EXTENSIONS and not self.config.drop_labels: - labels.add(os.path.basename(os.path.dirname(original_file))) - elif ( - os.path.basename(original_file) == self.METADATA_FILENAME and not self.config.drop_metadata - ): - metadata_files[split].add((original_file, downloaded_file)) - else: - original_file_name = os.path.basename(original_file) - logger.debug( - f"The file '{original_file_name}' was ignored: it is not an image, and is not {self.METADATA_FILENAME} either." - ) - else: - archives, downloaded_dirs = files_or_archives, downloaded_files_or_dirs - for archive, downloaded_dir in zip(archives, downloaded_dirs): - archive, downloaded_dir = str(archive), str(downloaded_dir) - for downloaded_dir_file in dl_manager.iter_files(downloaded_dir): - _, downloaded_dir_file_ext = os.path.splitext(downloaded_dir_file) - if downloaded_dir_file_ext in self.IMAGE_EXTENSIONS and not self.config.drop_labels: - labels.add(os.path.basename(os.path.dirname(downloaded_dir_file))) - elif ( - os.path.basename(downloaded_dir_file) == self.METADATA_FILENAME - and not self.config.drop_metadata - ): - metadata_files[split].add((None, downloaded_dir_file)) - else: - archive_file_name = os.path.basename(archive) - original_file_name = os.path.basename(downloaded_dir_file) - logger.debug( - f"The file '{original_file_name}' from the archive '{archive_file_name}' was ignored: it is not an image, and is not {self.METADATA_FILENAME} either." - ) - - if not self.config.drop_labels: - logger.info("Inferring labels from data files...") - if not self.config.drop_metadata: - logger.info("Analyzing metadata files...") - - data_files = self.config.data_files - splits = [] - for split_name, files in data_files.items(): - if isinstance(files, str): - files = [files] - files, archives = self._split_files_and_archives(files) - downloaded_files = dl_manager.download(files) - downloaded_dirs = dl_manager.download_and_extract(archives) - if do_analyze: - analyze(files, downloaded_files, split_name) - analyze(archives, downloaded_dirs, split_name) - splits.append( - datasets.SplitGenerator( - name=split_name, - gen_kwargs={ - "files": [(file, downloaded_file) for file, downloaded_file in zip(files, downloaded_files)] - + [(None, dl_manager.iter_files(downloaded_dir)) for downloaded_dir in downloaded_dirs], - "metadata_files": metadata_files if not self.config.drop_metadata else None, - "split_name": split_name, - }, - ) - ) - - if not self.config.drop_metadata and metadata_files: - # Verify that: - # * all metadata files have the same set of features - # * the `file_name` key is one of the metadata keys and is of type string - features_per_metadata_file: List[Tuple[str, datasets.Features]] = [] - for _, downloaded_metadata_file in itertools.chain.from_iterable(metadata_files.values()): - with open(downloaded_metadata_file, "rb") as f: - pa_metadata_table = paj.read_json(f) - features_per_metadata_file.append( - (downloaded_metadata_file, datasets.Features.from_arrow_schema(pa_metadata_table.schema)) - ) - for downloaded_metadata_file, metadata_features in features_per_metadata_file: - if metadata_features != features_per_metadata_file[0][1]: - raise ValueError( - f"Metadata files {downloaded_metadata_file} and {features_per_metadata_file[0][0]} have different features: {features_per_metadata_file[0]} != {metadata_features}" - ) - metadata_features = features_per_metadata_file[0][1] - if "file_name" not in metadata_features: - raise ValueError("`file_name` must be present as dictionary key in metadata files") - if metadata_features["file_name"] != datasets.Value("string"): - raise ValueError("`file_name` key must be a string") - del metadata_features["file_name"] - else: - metadata_features = None - - # Normally, we would do this in _info, but we need to know the labels and/or metadata - # before building the features - if self.config.features is None: - if not self.config.drop_labels and not metadata_files: - self.info.features = datasets.Features( - {"image": datasets.Image(), "label": datasets.ClassLabel(names=sorted(labels))} - ) - task_template = ImageClassification(image_column="image", label_column="label") - task_template = task_template.align_with_features(self.info.features) - self.info.task_templates = [task_template] - else: - self.info.features = datasets.Features({"image": datasets.Image()}) - - if not self.config.drop_metadata and metadata_files: - # Verify that there are no duplicated keys when compared to the existing features ("image", optionally "label") - duplicated_keys = set(self.info.features) & set(metadata_features) - if duplicated_keys: - raise ValueError( - f"Metadata feature keys {list(duplicated_keys)} are already present as the image features" - ) - self.info.features.update(metadata_features) - - return splits - - def _split_files_and_archives(self, data_files): - files, archives = [], [] - for data_file in data_files: - _, data_file_ext = os.path.splitext(data_file) - if data_file_ext.lower() in self.IMAGE_EXTENSIONS: - files.append(data_file) - elif os.path.basename(data_file) == self.METADATA_FILENAME: - files.append(data_file) - else: - archives.append(data_file) - return files, archives - def _generate_examples(self, files, metadata_files, split_name): - if not self.config.drop_metadata and metadata_files: - split_metadata_files = metadata_files.get(split_name, []) - image_empty_metadata = {k: None for k in self.info.features if k != "image"} - - last_checked_dir = None - metadata_dir = None - metadata_dict = None - downloaded_metadata_file = None - - file_idx = 0 - for original_file, downloaded_file_or_dir in files: - if original_file is not None: - _, original_file_ext = os.path.splitext(original_file) - if original_file_ext.lower() in self.IMAGE_EXTENSIONS: - # If the file is an image, and we've just entered a new directory, - # find the nereast metadata file (by counting path segments) for the directory - current_dir = os.path.dirname(original_file) - if last_checked_dir is None or last_checked_dir != current_dir: - last_checked_dir = current_dir - metadata_file_candidates = [ - ( - os.path.relpath(original_file, os.path.dirname(metadata_file_candidate)), - metadata_file_candidate, - downloaded_metadata_file, - ) - for metadata_file_candidate, downloaded_metadata_file in split_metadata_files - if metadata_file_candidate - is not None # ignore metadata_files that are inside archives - and not os.path.relpath( - original_file, os.path.dirname(metadata_file_candidate) - ).startswith("..") - ] - if metadata_file_candidates: - _, metadata_file, downloaded_metadata_file = min( - metadata_file_candidates, key=lambda x: count_path_segments(x[0]) - ) - with open(downloaded_metadata_file, "rb") as f: - pa_metadata_table = paj.read_json(f) - pa_file_name_array = pa_metadata_table["file_name"] - pa_file_name_array = pc.replace_substring( - pa_file_name_array, pattern="\\", replacement="/" - ) - pa_metadata_table = pa_metadata_table.drop(["file_name"]) - metadata_dir = os.path.dirname(metadata_file) - metadata_dict = { - file_name: image_metadata - for file_name, image_metadata in zip( - pa_file_name_array.to_pylist(), pa_table_to_pylist(pa_metadata_table) - ) - } - else: - raise ValueError( - f"One or several metadata.jsonl were found, but not in the same directory or in a parent directory of {downloaded_file_or_dir}." - ) - if metadata_dir is not None and downloaded_metadata_file is not None: - file_relpath = os.path.relpath(original_file, metadata_dir) - file_relpath = file_relpath.replace("\\", "/") - if file_relpath not in metadata_dict: - raise ValueError( - f"Image at {file_relpath} doesn't have metadata in {downloaded_metadata_file}." - ) - image_metadata = metadata_dict[file_relpath] - else: - raise ValueError( - f"One or several metadata.jsonl were found, but not in the same directory or in a parent directory of {downloaded_file_or_dir}." - ) - yield file_idx, { - **image_empty_metadata, - "image": downloaded_file_or_dir, - **image_metadata, - } - file_idx += 1 - else: - for downloaded_dir_file in downloaded_file_or_dir: - _, downloaded_dir_file_ext = os.path.splitext(downloaded_dir_file) - if downloaded_dir_file_ext.lower() in self.IMAGE_EXTENSIONS: - current_dir = os.path.dirname(downloaded_dir_file) - if last_checked_dir is None or last_checked_dir != current_dir: - last_checked_dir = current_dir - metadata_file_candidates = [ - ( - os.path.relpath( - downloaded_dir_file, os.path.dirname(downloaded_metadata_file) - ), - metadata_file_candidate, - downloaded_metadata_file, - ) - for metadata_file_candidate, downloaded_metadata_file in split_metadata_files - if metadata_file_candidate - is None # ignore metadata_files that are not inside archives - and not os.path.relpath( - downloaded_dir_file, os.path.dirname(downloaded_metadata_file) - ).startswith("..") - ] - if metadata_file_candidates: - _, metadata_file, downloaded_metadata_file = min( - metadata_file_candidates, key=lambda x: count_path_segments(x[0]) - ) - with open(downloaded_metadata_file, "rb") as f: - pa_metadata_table = paj.read_json(f) - pa_file_name_array = pa_metadata_table["file_name"] - pa_file_name_array = pc.replace_substring( - pa_file_name_array, pattern="\\", replacement="/" - ) - pa_metadata_table = pa_metadata_table.drop(["file_name"]) - metadata_dir = os.path.dirname(downloaded_metadata_file) - metadata_dict = { - file_name: image_metadata - for file_name, image_metadata in zip( - pa_file_name_array.to_pylist(), pa_table_to_pylist(pa_metadata_table) - ) - } - else: - raise ValueError( - f"One or several metadata.jsonl were found, but not in the same directory or in a parent directory of {downloaded_dir_file}." - ) - if metadata_dir is not None and downloaded_metadata_file is not None: - downloaded_dir_file_relpath = os.path.relpath(downloaded_dir_file, metadata_dir) - downloaded_dir_file_relpath = downloaded_dir_file_relpath.replace("\\", "/") - if downloaded_dir_file_relpath not in metadata_dict: - raise ValueError( - f"Image at {downloaded_dir_file_relpath} doesn't have metadata in {downloaded_metadata_file}." - ) - image_metadata = metadata_dict[downloaded_dir_file_relpath] - else: - raise ValueError( - f"One or several metadata.jsonl were found, but not in the same directory or in a parent directory of {downloaded_dir_file}." - ) - yield file_idx, { - **image_empty_metadata, - "image": downloaded_dir_file, - **image_metadata, - } - file_idx += 1 - else: - file_idx = 0 - for original_file, downloaded_file_or_dir in files: - if original_file is not None: - _, original_file_ext = os.path.splitext(original_file) - if original_file_ext.lower() in self.IMAGE_EXTENSIONS: - if self.config.drop_labels: - yield file_idx, { - "image": downloaded_file_or_dir, - } - else: # self.config.drop_labels is False, self.config.drop_metadata is True - yield file_idx, { - "image": downloaded_file_or_dir, - "label": os.path.basename(os.path.dirname(original_file)), - } - file_idx += 1 - else: - for downloaded_dir_file in downloaded_file_or_dir: - _, downloaded_dir_file_ext = os.path.splitext(downloaded_dir_file) - if downloaded_dir_file_ext.lower() in self.IMAGE_EXTENSIONS: - if self.config.drop_labels: - yield file_idx, { - "image": downloaded_dir_file, - } - else: # self.config.drop_labels is False, self.config.drop_metadata is True - yield file_idx, { - "image": downloaded_dir_file, - "label": os.path.basename(os.path.dirname(downloaded_dir_file)), - } - file_idx += 1 + generator = self._prepare_generate_examples(files, metadata_files, split_name) + for _, example in generator: + yield _, example # Obtained with: diff --git a/src/datasets/packaged_modules/utils/autofolder/autofolder.py b/src/datasets/packaged_modules/utils/autofolder/autofolder.py index 569d38daaf7..5be9e215144 100644 --- a/src/datasets/packaged_modules/utils/autofolder/autofolder.py +++ b/src/datasets/packaged_modules/utils/autofolder/autofolder.py @@ -2,7 +2,7 @@ import itertools import os from dataclasses import dataclass -from typing import Any, List, Optional, Tuple +from typing import ClassVar, List, Optional, Tuple import pyarrow.compute as pc import pyarrow.json as paj @@ -44,9 +44,7 @@ def count_path_segments(path): class AutoFolderConfig(datasets.BuilderConfig): """BuilderConfig for AutoFolder.""" - base_feature: Any = ( - None # i.e. datasets.Image(), datasets.Audio(), we don't have a type for Feature # TODO: ClassVar? - ) + base_feature: ClassVar = None # i.e. datasets.Image(), datasets.Audio(), we don't have a type for Feature ("FieldType") # TODO: what type? base_feature_name: str = "" label_column: str = "label" features: Optional[datasets.Features] = None @@ -78,7 +76,7 @@ def _prepare_split_generators(self, dl_manager): do_analyze = (self.config.features is None and not self.config.drop_labels) or not self.config.drop_metadata if do_analyze: labels = set() - metadata_files = collections.defaultdict(list) + metadata_files = collections.defaultdict(set) def analyze(files_or_archives, downloaded_files_or_dirs, split): if len(downloaded_files_or_dirs) == 0: @@ -95,7 +93,7 @@ def analyze(files_or_archives, downloaded_files_or_dirs, split): elif ( os.path.basename(original_file) == self.METADATA_FILENAME and not self.config.drop_metadata ): - metadata_files[split].append((original_file, downloaded_file)) + metadata_files[split].add((original_file, downloaded_file)) else: original_file_name = os.path.basename(original_file) logger.debug( @@ -113,7 +111,7 @@ def analyze(files_or_archives, downloaded_files_or_dirs, split): os.path.basename(downloaded_dir_file) == self.METADATA_FILENAME and not self.config.drop_metadata ): - metadata_files[split].append((None, downloaded_dir_file)) + metadata_files[split].add((None, downloaded_dir_file)) else: archive_file_name = os.path.basename(archive) original_file_name = os.path.basename(downloaded_dir_file) @@ -174,8 +172,6 @@ def analyze(files_or_archives, downloaded_files_or_dirs, split): else: metadata_features = None - # return splits, labels, metadata_files, metadata_features - if self.config.features is None: if not self.config.drop_labels and not metadata_files: self.info.features = datasets.Features( @@ -197,7 +193,7 @@ def analyze(files_or_archives, downloaded_files_or_dirs, split): ) self.info.features.update(metadata_features) - return splits + return splits # labels, metadata_files, metadata_features def _split_files_and_archives(self, data_files): files, archives = [], [] @@ -211,7 +207,7 @@ def _split_files_and_archives(self, data_files): archives.append(data_file) return files, archives - def _generate_examples(self, files, metadata_files, split_name): + def _prepare_generate_examples(self, files, metadata_files, split_name): if not self.config.drop_metadata and metadata_files: split_metadata_files = metadata_files.get(split_name, []) sample_empty_metadata = {k: None for k in self.info.features if k != self.config.base_feature_name} @@ -352,7 +348,7 @@ def _generate_examples(self, files, metadata_files, split_name): if original_file is not None: _, original_file_ext = os.path.splitext(original_file) if original_file_ext.lower() in self.EXTENSIONS: - if self.config.drop_labels or metadata_files: + if self.config.drop_labels or metadata_files: # TODO: align this with #4622 yield file_idx, { self.config.base_feature_name: downloaded_file_or_dir, } @@ -366,7 +362,7 @@ def _generate_examples(self, files, metadata_files, split_name): for downloaded_dir_file in downloaded_file_or_dir: _, downloaded_dir_file_ext = os.path.splitext(downloaded_dir_file) if downloaded_dir_file_ext.lower() in self.EXTENSIONS: - if self.config.drop_labels or metadata_files: + if self.config.drop_labels or metadata_files: # TODO: align this with #4622 yield file_idx, { self.config.base_feature_name: downloaded_file_or_dir, } From aa2f246d4c05c828254606b8802f254cde866954 Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Tue, 5 Jul 2022 19:09:07 +0200 Subject: [PATCH 17/60] align audiofolder --- .../audiofolder/audiofolder.py | 365 +----------------- 1 file changed, 15 insertions(+), 350 deletions(-) diff --git a/src/datasets/packaged_modules/audiofolder/audiofolder.py b/src/datasets/packaged_modules/audiofolder/audiofolder.py index 96c527a5964..c1f33c10fa5 100644 --- a/src/datasets/packaged_modules/audiofolder/audiofolder.py +++ b/src/datasets/packaged_modules/audiofolder/audiofolder.py @@ -1,375 +1,39 @@ -import collections -import itertools -import os from dataclasses import dataclass -from typing import List, Optional, Tuple - -import pyarrow.compute as pc -import pyarrow.json as paj +from typing import ClassVar, List import datasets +from ..utils.autofolder import autofolder -logger = datasets.utils.logging.get_logger(__name__) - - -if datasets.config.PYARROW_VERSION.major >= 7: - - def pa_table_to_pylist(table): - return table.to_pylist() - -else: - def pa_table_to_pylist(table): - keys = table.column_names - values = table.to_pydict().values() - return [{k: v for k, v in zip(keys, row_values)} for row_values in zip(*values)] - - -def count_path_segments(path): - cnt = 0 - while True: - parts = os.path.split(path) - if parts[0] == path: - break - elif parts[1] == path: - break - else: - path = parts[0] - cnt += 1 - return cnt +logger = datasets.utils.logging.get_logger(__name__) @dataclass -class AudioFolderConfig(datasets.BuilderConfig): +class AudioFolderConfig(autofolder.AutoFolderConfig): """Builder Config for AudioFolder.""" - features: Optional[datasets.Features] = None + base_feature: ClassVar = datasets.Audio() drop_labels: bool = True # usually we don't need labels as classification is not the main audio task drop_metadata: bool = False -class AudioFolder(datasets.GeneratorBasedBuilder): +class AudioFolder(autofolder.AutoFolder): BUILDER_CONFIG_CLASS = AudioFolderConfig - - AUDIO_EXTENSIONS: List[str] = [] # definition at the bottom of the script - SKIP_CHECKSUM_COMPUTATION_BY_DEFAULT = True - METADATA_FILENAME: str = "metadata.jsonl" + EXTENSIONS: List[str] = [] # definition at the bottom of the script def _info(self): return datasets.DatasetInfo(features=self.config.features) def _split_generators(self, dl_manager): - if not self.config.data_files: - raise ValueError(f"At least one data file must be specified, but got data_files={self.config.data_files}") - - # Do an early pass if: - # * `features` are not specified, to infer them - # * `drop_metadata` is False, to find the metadata files - # audio classification is not the most common audio task, - # but we preserve the option of inferring labels from data directories names to be consistent with ImageFolder - # it's just not the default behaviour - do_analyze = (self.config.features is None and not self.config.drop_labels) or not self.config.drop_metadata - if do_analyze: - labels = set() - metadata_files = collections.defaultdict(list) - - def analyze(files_or_archives, downloaded_files_or_dirs, split): - if len(downloaded_files_or_dirs) == 0: - return - # The files are separated from the archives at this point, so check the first sample - # to see if it's a file or a directory and iterate accordingly - if os.path.isfile(downloaded_files_or_dirs[0]): - original_files, downloaded_files = files_or_archives, downloaded_files_or_dirs - for original_file, downloaded_file in zip(original_files, downloaded_files): - original_file, downloaded_file = str(original_file), str(downloaded_file) - _, original_file_ext = os.path.splitext(original_file) - if original_file_ext.lower() in self.AUDIO_EXTENSIONS and not self.config.drop_labels: - labels.add(os.path.basename(os.path.dirname(original_file))) - elif ( - os.path.basename(original_file) == self.METADATA_FILENAME and not self.config.drop_metadata - ): - metadata_files[split].append((original_file, downloaded_file)) - else: - original_file_name = os.path.basename(original_file) - logger.debug( - f"The file '{original_file_name}' was ignored: it is not an audio file, and is not {self.METADATA_FILENAME} either." - ) - else: - archives, downloaded_dirs = files_or_archives, downloaded_files_or_dirs - for archive, downloaded_dir in zip(archives, downloaded_dirs): - archive, downloaded_dir = str(archive), str(downloaded_dir) - for downloaded_dir_file in dl_manager.iter_files(downloaded_dir): - _, downloaded_dir_file_ext = os.path.splitext(downloaded_dir_file) - if downloaded_dir_file_ext in self.AUDIO_EXTENSIONS and not self.config.drop_labels: - labels.add(os.path.basename(os.path.dirname(downloaded_dir_file))) - elif ( - os.path.basename(downloaded_dir_file) == self.METADATA_FILENAME - and not self.config.drop_metadata - ): - metadata_files[split].append((None, downloaded_dir_file)) - else: - archive_file_name = os.path.basename(archive) - original_file_name = os.path.basename(downloaded_dir_file) - logger.debug( - f"The file '{original_file_name}' from the archive '{archive_file_name}' was ignored: " - f"it is not an audio file, and is not {self.METADATA_FILENAME} either." - ) - - if not self.config.drop_labels: - logger.info("Inferring labels from data files...") - if not self.config.drop_metadata: - logger.info("Analyzing metadata files...") - - data_files = self.config.data_files - splits = [] - for split_name, files in data_files.items(): - if isinstance(files, str): - files = [files] - files, archives = self._split_files_and_archives(files) - downloaded_files = dl_manager.download(files) - downloaded_dirs = dl_manager.download_and_extract(archives) - if do_analyze: - analyze(files, downloaded_files, split_name) - analyze(archives, downloaded_dirs, split_name) - splits.append( - datasets.SplitGenerator( - name=split_name, - gen_kwargs={ - "files": [(file, downloaded_file) for file, downloaded_file in zip(files, downloaded_files)] - + [(None, dl_manager.iter_files(downloaded_dir)) for downloaded_dir in downloaded_dirs], - "metadata_files": metadata_files if not self.config.drop_metadata else None, - "split_name": split_name, - }, - ) - ) - - if not self.config.drop_metadata and metadata_files: - # Verify that: - # * all metadata files have the same set of features - # * the `file_name` key is one of the metadata keys and is of type string - features_per_metadata_file: List[Tuple[str, datasets.Features]] = [] - for _, downloaded_metadata_file in itertools.chain.from_iterable(metadata_files.values()): - with open(downloaded_metadata_file, "rb") as f: - pa_metadata_table = paj.read_json(f) - features_per_metadata_file.append( - (downloaded_metadata_file, datasets.Features.from_arrow_schema(pa_metadata_table.schema)) - ) - for downloaded_metadata_file, metadata_features in features_per_metadata_file: - if metadata_features != features_per_metadata_file[0][1]: - raise ValueError( - f"Metadata files {downloaded_metadata_file} and {features_per_metadata_file[0][0]} have different features: {features_per_metadata_file[0][1]} != {metadata_features}" - ) - metadata_features = features_per_metadata_file[0][1] - if "file_name" not in metadata_features: - raise ValueError("`file_name` must be present as dictionary key in metadata files") - if metadata_features["file_name"] != datasets.Value("string"): - raise ValueError("`file_name` key must be a string") - del metadata_features["file_name"] - else: - metadata_features = None - - # Normally, we would do this in _info, but we need to know the labels and/or metadata - # before building the features - if self.config.features is None: - if not self.config.drop_labels and not metadata_files: - self.info.features = datasets.Features( - {"audio": datasets.Audio(), "label": datasets.ClassLabel(names=sorted(labels))} - ) - else: - self.info.features = datasets.Features({"audio": datasets.Audio()}) - - if not self.config.drop_metadata and metadata_files: - # Verify that there are no duplicated keys when compared to the existing features ("audio", optionally "label") - duplicated_keys = set(self.info.features) & set(metadata_features) - if duplicated_keys: - raise ValueError( - f"Metadata feature keys {list(duplicated_keys)} are already present as the audio features" - ) - self.info.features.update(metadata_features) - - return splits - - def _split_files_and_archives(self, data_files): - files, archives = [], [] - for data_file in data_files: - _, data_file_ext = os.path.splitext(data_file) - if data_file_ext.lower() in self.AUDIO_EXTENSIONS: - files.append(data_file) - elif os.path.basename(data_file) == self.METADATA_FILENAME: - files.append(data_file) - else: - archives.append(data_file) - return files, archives + # _prepare_split_generators() sets self.info.features, + # infers labels, finds metadata files if needed and returns splits + return self._prepare_split_generators(dl_manager) def _generate_examples(self, files, metadata_files, split_name): - if not self.config.drop_metadata and metadata_files: - split_metadata_files = metadata_files.get(split_name, []) - audio_empty_metadata = {k: None for k in self.info.features if k != "audio"} - - last_checked_dir = None - metadata_dir = None - metadata_dict = None - downloaded_metadata_file = None - - file_idx = 0 - for original_file, downloaded_file_or_dir in files: - if original_file is not None: # then it's a file, not a dir - _, original_file_ext = os.path.splitext(original_file) - if original_file_ext.lower() in self.AUDIO_EXTENSIONS: - # If the file is an audio file, and we've just entered a new directory, - # find the nearest metadata file (by counting path segments) for the directory - current_dir = os.path.dirname(original_file) - if last_checked_dir is None or last_checked_dir != current_dir: - last_checked_dir = current_dir - metadata_file_candidates = [ - ( - os.path.relpath(original_file, os.path.dirname(metadata_file_candidate)), - metadata_file_candidate, - downloaded_metadata_file, - ) - for metadata_file_candidate, downloaded_metadata_file in split_metadata_files - if metadata_file_candidate - is not None # ignore metadata_files that are inside archives - and not os.path.relpath( - original_file, os.path.dirname(metadata_file_candidate) - ).startswith("..") - ] - if metadata_file_candidates: - _, metadata_file, downloaded_metadata_file = min( - metadata_file_candidates, key=lambda x: count_path_segments(x[0]) - ) - with open(downloaded_metadata_file, "rb") as f: - pa_metadata_table = paj.read_json(f) - pa_file_name_array = pa_metadata_table["file_name"] - pa_file_name_array = pc.replace_substring( - pa_file_name_array, pattern="\\", replacement="/" - ) - pa_metadata_table = pa_metadata_table.drop(["file_name"]) - metadata_dir = os.path.dirname(metadata_file) - metadata_dict = { - file_name: audio_metadata - for file_name, audio_metadata in zip( - pa_file_name_array.to_pylist(), pa_table_to_pylist(pa_metadata_table) - ) - } - else: - raise ValueError( - f"One or several metadata.jsonl were found, but not in the same directory or " - f"in a parent directory of {downloaded_file_or_dir}." - ) - if metadata_dir is not None and downloaded_metadata_file is not None: - file_relpath = os.path.relpath(original_file, metadata_dir) - file_relpath = file_relpath.replace("\\", "/") - if file_relpath not in metadata_dict: - # TODO: go easier on not found files? make it a warning maybe? - raise ValueError( - f"Audio at {file_relpath} doesn't have metadata in {downloaded_metadata_file}." - ) - audio_metadata = metadata_dict[file_relpath] - else: - raise ValueError( - f"One or several metadata.jsonl were found, but not in the same directory " - f"or in a parent directory of {downloaded_file_or_dir}." - ) - yield file_idx, { - **audio_empty_metadata, - "audio": downloaded_file_or_dir, - **audio_metadata, - } - file_idx += 1 - else: # then it's a dir - for downloaded_dir_file in downloaded_file_or_dir: - _, downloaded_dir_file_ext = os.path.splitext(downloaded_dir_file) - if downloaded_dir_file_ext.lower() in self.AUDIO_EXTENSIONS: - current_dir = os.path.dirname(downloaded_dir_file) - if last_checked_dir is None or last_checked_dir != current_dir: - last_checked_dir = current_dir - metadata_file_candidates = [ - ( - os.path.relpath( - downloaded_dir_file, os.path.dirname(downloaded_metadata_file) - ), - metadata_file_candidate, - downloaded_metadata_file, - ) - for metadata_file_candidate, downloaded_metadata_file in split_metadata_files - if metadata_file_candidate - is None # ignore metadata_files that are not inside archives - and not os.path.relpath( - downloaded_dir_file, os.path.dirname(downloaded_metadata_file) - ).startswith("..") - ] - if metadata_file_candidates: - _, metadata_file, downloaded_metadata_file = min( - metadata_file_candidates, key=lambda x: count_path_segments(x[0]) - ) - with open(downloaded_metadata_file, "rb") as f: - pa_metadata_table = paj.read_json(f) - pa_file_name_array = pa_metadata_table["file_name"] - pa_file_name_array = pc.replace_substring( - pa_file_name_array, pattern="\\", replacement="/" - ) - pa_metadata_table = pa_metadata_table.drop(["file_name"]) - metadata_dir = os.path.dirname(downloaded_metadata_file) - metadata_dict = { - file_name: audio_metadata - for file_name, audio_metadata in zip( - pa_file_name_array.to_pylist(), pa_table_to_pylist(pa_metadata_table) - ) - } - else: - raise ValueError( - f"One or several metadata.jsonl were found, but not in the same directory or in a parent directory of {downloaded_dir_file}." - ) - if metadata_dir is not None and downloaded_metadata_file is not None: - downloaded_dir_file_relpath = os.path.relpath(downloaded_dir_file, metadata_dir) - downloaded_dir_file_relpath = downloaded_dir_file_relpath.replace("\\", "/") - if downloaded_dir_file_relpath not in metadata_dict: - raise ValueError( - f"Audio at {downloaded_dir_file_relpath} doesn't have metadata in {downloaded_metadata_file}." - ) - audio_metadata = metadata_dict[downloaded_dir_file_relpath] - else: - raise ValueError( - f"One or several metadata.jsonl were found, but not in the same directory or in a parent directory of {downloaded_dir_file}." - ) - yield file_idx, { - **audio_empty_metadata, - "audio": downloaded_dir_file, - **audio_metadata, - } - file_idx += 1 - else: - file_idx = 0 - for original_file, downloaded_file_or_dir in files: - if original_file is not None: - _, original_file_ext = os.path.splitext(original_file) - if original_file_ext.lower() in self.AUDIO_EXTENSIONS: - if self.config.drop_labels or metadata_files: - yield file_idx, { - "audio": downloaded_file_or_dir, - } - else: - yield file_idx, { - "audio": downloaded_file_or_dir, - "label": os.path.basename(os.path.dirname(original_file)), - } - file_idx += 1 - else: - for downloaded_dir_file in downloaded_file_or_dir: - _, downloaded_dir_file_ext = os.path.splitext(downloaded_dir_file) - if downloaded_dir_file_ext.lower() in self.AUDIO_EXTENSIONS: - if self.config.drop_labels or metadata_files: - yield file_idx, { - "audio": downloaded_dir_file, - } - else: - yield file_idx, { - "audio": downloaded_dir_file, - "label": os.path.basename(os.path.dirname(downloaded_dir_file)), - } - file_idx += 1 + generator = self._prepare_generate_examples(files, metadata_files, split_name) + for _, example in generator: + yield _, example # Obtained with: @@ -384,7 +48,7 @@ def _generate_examples(self, files, metadata_files, split_name): # We intentionally do not run this code on launch because: # (1) Soundfile is an optional dependency, so importing it in global namespace is not allowed # (2) To ensure the list of supported extensions is deterministic -AudioFolder.AUDIO_EXTENSIONS = [ +AUDIO_EXTENSIONS = [ ".aiff", ".au", ".avr", @@ -413,3 +77,4 @@ def _generate_examples(self, files, metadata_files, split_name): ".mp3", ".opus", ] +AudioFolder.EXTENSIONS = AUDIO_EXTENSIONS From d27266c194da5dee9727ff88fd0ceca725d00470 Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Wed, 6 Jul 2022 13:19:23 +0200 Subject: [PATCH 18/60] move autofolder --- src/datasets/packaged_modules/audiofolder/audiofolder.py | 2 +- src/datasets/packaged_modules/base/__init__.py | 0 .../packaged_modules/{utils/autofolder => base}/autofolder.py | 0 src/datasets/packaged_modules/imagefolder/imagefolder.py | 2 +- 4 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 src/datasets/packaged_modules/base/__init__.py rename src/datasets/packaged_modules/{utils/autofolder => base}/autofolder.py (100%) diff --git a/src/datasets/packaged_modules/audiofolder/audiofolder.py b/src/datasets/packaged_modules/audiofolder/audiofolder.py index c1f33c10fa5..c5248caf732 100644 --- a/src/datasets/packaged_modules/audiofolder/audiofolder.py +++ b/src/datasets/packaged_modules/audiofolder/audiofolder.py @@ -3,7 +3,7 @@ import datasets -from ..utils.autofolder import autofolder +from ..base import autofolder logger = datasets.utils.logging.get_logger(__name__) diff --git a/src/datasets/packaged_modules/base/__init__.py b/src/datasets/packaged_modules/base/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/datasets/packaged_modules/utils/autofolder/autofolder.py b/src/datasets/packaged_modules/base/autofolder.py similarity index 100% rename from src/datasets/packaged_modules/utils/autofolder/autofolder.py rename to src/datasets/packaged_modules/base/autofolder.py diff --git a/src/datasets/packaged_modules/imagefolder/imagefolder.py b/src/datasets/packaged_modules/imagefolder/imagefolder.py index 02f0edcba3a..fa24943863b 100644 --- a/src/datasets/packaged_modules/imagefolder/imagefolder.py +++ b/src/datasets/packaged_modules/imagefolder/imagefolder.py @@ -4,7 +4,7 @@ import datasets from datasets.tasks import ImageClassification -from ..utils.autofolder import autofolder +from ..base import autofolder logger = datasets.utils.logging.get_logger(__name__) From 24a65fdc24d39a2ac322873d3689538161bb6860 Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Wed, 6 Jul 2022 14:17:35 +0200 Subject: [PATCH 19/60] fix bug with incorrect itaration over archives (incorrect copypaste -_-) --- src/datasets/packaged_modules/base/autofolder.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/datasets/packaged_modules/base/autofolder.py b/src/datasets/packaged_modules/base/autofolder.py index 5be9e215144..1662e5f4f60 100644 --- a/src/datasets/packaged_modules/base/autofolder.py +++ b/src/datasets/packaged_modules/base/autofolder.py @@ -364,11 +364,11 @@ def _prepare_generate_examples(self, files, metadata_files, split_name): if downloaded_dir_file_ext.lower() in self.EXTENSIONS: if self.config.drop_labels or metadata_files: # TODO: align this with #4622 yield file_idx, { - self.config.base_feature_name: downloaded_file_or_dir, + self.config.base_feature_name: downloaded_dir_file, } else: yield file_idx, { - self.config.base_feature_name: downloaded_file_or_dir, + self.config.base_feature_name: downloaded_dir_file, self.config.label_column: os.path.basename(os.path.dirname(downloaded_dir_file)), } file_idx += 1 From f9ee90d5763334592702ca877abd84639fece92f Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Wed, 6 Jul 2022 14:53:12 +0200 Subject: [PATCH 20/60] get back comment --- src/datasets/packaged_modules/base/autofolder.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/datasets/packaged_modules/base/autofolder.py b/src/datasets/packaged_modules/base/autofolder.py index 1662e5f4f60..5279ff3b6d8 100644 --- a/src/datasets/packaged_modules/base/autofolder.py +++ b/src/datasets/packaged_modules/base/autofolder.py @@ -172,6 +172,8 @@ def analyze(files_or_archives, downloaded_files_or_dirs, split): else: metadata_features = None + # Normally, we would do this in _info, but we need to know the labels and/or metadata + # before building the features if self.config.features is None: if not self.config.drop_labels and not metadata_files: self.info.features = datasets.Features( From c905c1bbfd3a79198c0c38785a6dfa4ad8485779 Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Wed, 6 Jul 2022 19:50:51 +0200 Subject: [PATCH 21/60] patch autofolder for streaming manually --- src/datasets/streaming.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/datasets/streaming.py b/src/datasets/streaming.py index cd25f0153f5..95726268018 100644 --- a/src/datasets/streaming.py +++ b/src/datasets/streaming.py @@ -112,3 +112,9 @@ def extend_dataset_builder_for_streaming(builder: "DatasetBuilder"): internal_import_name = imports[1] internal_module_name = ".".join(builder.__module__.split(".")[:-1] + [internal_import_name]) extend_module_for_streaming(internal_module_name, use_auth_token=builder.use_auth_token) + + # we need to patch autofolder.py manually because it's a parent of Image and Audio folder and it + # contains generation of examples (which uses `os` functions) + autofolder_module = [cls.__module__ for cls in type(builder).__mro__ if cls.__name__ == "AutoFolder"] + if autofolder_module: + extend_module_for_streaming(autofolder_module[0]) From 6c7a1f9c856b240e62885ebc8d78da8fbc1f7e6f Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Fri, 15 Jul 2022 16:13:29 +0200 Subject: [PATCH 22/60] check fro AutoFolder class specifically in patching, not its string name; improve comment --- src/datasets/streaming.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/datasets/streaming.py b/src/datasets/streaming.py index 95726268018..d8d2bcc7115 100644 --- a/src/datasets/streaming.py +++ b/src/datasets/streaming.py @@ -113,8 +113,11 @@ def extend_dataset_builder_for_streaming(builder: "DatasetBuilder"): internal_module_name = ".".join(builder.__module__.split(".")[:-1] + [internal_import_name]) extend_module_for_streaming(internal_module_name, use_auth_token=builder.use_auth_token) - # we need to patch autofolder.py manually because it's a parent of Image and Audio folder and it - # contains generation of examples (which uses `os` functions) - autofolder_module = [cls.__module__ for cls in type(builder).__mro__ if cls.__name__ == "AutoFolder"] + # we need to patch autofolder.py manually because it's a parent of ImageFolder and AudioFolder folder + # as it contains generation of examples for them (which uses `os` functions) + # but it's not patched automatically because it's not instantiated + from .packaged_modules.base.autofolder import AutoFolder + + autofolder_module = [cls.__module__ for cls in type(builder).__mro__ if cls is AutoFolder] if autofolder_module: extend_module_for_streaming(autofolder_module[0]) From 66d38772514d10e503ab3c72d7d970a77ce64188 Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Fri, 15 Jul 2022 17:40:41 +0200 Subject: [PATCH 23/60] pass missing use_auth_token for AutoFolder patching --- src/datasets/streaming.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/datasets/streaming.py b/src/datasets/streaming.py index d8d2bcc7115..5eae3d9728f 100644 --- a/src/datasets/streaming.py +++ b/src/datasets/streaming.py @@ -113,11 +113,11 @@ def extend_dataset_builder_for_streaming(builder: "DatasetBuilder"): internal_module_name = ".".join(builder.__module__.split(".")[:-1] + [internal_import_name]) extend_module_for_streaming(internal_module_name, use_auth_token=builder.use_auth_token) - # we need to patch autofolder.py manually because it's a parent of ImageFolder and AudioFolder folder - # as it contains generation of examples for them (which uses `os` functions) + # we need to patch autofolder.py manually because it's a parent of ImageFolder and AudioFolder,` + # and it contains generation of examples for them (which uses `os` functions) # but it's not patched automatically because it's not instantiated from .packaged_modules.base.autofolder import AutoFolder autofolder_module = [cls.__module__ for cls in type(builder).__mro__ if cls is AutoFolder] if autofolder_module: - extend_module_for_streaming(autofolder_module[0]) + extend_module_for_streaming(autofolder_module[0], use_auth_token=builder.use_auth_token) From ba9d059839c54e8b7501cb3ef578bfcf528da6df Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Fri, 15 Jul 2022 17:41:34 +0200 Subject: [PATCH 24/60] fix docstrings --- src/datasets/streaming.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/datasets/streaming.py b/src/datasets/streaming.py index 5eae3d9728f..f716090b72d 100644 --- a/src/datasets/streaming.py +++ b/src/datasets/streaming.py @@ -52,7 +52,8 @@ def extend_module_for_streaming(module_path, use_auth_token: Optional[Union[str, Args: module_path: Path to the module to be extended. - use_auth_token: Whether to use authentication token. + use_auth_token (``str`` or :obj:`bool`, optional): Optional string or boolean to use as Bearer token for remote files on the Datasets Hub. + If True, will get token from `"~/.huggingface"`. """ module = importlib.import_module(module_path) @@ -100,8 +101,6 @@ def extend_dataset_builder_for_streaming(builder: "DatasetBuilder"): Args: builder (:class:`DatasetBuilder`): Dataset builder instance. - use_auth_token (``str`` or :obj:`bool`, optional): Optional string or boolean to use as Bearer token for remote files on the Datasets Hub. - If True, will get token from `"~/.huggingface"`. """ # this extends the open and os.path.join functions for data streaming extend_module_for_streaming(builder.__module__, use_auth_token=builder.use_auth_token) From a0b409386162c8c71bfd6dccea2cb4fcfe40476f Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Tue, 2 Aug 2022 17:42:37 +0200 Subject: [PATCH 25/60] align autofolder with the latest imagefolder implementation --- .../audiofolder/audiofolder.py | 4 +- .../packaged_modules/base/autofolder.py | 246 +++++++++--------- .../imagefolder/imagefolder.py | 14 +- 3 files changed, 136 insertions(+), 128 deletions(-) diff --git a/src/datasets/packaged_modules/audiofolder/audiofolder.py b/src/datasets/packaged_modules/audiofolder/audiofolder.py index c5248caf732..92c086fcc19 100644 --- a/src/datasets/packaged_modules/audiofolder/audiofolder.py +++ b/src/datasets/packaged_modules/audiofolder/audiofolder.py @@ -30,8 +30,8 @@ def _split_generators(self, dl_manager): # infers labels, finds metadata files if needed and returns splits return self._prepare_split_generators(dl_manager) - def _generate_examples(self, files, metadata_files, split_name): - generator = self._prepare_generate_examples(files, metadata_files, split_name) + def _generate_examples(self, files, metadata_files, split_name, add_metadata, add_labels): + generator = self._prepare_generate_examples(files, metadata_files, split_name, add_metadata, add_labels) for _, example in generator: yield _, example diff --git a/src/datasets/packaged_modules/base/autofolder.py b/src/datasets/packaged_modules/base/autofolder.py index 5279ff3b6d8..6e7244f0be8 100644 --- a/src/datasets/packaged_modules/base/autofolder.py +++ b/src/datasets/packaged_modules/base/autofolder.py @@ -48,8 +48,8 @@ class AutoFolderConfig(datasets.BuilderConfig): base_feature_name: str = "" label_column: str = "label" features: Optional[datasets.Features] = None - drop_labels: bool = False - drop_metadata: bool = False + drop_labels: bool = None + drop_metadata: bool = None def __post_init__(self): if not self.base_feature_name: @@ -71,58 +71,49 @@ def _prepare_split_generators(self, dl_manager): raise ValueError(f"At least one data file must be specified, but got data_files={self.config.data_files}") # Do an early pass if: - # * `features` are not specified, to infer the class labels - # * `drop_metadata` is False, to find the metadata files - do_analyze = (self.config.features is None and not self.config.drop_labels) or not self.config.drop_metadata - if do_analyze: - labels = set() - metadata_files = collections.defaultdict(set) - - def analyze(files_or_archives, downloaded_files_or_dirs, split): - if len(downloaded_files_or_dirs) == 0: - return - # The files are separated from the archives at this point, so check the first sample - # to see if it's a file or a directory and iterate accordingly - if os.path.isfile(downloaded_files_or_dirs[0]): - original_files, downloaded_files = files_or_archives, downloaded_files_or_dirs - for original_file, downloaded_file in zip(original_files, downloaded_files): - original_file, downloaded_file = str(original_file), str(downloaded_file) - _, original_file_ext = os.path.splitext(original_file) - if original_file_ext.lower() in self.EXTENSIONS and not self.config.drop_labels: + # * `drop_labels` is None (default) or False, to infer the class labels + # * `drop_metadata` is None (default) or False, to find the metadata files + do_analyze = not self.config.drop_labels or not self.config.drop_metadata + labels = set() + metadata_files = collections.defaultdict(set) + + def analyze(files_or_archives, downloaded_files_or_dirs, split): + if len(downloaded_files_or_dirs) == 0: + return + # The files are separated from the archives at this point, so check the first sample + # to see if it's a file or a directory and iterate accordingly + if os.path.isfile(downloaded_files_or_dirs[0]): + original_files, downloaded_files = files_or_archives, downloaded_files_or_dirs + for original_file, downloaded_file in zip(original_files, downloaded_files): + original_file, downloaded_file = str(original_file), str(downloaded_file) + _, original_file_ext = os.path.splitext(original_file) + if original_file_ext.lower() in self.EXTENSIONS: + if not self.config.drop_labels: labels.add(os.path.basename(os.path.dirname(original_file))) - elif ( - os.path.basename(original_file) == self.METADATA_FILENAME and not self.config.drop_metadata - ): - metadata_files[split].add((original_file, downloaded_file)) + elif os.path.basename(original_file) == self.METADATA_FILENAME: + metadata_files[split].add((original_file, downloaded_file)) + else: + original_file_name = os.path.basename(original_file) + logger.debug( + f"The file '{original_file_name}' was ignored: it is not an {self.config.base_feature_name}, and is not {self.METADATA_FILENAME} either." + ) + else: + archives, downloaded_dirs = files_or_archives, downloaded_files_or_dirs + for archive, downloaded_dir in zip(archives, downloaded_dirs): + archive, downloaded_dir = str(archive), str(downloaded_dir) + for downloaded_dir_file in dl_manager.iter_files(downloaded_dir): + _, downloaded_dir_file_ext = os.path.splitext(downloaded_dir_file) + if downloaded_dir_file_ext in self.EXTENSIONS: + if not self.config.drop_labels: + labels.add(os.path.basename(os.path.dirname(downloaded_dir_file))) + elif os.path.basename(downloaded_dir_file) == self.METADATA_FILENAME: + metadata_files[split].add((None, downloaded_dir_file)) else: - original_file_name = os.path.basename(original_file) + archive_file_name = os.path.basename(archive) + original_file_name = os.path.basename(downloaded_dir_file) logger.debug( - f"The file '{original_file_name}' was ignored: it is not an {self.config.base_feature_name}, and is not {self.METADATA_FILENAME} either." + f"The file '{original_file_name}' from the archive '{archive_file_name}' was ignored: it is not an {self.config.base_feature_name}, and is not {self.METADATA_FILENAME} either." ) - else: - archives, downloaded_dirs = files_or_archives, downloaded_files_or_dirs - for archive, downloaded_dir in zip(archives, downloaded_dirs): - archive, downloaded_dir = str(archive), str(downloaded_dir) - for downloaded_dir_file in dl_manager.iter_files(downloaded_dir): - _, downloaded_dir_file_ext = os.path.splitext(downloaded_dir_file) - if downloaded_dir_file_ext in self.EXTENSIONS and not self.config.drop_labels: - labels.add(os.path.basename(os.path.dirname(downloaded_dir_file))) - elif ( - os.path.basename(downloaded_dir_file) == self.METADATA_FILENAME - and not self.config.drop_metadata - ): - metadata_files[split].add((None, downloaded_dir_file)) - else: - archive_file_name = os.path.basename(archive) - original_file_name = os.path.basename(downloaded_dir_file) - logger.debug( - f"The file '{original_file_name}' from the archive '{archive_file_name}' was ignored: it is not an {self.config.base_feature_name}, and is not {self.METADATA_FILENAME} either." - ) - - if not self.config.drop_labels: - logger.info("Inferring labels from data files...") - if not self.config.drop_metadata: - logger.info("Analyzing metadata files...") data_files = self.config.data_files splits = [] @@ -132,22 +123,45 @@ def analyze(files_or_archives, downloaded_files_or_dirs, split): files, archives = self._split_files_and_archives(files) downloaded_files = dl_manager.download(files) downloaded_dirs = dl_manager.download_and_extract(archives) - if do_analyze: + if do_analyze: # drop_metadata is None or False, drop_labels is None or False + logger.info(f"Searching for labels and/or metadata files in {split_name} data files...") analyze(files, downloaded_files, split_name) analyze(archives, downloaded_dirs, split_name) + + if metadata_files: + # add metadata if `metadata_files` are found and `drop_metadata` is None (default) or False + add_metadata = not (self.config.drop_metadata is True) + # if `metadata_files` are found, add labels only if + # `drop_labels` is set up to False explicitly (not-default behavior) + add_labels = self.config.drop_labels is False + else: + # if `metadata_files` are not found, don't add metadata + add_metadata = False + # if `metadata_files` are not found but `drop_labels` is None (default) or False, add them + add_labels = not (self.config.drop_labels is True) + + if add_labels: + logger.info("Adding the labels inferred from data directories to the dataset's features...") + if add_metadata: + logger.info("Adding metadata to the dataset...") + else: + add_labels, add_metadata, metadata_files = False, False, {} + splits.append( datasets.SplitGenerator( name=split_name, gen_kwargs={ "files": [(file, downloaded_file) for file, downloaded_file in zip(files, downloaded_files)] + [(None, dl_manager.iter_files(downloaded_dir)) for downloaded_dir in downloaded_dirs], - "metadata_files": metadata_files if not self.config.drop_metadata else None, + "metadata_files": metadata_files, "split_name": split_name, + "add_labels": add_labels, + "add_metadata": add_metadata, }, ) ) - if not self.config.drop_metadata and metadata_files: + if add_metadata: # Verify that: # * all metadata files have the same set of features # * the `file_name` key is one of the metadata keys and is of type string @@ -175,7 +189,7 @@ def analyze(files_or_archives, downloaded_files_or_dirs, split): # Normally, we would do this in _info, but we need to know the labels and/or metadata # before building the features if self.config.features is None: - if not self.config.drop_labels and not metadata_files: + if add_labels: self.info.features = datasets.Features( { self.config.base_feature_name: self.config.base_feature, @@ -185,17 +199,25 @@ def analyze(files_or_archives, downloaded_files_or_dirs, split): else: self.info.features = datasets.Features({self.config.base_feature_name: self.config.base_feature}) - if not self.config.drop_metadata and metadata_files: - # Verify that there are no duplicated keys when compared to the existing features - # (self.config.base_feature, optionally self.config.label_column) + if add_metadata: + # Warn if there are duplicated keys in metadata compared to the existing features + # (`base_feature_name`, optionally `label_column`) duplicated_keys = set(self.info.features) & set(metadata_features) if duplicated_keys: - raise ValueError( - f"Metadata feature keys {list(duplicated_keys)} are already present as the {self.config.base_feature_name} features" + logger.warning( + f"Ignoring metadata columns {list(duplicated_keys)} as they are already present in " + f"the features dictionary." ) - self.info.features.update(metadata_features) + # skip metadata duplicated keys + self.info.features.update( + { + feature: metadata_features[feature] + for feature in metadata_features + if feature not in duplicated_keys + } + ) - return splits # labels, metadata_files, metadata_features + return splits def _split_files_and_archives(self, data_files): files, archives = [], [] @@ -209,21 +231,22 @@ def _split_files_and_archives(self, data_files): archives.append(data_file) return files, archives - def _prepare_generate_examples(self, files, metadata_files, split_name): - if not self.config.drop_metadata and metadata_files: - split_metadata_files = metadata_files.get(split_name, []) - sample_empty_metadata = {k: None for k in self.info.features if k != self.config.base_feature_name} - - last_checked_dir = None - metadata_dir = None - metadata_dict = None - downloaded_metadata_file = None + def _prepare_generate_examples(self, files, metadata_files, split_name, add_metadata, add_labels): + split_metadata_files = metadata_files.get(split_name, []) + sample_empty_metadata = ( + {k: None for k in self.info.features if k != self.config.base_feature_name} if self.info.features else {} + ) + last_checked_dir = None + metadata_dir = None + metadata_dict = None + downloaded_metadata_file = None - file_idx = 0 - for original_file, downloaded_file_or_dir in files: - if original_file is not None: - _, original_file_ext = os.path.splitext(original_file) - if original_file_ext.lower() in self.EXTENSIONS: + file_idx = 0 + for original_file, downloaded_file_or_dir in files: + if original_file is not None: + _, original_file_ext = os.path.splitext(original_file) + if original_file_ext.lower() in self.EXTENSIONS: + if add_metadata: # If the file is a file of a needed type, and we've just entered a new directory, # find the nereast metadata file (by counting path segments) for the directory current_dir = os.path.dirname(original_file) @@ -276,16 +299,24 @@ def _prepare_generate_examples(self, files, metadata_files, split_name): raise ValueError( f"One or several metadata.jsonl were found, but not in the same directory or in a parent directory of {downloaded_file_or_dir}." ) - yield file_idx, { - **sample_empty_metadata, - self.config.base_feature_name: downloaded_file_or_dir, - **sample_metadata, - } - file_idx += 1 - else: - for downloaded_dir_file in downloaded_file_or_dir: - _, downloaded_dir_file_ext = os.path.splitext(downloaded_dir_file) - if downloaded_dir_file_ext.lower() in self.EXTENSIONS: + else: + sample_metadata = {} + if add_labels: + sample_label = {self.config.label_column: os.path.basename(os.path.dirname(original_file))} + else: + sample_label = {} + yield file_idx, { + **sample_empty_metadata, + self.config.base_feature_name: downloaded_file_or_dir, + **sample_metadata, + **sample_label, + } + file_idx += 1 + else: + for downloaded_dir_file in downloaded_file_or_dir: + _, downloaded_dir_file_ext = os.path.splitext(downloaded_dir_file) + if downloaded_dir_file_ext.lower() in self.EXTENSIONS: + if add_metadata: current_dir = os.path.dirname(downloaded_dir_file) if last_checked_dir is None or last_checked_dir != current_dir: last_checked_dir = current_dir @@ -338,39 +369,18 @@ def _prepare_generate_examples(self, files, metadata_files, split_name): raise ValueError( f"One or several metadata.jsonl were found, but not in the same directory or in a parent directory of {downloaded_dir_file}." ) - yield file_idx, { - **sample_empty_metadata, - self.config.base_feature_name: downloaded_dir_file, - **sample_metadata, - } - file_idx += 1 - else: - file_idx = 0 - for original_file, downloaded_file_or_dir in files: - if original_file is not None: - _, original_file_ext = os.path.splitext(original_file) - if original_file_ext.lower() in self.EXTENSIONS: - if self.config.drop_labels or metadata_files: # TODO: align this with #4622 - yield file_idx, { - self.config.base_feature_name: downloaded_file_or_dir, - } else: - yield file_idx, { - self.config.base_feature_name: downloaded_file_or_dir, - self.config.label_column: os.path.basename(os.path.dirname(original_file)), + sample_metadata = {} + if add_labels: + sample_label = { + self.config.label_column: os.path.basename(os.path.dirname(downloaded_dir_file)) } + else: + sample_label = {} + yield file_idx, { + **sample_empty_metadata, + self.config.base_feature_name: downloaded_dir_file, + **sample_metadata, + **sample_label, + } file_idx += 1 - else: - for downloaded_dir_file in downloaded_file_or_dir: - _, downloaded_dir_file_ext = os.path.splitext(downloaded_dir_file) - if downloaded_dir_file_ext.lower() in self.EXTENSIONS: - if self.config.drop_labels or metadata_files: # TODO: align this with #4622 - yield file_idx, { - self.config.base_feature_name: downloaded_dir_file, - } - else: - yield file_idx, { - self.config.base_feature_name: downloaded_dir_file, - self.config.label_column: os.path.basename(os.path.dirname(downloaded_dir_file)), - } - file_idx += 1 diff --git a/src/datasets/packaged_modules/imagefolder/imagefolder.py b/src/datasets/packaged_modules/imagefolder/imagefolder.py index fa24943863b..10c87ebf0d1 100644 --- a/src/datasets/packaged_modules/imagefolder/imagefolder.py +++ b/src/datasets/packaged_modules/imagefolder/imagefolder.py @@ -15,8 +15,8 @@ class ImageFolderConfig(autofolder.AutoFolderConfig): """BuilderConfig for ImageFolder.""" base_feature: ClassVar = datasets.Image() - drop_labels: bool = False - drop_metadata: bool = False + drop_labels: bool = None + drop_metadata: bool = None class ImageFolder(autofolder.AutoFolder): @@ -31,10 +31,8 @@ def _split_generators(self, dl_manager): # infers labels, finds metadata files if needed and returns splits splits = self._prepare_split_generators(dl_manager) - # we need to set a task_template manually - # to check if metadata files were found, see if they are in the first split kwargs - # (metadata files passed to _generate_examples() are the same for each split) - if not self.config.features and not self.config.drop_labels and not splits[0].gen_kwargs["metadata_files"]: + add_labels = splits[0].gen_kwargs["add_labels"] + if self.config.features is None and add_labels: task_template = ImageClassification( image_column=self.config.base_feature_name, label_column=self.config.label_column ) @@ -43,8 +41,8 @@ def _split_generators(self, dl_manager): return splits - def _generate_examples(self, files, metadata_files, split_name): - generator = self._prepare_generate_examples(files, metadata_files, split_name) + def _generate_examples(self, files, metadata_files, split_name, add_metadata, add_labels): + generator = self._prepare_generate_examples(files, metadata_files, split_name, add_metadata, add_labels) for _, example in generator: yield _, example From d1e4a6409224c5e6af5b0523902a8bf44de2a530 Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Wed, 3 Aug 2022 16:23:42 +0200 Subject: [PATCH 26/60] update tests --- tests/packaged_modules/test_audiofolder.py | 81 ++++++++++++---------- 1 file changed, 43 insertions(+), 38 deletions(-) diff --git a/tests/packaged_modules/test_audiofolder.py b/tests/packaged_modules/test_audiofolder.py index 1cdc0ea217d..9700ceedf19 100644 --- a/tests/packaged_modules/test_audiofolder.py +++ b/tests/packaged_modules/test_audiofolder.py @@ -8,6 +8,7 @@ from datasets import Audio, Features, Value from datasets.data_files import DataFilesDict, get_data_patterns_locally +from datasets.download.streaming_download_manager import StreamingDownloadManager from datasets.packaged_modules.audiofolder.audiofolder import AudioFolder from datasets.streaming import extend_module_for_streaming @@ -166,10 +167,15 @@ def data_files_with_zip_archives(tmp_path, audio_file): @require_sndfile -@pytest.mark.parametrize("drop_labels", [True, False]) -def test_generate_examples_drop_labels(audio_file, drop_labels): - audiofolder = AudioFolder(drop_labels=drop_labels) - generator = audiofolder._generate_examples([(audio_file, audio_file)], None, "train") +@pytest.mark.parametrize("drop_metadata", [None, True, False]) +@pytest.mark.parametrize("drop_labels", [None, True, False]) +def test_generate_examples_drop_labels(audio_file, drop_metadata, drop_labels): + audiofolder = AudioFolder(drop_metadata=drop_metadata, drop_labels=drop_labels, data_files={"train": [audio_file]}) + gen_kwargs = audiofolder._split_generators(StreamingDownloadManager())[0].gen_kwargs + # removing the labels explicitly requires drop_labels=True + assert gen_kwargs["add_labels"] is not bool(drop_labels) + assert gen_kwargs["add_metadata"] is False # metadata files is not present in this case + generator = audiofolder._generate_examples(**gen_kwargs) if not drop_labels: assert all( example.keys() == {"audio", "label"} and all(val is not None for val in example.values()) @@ -183,41 +189,39 @@ def test_generate_examples_drop_labels(audio_file, drop_labels): @require_sndfile -@pytest.mark.parametrize("drop_metadata", [True, False]) -def test_generate_examples_drop_metadata(audio_file_with_metadata, drop_metadata): +@pytest.mark.parametrize("drop_metadata", [None, True, False]) +@pytest.mark.parametrize("drop_labels", [None, True, False]) +def test_generate_examples_drop_metadata(audio_file_with_metadata, drop_metadata, drop_labels): audio_file, audio_metadata_file = audio_file_with_metadata - if not drop_metadata: - features = Features({"audio": Audio(), "text": Value("string")}) - else: - features = Features({"audio": Audio()}) - audiofolder = AudioFolder(drop_metadata=drop_metadata, features=features) - generator = audiofolder._generate_examples( - [(audio_file, audio_file)], {"train": [(audio_metadata_file, audio_metadata_file)]}, "train" + audiofolder = AudioFolder( + drop_metadata=drop_metadata, drop_labels=drop_labels, data_files={"train": [audio_file, audio_metadata_file]} ) - if not drop_metadata: - assert all( - example.keys() == {"audio", "text"} and all(val is not None for val in example.values()) - for _, example in generator - ) - else: - assert all( - example.keys() == {"audio"} and all(val is not None for val in example.values()) - for _, example in generator - ) + gen_kwargs = audiofolder._split_generators(StreamingDownloadManager())[0].gen_kwargs + # since the dataset has metadata, removing the metadata explicitly requires drop_metadata=True + assert gen_kwargs["add_metadata"] is not bool(drop_metadata) + # since the dataset has metadata, adding the labels explicitly requires drop_labels=False + assert gen_kwargs["add_labels"] is (drop_labels is False) + generator = audiofolder._generate_examples(**gen_kwargs) + expected_columns = {"audio"} + if gen_kwargs["add_metadata"]: + expected_columns.add("text") + if gen_kwargs["add_labels"]: + expected_columns.add("label") + result = [example for _, example in generator] + assert len(result) == 1 + example = result[0] + assert example.keys() == expected_columns + for column in expected_columns: + assert example[column] is not None @require_sndfile -@pytest.mark.parametrize("drop_metadata", [True, False]) +@pytest.mark.parametrize("drop_metadata", [None, True, False]) def test_generate_examples_with_metadata_in_wrong_location(audio_file, audio_file_with_metadata, drop_metadata): _, audio_metadata_file = audio_file_with_metadata - if not drop_metadata: - features = Features({"audio": Audio(), "text": Value("string")}) - else: - features = Features({"audio": Audio()}) - audiofolder = AudioFolder(drop_metadata=drop_metadata, features=features) - generator = audiofolder._generate_examples( - [(audio_file, audio_file)], {"train": [(audio_metadata_file, audio_metadata_file)]}, "train" - ) + audiofolder = AudioFolder(drop_metadata=drop_metadata, data_files={"train": [audio_file, audio_metadata_file]}) + gen_kwargs = audiofolder._split_generators(StreamingDownloadManager())[0].gen_kwargs + generator = audiofolder._generate_examples(**gen_kwargs) if not drop_metadata: with pytest.raises(ValueError): list(generator) @@ -229,7 +233,7 @@ def test_generate_examples_with_metadata_in_wrong_location(audio_file, audio_fil @require_sndfile -@pytest.mark.parametrize("drop_metadata", [True, False]) +@pytest.mark.parametrize("drop_metadata", [None, True, False]) def test_generate_examples_with_metadata_that_misses_one_audio( audio_files_with_metadata_that_misses_one_audio, drop_metadata ): @@ -238,12 +242,13 @@ def test_generate_examples_with_metadata_that_misses_one_audio( features = Features({"audio": Audio(), "text": Value("string")}) else: features = Features({"audio": Audio()}) - audiofolder = AudioFolder(drop_metadata=drop_metadata, features=features) - generator = audiofolder._generate_examples( - [(audio_file, audio_file), (audio_file2, audio_file2)], - {"train": [(audio_metadata_file, audio_metadata_file)]}, - "train", + audiofolder = AudioFolder( + drop_metadata=drop_metadata, + features=features, + data_files={"train": [audio_file, audio_file2, audio_metadata_file]}, ) + gen_kwargs = audiofolder._split_generators(StreamingDownloadManager())[0].gen_kwargs + generator = audiofolder._generate_examples(**gen_kwargs) if not drop_metadata: with pytest.raises(ValueError): _ = list(generator) From b9eace0f796163838849e65dfbd6c9c1ba211edd Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Wed, 3 Aug 2022 17:13:57 +0200 Subject: [PATCH 27/60] add test for duplicate label col --- tests/packaged_modules/test_audiofolder.py | 63 +++++++++++++++++++++- 1 file changed, 62 insertions(+), 1 deletion(-) diff --git a/tests/packaged_modules/test_audiofolder.py b/tests/packaged_modules/test_audiofolder.py index 9700ceedf19..403067fd686 100644 --- a/tests/packaged_modules/test_audiofolder.py +++ b/tests/packaged_modules/test_audiofolder.py @@ -6,7 +6,7 @@ import pytest import soundfile as sf -from datasets import Audio, Features, Value +from datasets import Audio, ClassLabel, Features, Value from datasets.data_files import DataFilesDict, get_data_patterns_locally from datasets.download.streaming_download_manager import StreamingDownloadManager from datasets.packaged_modules.audiofolder.audiofolder import AudioFolder @@ -20,6 +20,33 @@ def cache_dir(tmp_path): return str(tmp_path / "audiofolder_cache_dir") +@pytest.fixture +def audio_files_with_labels_and_duplicated_label_key_in_metadata(tmp_path, audio_file): + data_dir = tmp_path / "audio_files_with_labels_and_label_key_in_metadata" + data_dir.mkdir(parents=True, exist_ok=True) + subdir_class_0 = data_dir / "fr" + subdir_class_0.mkdir(parents=True, exist_ok=True) + subdir_class_1 = data_dir / "uk" + subdir_class_1.mkdir(parents=True, exist_ok=True) + + audio_filename = subdir_class_0 / "audio_fr.wav" + shutil.copyfile(audio_file, audio_filename) + audio_filename2 = subdir_class_1 / "audio_uk.wav" + shutil.copyfile(audio_file, audio_filename2) + + audio_metadata_filename = tmp_path / data_dir / "metadata.jsonl" + audio_metadata = textwrap.dedent( + """\ + {"file_name": "fr/audio_fr.wav", "text": "Audio in French", "label": "Fr"} + {"file_name": "uk/audio_uk.wav", "text": "Audio in Ukrainian", "label": "Uk"} + """ + ) + with open(audio_metadata_filename, "w", encoding="utf-8") as f: + f.write(audio_metadata) + + return str(audio_filename), str(audio_filename2), str(audio_metadata_filename) + + @pytest.fixture def audio_file_with_metadata(tmp_path, audio_file): audio_filename = tmp_path / "audio_file.wav" @@ -166,6 +193,40 @@ def data_files_with_zip_archives(tmp_path, audio_file): return data_files_with_zip_archives +@require_sndfile +@pytest.mark.parametrize("drop_metadata", [None, True, False]) +@pytest.mark.parametrize("drop_labels", [None, True, False]) +def test_generate_examples_duplicated_label_key( + audio_files_with_labels_and_duplicated_label_key_in_metadata, drop_metadata, drop_labels, cache_dir, caplog +): + fr_audio_file, uk_audio_file, audio_metadata_file = audio_files_with_labels_and_duplicated_label_key_in_metadata + audiofolder = AudioFolder( + drop_metadata=drop_metadata, + drop_labels=drop_labels, + data_files=[fr_audio_file, uk_audio_file, audio_metadata_file], + cache_dir=cache_dir, + ) + if drop_labels is False: + # infer labels from directories even if metadata files are found + audiofolder.download_and_prepare() + warning_in_logs = any("ignoring metadata columns" in record.msg.lower() for record in caplog.records) + assert warning_in_logs if drop_metadata is not True else not warning_in_logs + dataset = audiofolder.as_dataset()["train"] + assert audiofolder.info.features["label"] == ClassLabel(names=["fr", "uk"]) + assert all(example["label"] in audiofolder.info.features["label"]._str2int.values() for example in dataset) + else: + audiofolder.download_and_prepare() + dataset = audiofolder.as_dataset()["train"] + if drop_metadata is not True: + # labels are from metadata + assert audiofolder.info.features["label"] == Value("string") + assert all(example["label"] in ["Fr", "Uk"] for example in dataset) + else: + # drop both labels and metadata + assert audiofolder.info.features == Features({"audio": Audio()}) + assert all(example.keys() == {"audio"} for example in dataset) + + @require_sndfile @pytest.mark.parametrize("drop_metadata", [None, True, False]) @pytest.mark.parametrize("drop_labels", [None, True, False]) From 6a841df63bd4fc8f7c34456f2a891261b1471fe9 Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Wed, 3 Aug 2022 18:05:55 +0200 Subject: [PATCH 28/60] copy test for dir names --- tests/packaged_modules/test_audiofolder.py | 36 ++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/tests/packaged_modules/test_audiofolder.py b/tests/packaged_modules/test_audiofolder.py index 403067fd686..7764553131a 100644 --- a/tests/packaged_modules/test_audiofolder.py +++ b/tests/packaged_modules/test_audiofolder.py @@ -20,6 +20,28 @@ def cache_dir(tmp_path): return str(tmp_path / "audiofolder_cache_dir") +@pytest.fixture +def data_files_with_labels_no_metadata(tmp_path, audio_file): + data_dir = tmp_path / "data_files_with_labels_no_metadata" + data_dir.mkdir(parents=True, exist_ok=True) + subdir_class_0 = data_dir / "fr" + subdir_class_0.mkdir(parents=True, exist_ok=True) + # data dirs can be nested but audiofolder should care only about the last part of the path: + subdir_class_1 = data_dir / "subdir" / "uk" + subdir_class_1.mkdir(parents=True, exist_ok=True) + + audio_filename = subdir_class_0 / "audio_fr.wav" + shutil.copyfile(audio_file, audio_filename) + audio_filename2 = subdir_class_1 / "audio_uk.wav" + shutil.copyfile(audio_file, audio_filename2) + + data_files_with_labels_no_metadata = DataFilesDict.from_local_or_remote( + get_data_patterns_locally(str(data_dir)), str(data_dir) + ) + + return data_files_with_labels_no_metadata + + @pytest.fixture def audio_files_with_labels_and_duplicated_label_key_in_metadata(tmp_path, audio_file): data_dir = tmp_path / "audio_files_with_labels_and_label_key_in_metadata" @@ -193,6 +215,20 @@ def data_files_with_zip_archives(tmp_path, audio_file): return data_files_with_zip_archives +@require_sndfile +# check that labels are inferred correctly from dir names +def test_generate_examples_with_labels(data_files_with_labels_no_metadata, cache_dir): + # there are no metadata.jsonl files in this test case + audiofolder = AudioFolder(data_files=data_files_with_labels_no_metadata, cache_dir=cache_dir, drop_labels=False) + audiofolder.download_and_prepare() + assert audiofolder.info.features == Features({"audio": Audio(), "label": ClassLabel(names=["fr", "uk"])}) + dataset = list(audiofolder.as_dataset()["train"]) + label_feature = audiofolder.info.features["label"] + + assert dataset[0]["label"] == label_feature._str2int["fr"] + assert dataset[1]["label"] == label_feature._str2int["uk"] + + @require_sndfile @pytest.mark.parametrize("drop_metadata", [None, True, False]) @pytest.mark.parametrize("drop_labels", [None, True, False]) From eabece2288fdee23ce3492b1ea5407cdcc539c1a Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Fri, 5 Aug 2022 15:19:50 +0200 Subject: [PATCH 29/60] add tests for autofolder (+copied from imagefolder) --- tests/packaged_modules/test_autofolder.py | 437 ++++++++++++++++++++++ 1 file changed, 437 insertions(+) create mode 100644 tests/packaged_modules/test_autofolder.py diff --git a/tests/packaged_modules/test_autofolder.py b/tests/packaged_modules/test_autofolder.py new file mode 100644 index 00000000000..525d1c24243 --- /dev/null +++ b/tests/packaged_modules/test_autofolder.py @@ -0,0 +1,437 @@ +import importlib +import shutil +import textwrap + +import pytest + +from datasets import ClassLabel, DownloadManager, Features, Value +from datasets.data_files import DataFilesDict, get_data_patterns_locally +from datasets.download.streaming_download_manager import StreamingDownloadManager +from datasets.packaged_modules.base.autofolder import AutoFolder, AutoFolderConfig + + +class DummyAutoFolder(AutoFolder): + EXTENSIONS = [".txt"] + + def __init__(self, *args, **kwargs): + super().__init__(*args, base_feature_name="auto", **kwargs) + + +@pytest.fixture +def cache_dir(tmp_path): + return str(tmp_path / "autofolder_cache_dir") + + +@pytest.fixture +def auto_text_file(text_file): + return str(text_file) + + +@pytest.fixture +def data_files_with_labels_no_metadata(tmp_path, auto_text_file): + data_dir = tmp_path / "data_files_with_labels_no_metadata" + data_dir.mkdir(parents=True, exist_ok=True) + subdir_class_0 = data_dir / "class0" + subdir_class_0.mkdir(parents=True, exist_ok=True) + # data dirs can be nested but autofolder should care only about the last part of the path: + subdir_class_1 = data_dir / "subdir" / "class1" + subdir_class_1.mkdir(parents=True, exist_ok=True) + + filename = subdir_class_0 / "file0.txt" + shutil.copyfile(auto_text_file, filename) + filename2 = subdir_class_1 / "file1.txt" + shutil.copyfile(auto_text_file, filename2) + + data_files_with_labels_no_metadata = DataFilesDict.from_local_or_remote( + get_data_patterns_locally(str(data_dir)), str(data_dir) + ) + + return data_files_with_labels_no_metadata + + +@pytest.fixture +def files_with_labels_and_duplicated_label_key_in_metadata(tmp_path, auto_text_file): + data_dir = tmp_path / "files_with_labels_and_label_key_in_metadata" + data_dir.mkdir(parents=True, exist_ok=True) + subdir_class_0 = data_dir / "class0" + subdir_class_0.mkdir(parents=True, exist_ok=True) + subdir_class_1 = data_dir / "class1" + subdir_class_1.mkdir(parents=True, exist_ok=True) + + filename = subdir_class_0 / "file_class0.txt" + shutil.copyfile(auto_text_file, filename) + filename2 = subdir_class_1 / "file_class1.txt" + shutil.copyfile(auto_text_file, filename2) + + metadata_filename = tmp_path / data_dir / "metadata.jsonl" + metadata = textwrap.dedent( + """\ + {"file_name": "class0/file_class0.txt", "additional_feature": "First dummy file", "label": "CLASS_0"} + {"file_name": "class1/file_class1.txt", "additional_feature": "Second dummy file", "label": "CLASS_1"} + """ + ) + with open(metadata_filename, "w", encoding="utf-8") as f: + f.write(metadata) + + return str(filename), str(filename2), str(metadata_filename) + + +@pytest.fixture +def file_with_metadata(tmp_path, text_file): + filename = tmp_path / "file.txt" + shutil.copyfile(text_file, filename) + metadata_filename = tmp_path / "metadata.jsonl" + metadata = textwrap.dedent( + """\ + {"file_name": "file.txt", "additional_feature": "Dummy file"} + """ + ) + with open(metadata_filename, "w", encoding="utf-8") as f: + f.write(metadata) + return str(filename), str(metadata_filename) + + +@pytest.fixture() +def files_with_metadata_that_misses_one_sample(tmp_path, auto_text_file): + filename = tmp_path / "file.txt" + shutil.copyfile(auto_text_file, filename) + filename2 = tmp_path / "file2.txt" + shutil.copyfile(auto_text_file, filename2) + metadata_filename = tmp_path / "metadata.jsonl" + metadata = textwrap.dedent( + """\ + {"file_name": "file.txt", "additional_feature": "Dummy file"} + """ + ) + with open(metadata_filename, "w", encoding="utf-8") as f: + f.write(metadata) + return str(filename), str(filename2), str(metadata_filename) + + +@pytest.fixture +def data_files_with_one_split_and_metadata(tmp_path, auto_text_file): + data_dir = tmp_path / "autofolder_data_dir_with_metadata_one_split" + data_dir.mkdir(parents=True, exist_ok=True) + subdir = data_dir / "subdir" + subdir.mkdir(parents=True, exist_ok=True) + + filename = data_dir / "file.txt" + shutil.copyfile(auto_text_file, filename) + filename2 = data_dir / "file2.txt" + shutil.copyfile(auto_text_file, filename2) + filename3 = subdir / "file3.txt" # in subdir + shutil.copyfile(auto_text_file, filename3) + + metadata_filename = data_dir / "metadata.jsonl" + metadata = textwrap.dedent( + """\ + {"file_name": "file.txt", "additional_feature": "Dummy file"} + {"file_name": "file2.txt", "additional_feature": "Second dummy file"} + {"file_name": "subdir/file3.txt", "additional_feature": "Third dummy file"} + """ + ) + with open(metadata_filename, "w", encoding="utf-8") as f: + f.write(metadata) + data_files_with_one_split_and_metadata = DataFilesDict.from_local_or_remote( + get_data_patterns_locally(data_dir), data_dir + ) + assert len(data_files_with_one_split_and_metadata) == 1 + assert len(data_files_with_one_split_and_metadata["train"]) == 4 + return data_files_with_one_split_and_metadata + + +@pytest.fixture +def data_files_with_two_splits_and_metadata(tmp_path, auto_text_file): + data_dir = tmp_path / "autofolder_data_dir_with_metadata_two_splits" + data_dir.mkdir(parents=True, exist_ok=True) + train_dir = data_dir / "train" + train_dir.mkdir(parents=True, exist_ok=True) + test_dir = data_dir / "test" + test_dir.mkdir(parents=True, exist_ok=True) + + filename = train_dir / "file.txt" # train + shutil.copyfile(auto_text_file, filename) + filename2 = train_dir / "file2.txt" # train + shutil.copyfile(auto_text_file, filename2) + filename3 = test_dir / "file3.txt" # test + shutil.copyfile(auto_text_file, filename3) + + train_metadata_filename = train_dir / "metadata.jsonl" + train_metadata = textwrap.dedent( + """\ + {"file_name": "file.txt", "additional_feature": "Train dummy file"} + {"file_name": "file2.txt", "additional_feature": "Second train dummy file"} + """ + ) + with open(train_metadata_filename, "w", encoding="utf-8") as f: + f.write(train_metadata) + test_metadata_filename = test_dir / "metadata.jsonl" + test_metadata = textwrap.dedent( + """\ + {"file_name": "file3.txt", "additional_feature": "Test dummy file"} + """ + ) + with open(test_metadata_filename, "w", encoding="utf-8") as f: + f.write(test_metadata) + data_files_with_two_splits_and_metadata = DataFilesDict.from_local_or_remote( + get_data_patterns_locally(data_dir), data_dir + ) + assert len(data_files_with_two_splits_and_metadata) == 2 + assert len(data_files_with_two_splits_and_metadata["train"]) == 3 + assert len(data_files_with_two_splits_and_metadata["test"]) == 2 + return data_files_with_two_splits_and_metadata + + +@pytest.fixture +def data_files_with_zip_archives(tmp_path, auto_text_file): + data_dir = tmp_path / "autofolder_data_dir_with_zip_archives" + data_dir.mkdir(parents=True, exist_ok=True) + archive_dir = data_dir / "archive" + archive_dir.mkdir(parents=True, exist_ok=True) + subdir = archive_dir / "subdir" + subdir.mkdir(parents=True, exist_ok=True) + + filename = archive_dir / "file.txt" + shutil.copyfile(auto_text_file, filename) + filename2 = subdir / "file2.txt" # in subdir + shutil.copyfile(auto_text_file, filename2) + + metadata_filename = archive_dir / "metadata.jsonl" + metadata = textwrap.dedent( + """\ + {"file_name": "file.txt", "additional_feature": "Dummy file"} + {"file_name": "subdir/file2.txt", "additional_feature": "Second dummy file"} + """ + ) + with open(metadata_filename, "w", encoding="utf-8") as f: + f.write(metadata) + + shutil.make_archive(archive_dir, "zip", archive_dir) + shutil.rmtree(str(archive_dir)) + + data_files_with_zip_archives = DataFilesDict.from_local_or_remote(get_data_patterns_locally(data_dir), data_dir) + + assert len(data_files_with_zip_archives) == 1 + assert len(data_files_with_zip_archives["train"]) == 1 + return data_files_with_zip_archives + + +def test_inferring_labels_from_data_dirs(data_files_with_labels_no_metadata, cache_dir): + autofolder = DummyAutoFolder(data_files=data_files_with_labels_no_metadata, cache_dir=cache_dir, drop_labels=False) + gen_kwargs = autofolder._prepare_split_generators(StreamingDownloadManager())[0].gen_kwargs + assert autofolder.info.features == Features({"auto": None, "label": ClassLabel(names=["class0", "class1"])}) + generator = autofolder._prepare_generate_examples(**gen_kwargs) + assert all(example["label"] in {"class0", "class1"} for _, example in generator) + + +def test_default_autoconfig_not_usable(data_files_with_labels_no_metadata): + # by default AutoFolderConfig will try to create base_feature_name from base_feature + # but AutoFolderConfig.base_feature is None + with pytest.raises(AttributeError): + _ = AutoFolderConfig() + with pytest.raises(AttributeError): + _ = AutoFolder() + + +def test_default_autofolder_not_usable(data_files_with_labels_no_metadata): + autofolder = AutoFolder( + base_feature_name="auto", data_files=data_files_with_labels_no_metadata, cache_dir=cache_dir, drop_labels=False + ) + with pytest.raises(NotImplementedError): + autofolder.download_and_prepare() + + +# test that AutoFolder is extended for streaming when it's child class is instantiated: +# see line 115 in src/datasets/streaming.py +def test_streaming(): + _ = DummyAutoFolder() + module = importlib.import_module(AutoFolder.__module__) + assert hasattr(module, "_patched_for_streaming") + assert module._patched_for_streaming + + +@pytest.mark.parametrize("drop_metadata", [None, True, False]) +@pytest.mark.parametrize("drop_labels", [None, True, False]) +def test_prepare_generate_examples_duplicated_label_key( + files_with_labels_and_duplicated_label_key_in_metadata, drop_metadata, drop_labels, cache_dir, caplog +): + class0_file, class1_file, metadata_file = files_with_labels_and_duplicated_label_key_in_metadata + autofolder = DummyAutoFolder( + data_files=[class0_file, class1_file, metadata_file], + cache_dir=cache_dir, + drop_metadata=drop_metadata, + drop_labels=drop_labels, + ) + gen_kwargs = autofolder._prepare_split_generators(StreamingDownloadManager())[0].gen_kwargs + generator = autofolder._prepare_generate_examples(**gen_kwargs) + if drop_labels is False: + # infer labels from directories even if metadata files are found + warning_in_logs = any("ignoring metadata columns" in record.msg.lower() for record in caplog.records) + assert warning_in_logs if drop_metadata is not True else not warning_in_logs + assert autofolder.info.features["label"] == ClassLabel(names=["class0", "class1"]) + assert all(example["label"] in ["class0", "class1"] for _, example in generator) + + else: + if drop_metadata is not True: + # labels are from metadata + assert autofolder.info.features["label"] == Value("string") + assert all(example["label"] in ["CLASS_0", "CLASS_1"] for _, example in generator) + else: + # drop both labels and metadata + assert autofolder.info.features == Features({"auto": None}) + assert all(example.keys() == {"auto"} for _, example in generator) + + +@pytest.mark.parametrize("drop_metadata", [None, True, False]) +@pytest.mark.parametrize("drop_labels", [None, True, False]) +def test_prepare_generate_examples_drop_labels(auto_text_file, drop_metadata, drop_labels): + autofolder = DummyAutoFolder( + data_files={"train": [auto_text_file]}, + drop_metadata=drop_metadata, + drop_labels=drop_labels, + ) + gen_kwargs = autofolder._prepare_split_generators(StreamingDownloadManager())[0].gen_kwargs + # removing the labels explicitly requires drop_labels=True + assert gen_kwargs["add_labels"] is not bool(drop_labels) + assert gen_kwargs["add_metadata"] is False + generator = autofolder._prepare_generate_examples(**gen_kwargs) + if not drop_labels: + assert all( + example.keys() == {"auto", "label"} and all(val is not None for val in example.values()) + for _, example in generator + ) + else: + assert all( + example.keys() == {"auto"} and all(val is not None for val in example.values()) for _, example in generator + ) + + +@pytest.mark.parametrize("drop_metadata", [None, True, False]) +@pytest.mark.parametrize("drop_labels", [None, True, False]) +def test_prepare_generate_examples_drop_metadata(file_with_metadata, drop_metadata, drop_labels): + file, metadata_file = file_with_metadata + autofolder = DummyAutoFolder( + data_files=[file, metadata_file], + drop_metadata=drop_metadata, + drop_labels=drop_labels, + ) + gen_kwargs = autofolder._prepare_split_generators(StreamingDownloadManager())[0].gen_kwargs + # since the dataset has metadata, removing the metadata explicitly requires drop_metadata=True + assert gen_kwargs["add_metadata"] is not bool(drop_metadata) + # since the dataset has metadata, adding the labels explicitly requires drop_labels=False + assert gen_kwargs["add_labels"] is (drop_labels is False) + generator = autofolder._prepare_generate_examples(**gen_kwargs) + expected_columns = {"auto"} + if gen_kwargs["add_metadata"]: + expected_columns.add("additional_feature") + if gen_kwargs["add_labels"]: + expected_columns.add("label") + result = [example for _, example in generator] + assert len(result) == 1 + example = result[0] + assert example.keys() == expected_columns + for column in expected_columns: + assert example[column] is not None + + +@pytest.mark.parametrize("drop_metadata", [None, True, False]) +def test_prepare_generate_examples_with_metadata_that_misses_one_sample( + files_with_metadata_that_misses_one_sample, drop_metadata +): + file, file2, metadata_file = files_with_metadata_that_misses_one_sample + if not drop_metadata: + features = Features({"auto": None, "additional_feature": Value("string")}) + else: + features = Features({"auto": None}) + autofolder = DummyAutoFolder( + data_files=[file, file2, metadata_file], + drop_metadata=drop_metadata, + features=features, + ) + gen_kwargs = autofolder._prepare_split_generators(StreamingDownloadManager())[0].gen_kwargs + generator = autofolder._prepare_generate_examples(**gen_kwargs) + if not drop_metadata: + with pytest.raises(ValueError): + list(generator) + else: + assert all( + example.keys() == {"auto"} and all(val is not None for val in example.values()) for _, example in generator + ) + + +@pytest.mark.parametrize("streaming", [False, True]) +@pytest.mark.parametrize("n_splits", [1, 2]) +def test_data_files_with_metadata_and_splits( + streaming, cache_dir, n_splits, data_files_with_one_split_and_metadata, data_files_with_two_splits_and_metadata +): + data_files = data_files_with_one_split_and_metadata if n_splits == 1 else data_files_with_two_splits_and_metadata + autofolder = DummyAutoFolder( + data_files=data_files, + cache_dir=cache_dir, + ) + download_manager = StreamingDownloadManager() if streaming else DownloadManager() + generated_splits = autofolder._prepare_split_generators(download_manager) + for (split, files), generated_split in zip(data_files.items(), generated_splits): + assert split == generated_split.name + expected_num_of_examples = len(files) - 1 + generated_examples = list(autofolder._prepare_generate_examples(**generated_split.gen_kwargs)) + assert len(generated_examples) == expected_num_of_examples + assert len(set(example["auto"] for _, example in generated_examples)) == expected_num_of_examples + assert len(set(example["additional_feature"] for _, example in generated_examples)) == expected_num_of_examples + assert all(example["additional_feature"] is not None for _, example in generated_examples) + + +@pytest.mark.parametrize("streaming", [False, True]) +def test_data_files_with_metadata_and_archives(streaming, cache_dir, data_files_with_zip_archives): + autofolder = DummyAutoFolder(data_files=data_files_with_zip_archives, cache_dir=cache_dir) + download_manager = StreamingDownloadManager() if streaming else DownloadManager() + generated_splits = autofolder._prepare_split_generators(download_manager) + for (split, files), generated_split in zip(data_files_with_zip_archives.items(), generated_splits): + assert split == generated_split.name + num_of_archives = len(files) + expected_num_of_examples = 2 * num_of_archives + generated_examples = list(autofolder._prepare_generate_examples(**generated_split.gen_kwargs)) + assert len(generated_examples) == expected_num_of_examples + assert len(set(example["auto"] for _, example in generated_examples)) == expected_num_of_examples + assert len(set(example["additional_feature"] for _, example in generated_examples)) == expected_num_of_examples + assert all(example["additional_feature"] is not None for _, example in generated_examples) + + +def test_data_files_with_wrong_metadata_file_name(cache_dir, tmp_path, auto_text_file): + data_dir = tmp_path / "data_dir_with_bad_metadata" + data_dir.mkdir(parents=True, exist_ok=True) + shutil.copyfile(auto_text_file, data_dir / "file.txt") + metadata_filename = data_dir / "bad_metadata.jsonl" # bad file + metadata = textwrap.dedent( + """\ + {"file_name": "file.txt", "additional_feature": "Dummy file"} + """ + ) + with open(metadata_filename, "w", encoding="utf-8") as f: + f.write(metadata) + + data_files_with_bad_metadata = DataFilesDict.from_local_or_remote(get_data_patterns_locally(data_dir), data_dir) + autofolder = DummyAutoFolder(data_files=data_files_with_bad_metadata, cache_dir=cache_dir) + gen_kwargs = autofolder._prepare_split_generators(StreamingDownloadManager())[0].gen_kwargs + generator = autofolder._prepare_generate_examples(**gen_kwargs) + assert all("additional_feature" not in example for _, example in generator) + + +def test_data_files_with_wrong_file_name_column_in_metadata_file(cache_dir, tmp_path, auto_text_file): + data_dir = tmp_path / "data_dir_with_bad_metadata" + data_dir.mkdir(parents=True, exist_ok=True) + shutil.copyfile(auto_text_file, data_dir / "file.txt") + metadata_filename = data_dir / "metadata.jsonl" + metadata = textwrap.dedent( # with bad column "bad_file_name" instead of "file_name" + """\ + {"bad_file_name": "file.txt", "additional_feature": "Dummy file"} + """ + ) + with open(metadata_filename, "w", encoding="utf-8") as f: + f.write(metadata) + + data_files_with_bad_metadata = DataFilesDict.from_local_or_remote(get_data_patterns_locally(data_dir), data_dir) + autofolder = DummyAutoFolder(data_files=data_files_with_bad_metadata, cache_dir=cache_dir) + with pytest.raises(ValueError) as exc_info: + _ = autofolder._prepare_split_generators(StreamingDownloadManager())[0].gen_kwargs + assert "`file_name` must be present" in str(exc_info.value) From 997a01bc15c44b25a802430746d47ff79df493dd Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Fri, 5 Aug 2022 17:09:15 +0200 Subject: [PATCH 30/60] add missed audio_file fixture --- tests/fixtures/files.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/fixtures/files.py b/tests/fixtures/files.py index 46e0d07dfa7..a6502468549 100644 --- a/tests/fixtures/files.py +++ b/tests/fixtures/files.py @@ -472,6 +472,11 @@ def image_file(): return os.path.join("tests", "features", "data", "test_image_rgb.jpg") +@pytest.fixture(scope="session") +def audio_file(): + return os.path.join("tests", "features", "data", "test_audio_44100.wav") + + @pytest.fixture(scope="session") def zip_image_path(image_file, tmp_path_factory): path = tmp_path_factory.mktemp("data") / "dataset.img.zip" From 56d35aad136f87ffd14d109890ad0de7446b8289 Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Sat, 6 Aug 2022 15:45:08 +0200 Subject: [PATCH 31/60] add __name__ to audio/image features to avoid documentation building errors --- src/datasets/packaged_modules/audiofolder/audiofolder.py | 8 ++++++-- src/datasets/packaged_modules/imagefolder/imagefolder.py | 6 +++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/datasets/packaged_modules/audiofolder/audiofolder.py b/src/datasets/packaged_modules/audiofolder/audiofolder.py index 92c086fcc19..fd5e7ba2791 100644 --- a/src/datasets/packaged_modules/audiofolder/audiofolder.py +++ b/src/datasets/packaged_modules/audiofolder/audiofolder.py @@ -9,13 +9,17 @@ logger = datasets.utils.logging.get_logger(__name__) +AUDIO_FEATURE = datasets.Audio() +AUDIO_FEATURE.__name__ = "audio" # set __name__ to enable documentation building + + @dataclass class AudioFolderConfig(autofolder.AutoFolderConfig): """Builder Config for AudioFolder.""" - base_feature: ClassVar = datasets.Audio() + base_feature: ClassVar = AUDIO_FEATURE drop_labels: bool = True # usually we don't need labels as classification is not the main audio task - drop_metadata: bool = False + drop_metadata: bool = None class AudioFolder(autofolder.AutoFolder): diff --git a/src/datasets/packaged_modules/imagefolder/imagefolder.py b/src/datasets/packaged_modules/imagefolder/imagefolder.py index 10c87ebf0d1..247f2a43e77 100644 --- a/src/datasets/packaged_modules/imagefolder/imagefolder.py +++ b/src/datasets/packaged_modules/imagefolder/imagefolder.py @@ -10,11 +10,15 @@ logger = datasets.utils.logging.get_logger(__name__) +IMAGE_FEATURE = datasets.Image() +IMAGE_FEATURE.__name__ = "image" # set __name__ to enable documentation building + + @dataclass class ImageFolderConfig(autofolder.AutoFolderConfig): """BuilderConfig for ImageFolder.""" - base_feature: ClassVar = datasets.Image() + base_feature: ClassVar = IMAGE_FEATURE drop_labels: bool = None drop_metadata: bool = None From 42627ba62752a17a219d7ca638e2af679e8bc392 Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Mon, 8 Aug 2022 13:00:17 +0200 Subject: [PATCH 32/60] fix CI on windows --- tests/packaged_modules/test_autofolder.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tests/packaged_modules/test_autofolder.py b/tests/packaged_modules/test_autofolder.py index 525d1c24243..67991fc1e55 100644 --- a/tests/packaged_modules/test_autofolder.py +++ b/tests/packaged_modules/test_autofolder.py @@ -230,12 +230,14 @@ def test_default_autoconfig_not_usable(data_files_with_labels_no_metadata): with pytest.raises(AttributeError): _ = AutoFolderConfig() with pytest.raises(AttributeError): - _ = AutoFolder() + _ = AutoFolder(data_files=data_files_with_labels_no_metadata) -def test_default_autofolder_not_usable(data_files_with_labels_no_metadata): +def test_default_autofolder_not_usable(data_files_with_labels_no_metadata, cache_dir): autofolder = AutoFolder( - base_feature_name="auto", data_files=data_files_with_labels_no_metadata, cache_dir=cache_dir, drop_labels=False + base_feature_name="auto", + data_files=data_files_with_labels_no_metadata, + cache_dir=cache_dir, ) with pytest.raises(NotImplementedError): autofolder.download_and_prepare() From 76c319f41f484f0ef37e9d0b6c439fe73b8a2b21 Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Mon, 8 Aug 2022 14:31:53 +0200 Subject: [PATCH 33/60] check for __name__ attr too when creating base_feature_name --- src/datasets/packaged_modules/base/autofolder.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/datasets/packaged_modules/base/autofolder.py b/src/datasets/packaged_modules/base/autofolder.py index 6e7244f0be8..6374e2bf77d 100644 --- a/src/datasets/packaged_modules/base/autofolder.py +++ b/src/datasets/packaged_modules/base/autofolder.py @@ -44,7 +44,9 @@ def count_path_segments(path): class AutoFolderConfig(datasets.BuilderConfig): """BuilderConfig for AutoFolder.""" - base_feature: ClassVar = None # i.e. datasets.Image(), datasets.Audio(), we don't have a type for Feature ("FieldType") # TODO: what type? + base_feature: ClassVar = ( + None # i.e. datasets.Image(), datasets.Audio(), we don't have a type for Feature ("FieldType") + ) base_feature_name: str = "" label_column: str = "label" features: Optional[datasets.Features] = None @@ -54,7 +56,17 @@ class AutoFolderConfig(datasets.BuilderConfig): def __post_init__(self): if not self.base_feature_name: # automatically infer feature name from feature if it's not provided - self.base_feature_name = self.base_feature._type.lower() + if hasattr(self.base_feature, "_type"): + self.base_feature_name = self.base_feature._type.lower() + elif hasattr(self.base_feature, "__name__"): + self.base_feature_name = self.base_feature.__name__lower() + else: + raise AttributeError( + """ + `base_feature_name` is not provided and cannot be inferred form the base feature, + check the config's `base_feature`. + """ + ) class AutoFolder(datasets.GeneratorBasedBuilder): From dce047e7b535b910e34d4103c8c95db0701d1088 Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Mon, 8 Aug 2022 14:32:35 +0200 Subject: [PATCH 34/60] add documentation --- docs/source/audio_load.mdx | 122 ++++++++++++++++++ .../package_reference/loading_methods.mdx | 4 + 2 files changed, 126 insertions(+) diff --git a/docs/source/audio_load.mdx b/docs/source/audio_load.mdx index 8bad47e1a78..4b541e692e8 100644 --- a/docs/source/audio_load.mdx +++ b/docs/source/audio_load.mdx @@ -55,3 +55,125 @@ If you only want to load the underlying path to the audio dataset without decodi 'transcription': 'I would like to set up a joint account with my partner'} ``` +## AudioFolder + +You can also load a dataset with a `AudioFolder` dataset builder. It does not require writing a custom dataloader, making it useful for quickly loading audio data. Your dataset structure might look like this: + +``` +folder/train/first_audio_file.wav +folder/train/second_audio_file.wav +folder/train/third_audio_file.wav + +folder/train/last_audio_file.wav +``` + +Load your audio dataset by specifying `audiofolder` and the directory of your dataset in `data_dir`: + +```py +>>> from datasets import load_dataset + +>>> dataset = load_dataset("audiofolder", data_dir="/path/to/folder") +>>> dataset["train"][0] +{'audio': + {'path': '/path/to/extracted/audio/first_audio_file.wav', + 'array': array([ 0.00088501, 0.0012207 , 0.00131226, ..., -0.00045776, -0.00054932, -0.00054932], dtype=float32), + 'sampling_rate': 16000} +} +``` + +Load remote datasets from their URLs with the `data_files` parameter: + +```py +>>> dataset = load_dataset("adiofolder", data_files="https://s3.amazonaws.com/datasets.huggingface.co/SpeechCommands/v0.01/v0.01_test.tar.gz") +``` + +## AudioFolder with metadata + +Metadata associated with your dataset can also be loaded. Make sure your dataset has a `metadata.jsonl` file: + +``` +folder/train/metadata.jsonl +folder/train/first_audio_file.mp3 +folder/train/second_audio_file.mp3 +folder/train/third_audio_file.mp3 +``` + +Your `metadata.jsonl` file must have a `file_name` column which links audio files with their metadata: + +```jsonl +{"file_name": "first_audio_file.mp3", "additional_feature": "This is a first value of a text feature you linked with your audio files"} +{"file_name": "second_audio_file.mp3", "additional_feature": "This is a second value of a text feature you linked with your audio files"} +{"file_name": "third_audio_file.mp3", "additional_feature": "This is a third value of a text feature you linked with your audio files"} +``` + +### Automatic Speech Recognition + +ASR datasets contain text transcriptions of recorded audio files. An example `metadata.jsonl` might look like: + +``` +{"file_name": "11295_11059_000000.flac", "transcription": "znowu się duch z ciałem zrośnie w młodocianej wstaniesz wiosnie i możesz skutkiem tych leków umierać wstawać wiek wieków dalej tam były przestrogi jak siekać głowę jak nogi"} +{"file_name": "11295_11059_000001.flac", "transcription": "już u źwierzyńca podwojów król zasiada przy nim książęta i panowie rada a gdzie wzniosły krążył ganek rycerze obok kochanek król skinął palcem zaczęto igrzysko"} +{"file_name": "11295_11059_000002.flac", "transcription": "pewnie kędyś w obłędzie ubite minęły szlaki zaczekajmy dzień jaki poślemy szukać wszędzie dziś jutro pewnie będzie posłali wszędzie sługi czekali dzień i drugi gdy nic nie doczekali z płaczem chcą jechać dali"} +{"file_name": "11295_11059_000003.flac", "transcription": "na miejscach które dziś piaskiem zaniosło gdzie car i trzcina zarasta po których teraz wasze biega wiosło stał okrąg pięknego miasta"} +``` + +Load the dataset with `AudioFolder`, and it will create a `transcription` column with text transcriptions: + +```py +>>> dataset = load_dataset("audiofolder", data_dir="/path/to/folder", split="train") +>>> dataset[0]["transcription"] +"znowu się duch z ciałem zrośnie w młodocianej wstaniesz wiosnie i możesz skutkiem tych leków umierać wstawać wiek wieków dalej tam były przestrogi jak siekać głowę jak nogi" +``` + +## AudioFolder with labels + +If you have an audio classification task, set `drop_labels=False` to infer labels from directories names as defined in [`~datasets.packaged_modules.audiofolder.AudioFolderConfig`]. +Your data should be organized like: + +``` +folder/train/label_0/first_audio_label_0.mp3 +folder/train/label_0/second_audio_label_0.mp3 +folder/train/label_1/first_audio_label_1.mp3 + +folder/train/label_9/last_audio_label`_99.mp3 +``` + +`AudioFolder` creates a `label` column of a [`~datasets.features.ClassLabel`] type based on the directory name. + +### Language identification + +Language identification is one of audio classification tasks for which you might use labels. + +``` +folder/train/ar/0197_720_0207_190.wav +folder/train/ar/0179_830_0185_540.mp3 +folder/train/ar/0179_830_0185_540.mp3 + +folder/train/zh/0442_690_0454_380.mp3 +``` + +Load the dataset with `AudioFolder` with `drop_labels=False`, and it will create a `label` column with the language id: + +``` +>>> dataset = load_dataset("audiofolder", data_dir="/path/to/folder", drop_labels=False) +>>> dataset["train"][0] +{'audio': + {'path': '/path/to/extracted/audio/0197_720_0207_190.mp3', + 'array': array([-3.6621094e-04, -6.1035156e-05, 6.1035156e-05, ..., -5.1879883e-04, -1.0070801e-03, -7.6293945e-04], + 'sampling_rate': 16000} + 'label': 0 # "ar" +} +>>> dataset["train"][-1] +{'audio': + {'path': '/path/to/extracted/audio/0442_690_0454_380.mp3', + 'array': array([1.8920898e-03, 9.4604492e-04, 1.9226074e-03, ..., 9.1552734e-05, 1.8310547e-04, 6.1035156e-05], + 'sampling_rate': 16000} + 'label': 99 # "zh" +} +``` + + + +Alternatively, you can add `label` column to your `metadata.jsonl` file. + + \ No newline at end of file diff --git a/docs/source/package_reference/loading_methods.mdx b/docs/source/package_reference/loading_methods.mdx index 66508e3dbf1..bc478ffe777 100644 --- a/docs/source/package_reference/loading_methods.mdx +++ b/docs/source/package_reference/loading_methods.mdx @@ -68,3 +68,7 @@ load_dataset("csv", data_dir="path/to/data/dir", sep="\t") ### Images [[autodoc]] datasets.packaged_modules.imagefolder.ImageFolderConfig + +### Audio + +[[autodoc]] datasets.packaged_modules.audiofolder.AudioFolderConfig From 74474fd2b752040e6f076560c85744c62b2a51fa Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Tue, 9 Aug 2022 12:58:26 +0200 Subject: [PATCH 35/60] make base_feature a private attr to be excluded from docs --- .../packaged_modules/audiofolder/audiofolder.py | 6 +----- src/datasets/packaged_modules/base/autofolder.py | 14 +++++++------- .../packaged_modules/imagefolder/imagefolder.py | 6 +----- 3 files changed, 9 insertions(+), 17 deletions(-) diff --git a/src/datasets/packaged_modules/audiofolder/audiofolder.py b/src/datasets/packaged_modules/audiofolder/audiofolder.py index fd5e7ba2791..ed6d77439dc 100644 --- a/src/datasets/packaged_modules/audiofolder/audiofolder.py +++ b/src/datasets/packaged_modules/audiofolder/audiofolder.py @@ -9,15 +9,11 @@ logger = datasets.utils.logging.get_logger(__name__) -AUDIO_FEATURE = datasets.Audio() -AUDIO_FEATURE.__name__ = "audio" # set __name__ to enable documentation building - - @dataclass class AudioFolderConfig(autofolder.AutoFolderConfig): """Builder Config for AudioFolder.""" - base_feature: ClassVar = AUDIO_FEATURE + _base_feature: ClassVar = datasets.Audio() drop_labels: bool = True # usually we don't need labels as classification is not the main audio task drop_metadata: bool = None diff --git a/src/datasets/packaged_modules/base/autofolder.py b/src/datasets/packaged_modules/base/autofolder.py index 6374e2bf77d..6292d3c49b7 100644 --- a/src/datasets/packaged_modules/base/autofolder.py +++ b/src/datasets/packaged_modules/base/autofolder.py @@ -44,7 +44,7 @@ def count_path_segments(path): class AutoFolderConfig(datasets.BuilderConfig): """BuilderConfig for AutoFolder.""" - base_feature: ClassVar = ( + _base_feature: ClassVar = ( None # i.e. datasets.Image(), datasets.Audio(), we don't have a type for Feature ("FieldType") ) base_feature_name: str = "" @@ -56,10 +56,10 @@ class AutoFolderConfig(datasets.BuilderConfig): def __post_init__(self): if not self.base_feature_name: # automatically infer feature name from feature if it's not provided - if hasattr(self.base_feature, "_type"): - self.base_feature_name = self.base_feature._type.lower() - elif hasattr(self.base_feature, "__name__"): - self.base_feature_name = self.base_feature.__name__lower() + if hasattr(self._base_feature, "_type"): + self.base_feature_name = self._base_feature._type.lower() + elif hasattr(self._base_feature, "__name__"): + self.base_feature_name = self._base_feature.__name__.lower() else: raise AttributeError( """ @@ -204,12 +204,12 @@ def analyze(files_or_archives, downloaded_files_or_dirs, split): if add_labels: self.info.features = datasets.Features( { - self.config.base_feature_name: self.config.base_feature, + self.config.base_feature_name: self.config._base_feature, self.config.label_column: datasets.ClassLabel(names=sorted(labels)), } ) else: - self.info.features = datasets.Features({self.config.base_feature_name: self.config.base_feature}) + self.info.features = datasets.Features({self.config.base_feature_name: self.config._base_feature}) if add_metadata: # Warn if there are duplicated keys in metadata compared to the existing features diff --git a/src/datasets/packaged_modules/imagefolder/imagefolder.py b/src/datasets/packaged_modules/imagefolder/imagefolder.py index 247f2a43e77..b45f0b29058 100644 --- a/src/datasets/packaged_modules/imagefolder/imagefolder.py +++ b/src/datasets/packaged_modules/imagefolder/imagefolder.py @@ -10,15 +10,11 @@ logger = datasets.utils.logging.get_logger(__name__) -IMAGE_FEATURE = datasets.Image() -IMAGE_FEATURE.__name__ = "image" # set __name__ to enable documentation building - - @dataclass class ImageFolderConfig(autofolder.AutoFolderConfig): """BuilderConfig for ImageFolder.""" - base_feature: ClassVar = IMAGE_FEATURE + _base_feature: ClassVar = datasets.Image() drop_labels: bool = None drop_metadata: bool = None From 91c130b02ec09d719ddd2fdfe0a9c6c055c08586 Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Tue, 9 Aug 2022 13:02:55 +0200 Subject: [PATCH 36/60] fix docs --- docs/source/audio_load.mdx | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/docs/source/audio_load.mdx b/docs/source/audio_load.mdx index 4b541e692e8..471f5cba219 100644 --- a/docs/source/audio_load.mdx +++ b/docs/source/audio_load.mdx @@ -57,7 +57,7 @@ If you only want to load the underlying path to the audio dataset without decodi ## AudioFolder -You can also load a dataset with a `AudioFolder` dataset builder. It does not require writing a custom dataloader, making it useful for quickly loading audio data. Your dataset structure might look like this: +You can also load a dataset with a `AudioFolder` dataset builder. It does not require writing a custom dataloader, making it useful for quickly loading audio data. Your dataset structure might look like: ``` folder/train/first_audio_file.wav @@ -67,7 +67,7 @@ folder/train/third_audio_file.wav folder/train/last_audio_file.wav ``` -Load your audio dataset by specifying `audiofolder` and the directory of your dataset in `data_dir`: +Load your audio dataset by specifying `audiofolder` and the directory containing your data in `data_dir`: ```py >>> from datasets import load_dataset @@ -128,21 +128,21 @@ Load the dataset with `AudioFolder`, and it will create a `transcription` column ## AudioFolder with labels If you have an audio classification task, set `drop_labels=False` to infer labels from directories names as defined in [`~datasets.packaged_modules.audiofolder.AudioFolderConfig`]. -Your data should be organized like: +Your dataset structure should look like this: ``` folder/train/label_0/first_audio_label_0.mp3 folder/train/label_0/second_audio_label_0.mp3 folder/train/label_1/first_audio_label_1.mp3 -folder/train/label_9/last_audio_label`_99.mp3 +folder/train/label_9/last_audio_label_99.mp3 ``` -`AudioFolder` creates a `label` column of a [`~datasets.features.ClassLabel`] type based on the directory name. +`AudioFolder` will creates a `label` column of a [`~datasets.features.ClassLabel`] type based on the directory name. ### Language identification -Language identification is one of audio classification tasks for which you might use labels. +Language identification datasets have audio recordings of speech in multiple languages: ``` folder/train/ar/0197_720_0207_190.wav @@ -152,7 +152,7 @@ folder/train/ar/0179_830_0185_540.mp3 folder/train/zh/0442_690_0454_380.mp3 ``` -Load the dataset with `AudioFolder` with `drop_labels=False`, and it will create a `label` column with the language id: +Load the dataset with `drop_labels=False`, and `AudioFolder` will create a `label` column with the language id based on the directory name: ``` >>> dataset = load_dataset("audiofolder", data_dir="/path/to/folder", drop_labels=False) @@ -163,6 +163,7 @@ Load the dataset with `AudioFolder` with `drop_labels=False`, and it will create 'sampling_rate': 16000} 'label': 0 # "ar" } + >>> dataset["train"][-1] {'audio': {'path': '/path/to/extracted/audio/0442_690_0454_380.mp3', From 0c33f7380701ea62bd7e58555d08c89057606398 Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Tue, 9 Aug 2022 13:42:59 +0200 Subject: [PATCH 37/60] fix comment (rename base_feature) --- tests/packaged_modules/test_autofolder.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/packaged_modules/test_autofolder.py b/tests/packaged_modules/test_autofolder.py index 67991fc1e55..d30343d456a 100644 --- a/tests/packaged_modules/test_autofolder.py +++ b/tests/packaged_modules/test_autofolder.py @@ -225,8 +225,8 @@ def test_inferring_labels_from_data_dirs(data_files_with_labels_no_metadata, cac def test_default_autoconfig_not_usable(data_files_with_labels_no_metadata): - # by default AutoFolderConfig will try to create base_feature_name from base_feature - # but AutoFolderConfig.base_feature is None + # by default AutoFolderConfig will try to create base_feature_name from _base_feature + # but AutoFolderConfig._base_feature is None with pytest.raises(AttributeError): _ = AutoFolderConfig() with pytest.raises(AttributeError): From 75ac1f47177df8e78e294483c926c4210a340d12 Mon Sep 17 00:00:00 2001 From: Polina Kazakova Date: Thu, 11 Aug 2022 17:08:04 +0200 Subject: [PATCH 38/60] fix typos (from code review) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Mario Šaško --- docs/source/audio_load.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/audio_load.mdx b/docs/source/audio_load.mdx index 471f5cba219..be5483eaf87 100644 --- a/docs/source/audio_load.mdx +++ b/docs/source/audio_load.mdx @@ -84,7 +84,7 @@ Load your audio dataset by specifying `audiofolder` and the directory containing Load remote datasets from their URLs with the `data_files` parameter: ```py ->>> dataset = load_dataset("adiofolder", data_files="https://s3.amazonaws.com/datasets.huggingface.co/SpeechCommands/v0.01/v0.01_test.tar.gz") +>>> dataset = load_dataset("audiofolder", data_files="https://s3.amazonaws.com/datasets.huggingface.co/SpeechCommands/v0.01/v0.01_test.tar.gz") ``` ## AudioFolder with metadata @@ -138,7 +138,7 @@ folder/train/label_1/first_audio_label_1.mp3 folder/train/label_9/last_audio_label_99.mp3 ``` -`AudioFolder` will creates a `label` column of a [`~datasets.features.ClassLabel`] type based on the directory name. +`AudioFolder` will create a `label` column of a [`~datasets.features.ClassLabel`] type based on the directory name. ### Language identification From 3ab6136ced444ad28e9e9adb201540811f4d299a Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Thu, 11 Aug 2022 17:11:30 +0200 Subject: [PATCH 39/60] fix typo (from code review) --- docs/source/audio_load.mdx | 2 +- docs/source/image_load.mdx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/audio_load.mdx b/docs/source/audio_load.mdx index be5483eaf87..b713d1dc086 100644 --- a/docs/source/audio_load.mdx +++ b/docs/source/audio_load.mdx @@ -57,7 +57,7 @@ If you only want to load the underlying path to the audio dataset without decodi ## AudioFolder -You can also load a dataset with a `AudioFolder` dataset builder. It does not require writing a custom dataloader, making it useful for quickly loading audio data. Your dataset structure might look like: +You can also load a dataset with an `AudioFolder` dataset builder. It does not require writing a custom dataloader, making it useful for quickly loading audio data. Your dataset structure might look like: ``` folder/train/first_audio_file.wav diff --git a/docs/source/image_load.mdx b/docs/source/image_load.mdx index fdfc50a35be..7596a094bc8 100644 --- a/docs/source/image_load.mdx +++ b/docs/source/image_load.mdx @@ -47,7 +47,7 @@ If you only want to load the underlying path to the image dataset without decodi ## ImageFolder -You can also load a dataset with a `ImageFolder` dataset builder. It does not require writing a custom dataloader, making it useful for quickly loading a dataset for certain vision tasks. Your image dataset structure should look like this: +You can also load a dataset with an `ImageFolder` dataset builder. It does not require writing a custom dataloader, making it useful for quickly loading a dataset for certain vision tasks. Your image dataset structure should look like this: ``` folder/train/dog/golden_retriever.png From 0b608930ae0a1047ba3c75d6e0df74cf28373f7f Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Sat, 13 Aug 2022 16:04:31 +0200 Subject: [PATCH 40/60] remove boilerplate, make base feature builder's class arg instead of a config's one --- .../audiofolder/audiofolder.py | 21 ++----- .../{base => autofolder}/__init__.py | 0 .../{base => autofolder}/autofolder.py | 60 ++++++++++-------- .../imagefolder/imagefolder.py | 32 ++-------- src/datasets/streaming.py | 2 +- tests/packaged_modules/test_autofolder.py | 61 ++++++++----------- 6 files changed, 72 insertions(+), 104 deletions(-) rename src/datasets/packaged_modules/{base => autofolder}/__init__.py (100%) rename src/datasets/packaged_modules/{base => autofolder}/autofolder.py (92%) diff --git a/src/datasets/packaged_modules/audiofolder/audiofolder.py b/src/datasets/packaged_modules/audiofolder/audiofolder.py index ed6d77439dc..b9589672fea 100644 --- a/src/datasets/packaged_modules/audiofolder/audiofolder.py +++ b/src/datasets/packaged_modules/audiofolder/audiofolder.py @@ -1,9 +1,9 @@ from dataclasses import dataclass -from typing import ClassVar, List +from typing import List import datasets -from ..base import autofolder +from ..autofolder import autofolder logger = datasets.utils.logging.get_logger(__name__) @@ -13,27 +13,14 @@ class AudioFolderConfig(autofolder.AutoFolderConfig): """Builder Config for AudioFolder.""" - _base_feature: ClassVar = datasets.Audio() drop_labels: bool = True # usually we don't need labels as classification is not the main audio task drop_metadata: bool = None class AudioFolder(autofolder.AutoFolder): + BASE_FEATURE = datasets.Audio() BUILDER_CONFIG_CLASS = AudioFolderConfig - EXTENSIONS: List[str] = [] # definition at the bottom of the script - - def _info(self): - return datasets.DatasetInfo(features=self.config.features) - - def _split_generators(self, dl_manager): - # _prepare_split_generators() sets self.info.features, - # infers labels, finds metadata files if needed and returns splits - return self._prepare_split_generators(dl_manager) - - def _generate_examples(self, files, metadata_files, split_name, add_metadata, add_labels): - generator = self._prepare_generate_examples(files, metadata_files, split_name, add_metadata, add_labels) - for _, example in generator: - yield _, example + EXTENSIONS: List[str] # definition at the bottom of the script # Obtained with: diff --git a/src/datasets/packaged_modules/base/__init__.py b/src/datasets/packaged_modules/autofolder/__init__.py similarity index 100% rename from src/datasets/packaged_modules/base/__init__.py rename to src/datasets/packaged_modules/autofolder/__init__.py diff --git a/src/datasets/packaged_modules/base/autofolder.py b/src/datasets/packaged_modules/autofolder/autofolder.py similarity index 92% rename from src/datasets/packaged_modules/base/autofolder.py rename to src/datasets/packaged_modules/autofolder/autofolder.py index 6292d3c49b7..08a101ea143 100644 --- a/src/datasets/packaged_modules/base/autofolder.py +++ b/src/datasets/packaged_modules/autofolder/autofolder.py @@ -1,8 +1,9 @@ +import abc import collections import itertools import os from dataclasses import dataclass -from typing import ClassVar, List, Optional, Tuple +from typing import Any, List, Optional, Tuple import pyarrow.compute as pc import pyarrow.json as paj @@ -44,41 +45,52 @@ def count_path_segments(path): class AutoFolderConfig(datasets.BuilderConfig): """BuilderConfig for AutoFolder.""" - _base_feature: ClassVar = ( - None # i.e. datasets.Image(), datasets.Audio(), we don't have a type for Feature ("FieldType") - ) base_feature_name: str = "" label_column: str = "label" features: Optional[datasets.Features] = None drop_labels: bool = None drop_metadata: bool = None - def __post_init__(self): - if not self.base_feature_name: - # automatically infer feature name from feature if it's not provided - if hasattr(self._base_feature, "_type"): - self.base_feature_name = self._base_feature._type.lower() - elif hasattr(self._base_feature, "__name__"): - self.base_feature_name = self._base_feature.__name__.lower() + +class AutoFolder(datasets.GeneratorBasedBuilder, abc.ABC): + """ + Base class for generic data loaders for vision and image data. + + + Abstract class attributes to be overridden by a child class: + BASE_FEATURE: feature to decode data (i.e. datasets.Image(), datasets.Audio(), ...) + BUILDER_CONFIG_CLASS: builder config inherited from `autofolder.AutoFolderConfig` + EXTENSIONS: list of allowed extensions (only files with these extensions and METADATA_FILENAME files + will be included in a dataset) + """ + + BASE_FEATURE: Any + BUILDER_CONFIG_CLASS: AutoFolderConfig + EXTENSIONS: List[str] + + SKIP_CHECKSUM_COMPUTATION_BY_DEFAULT: bool = True + METADATA_FILENAME: str = "metadata.jsonl" + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + if not self.config.base_feature_name: + # automatically infer base_feature_name if it's not provided + if hasattr(self.BASE_FEATURE, "_type"): + self.config.base_feature_name = self.BASE_FEATURE._type.lower() + elif hasattr(self.BASE_FEATURE, "__name__"): + self.config.base_feature_name = self.BASE_FEATURE.__name__.lower() else: raise AttributeError( """ - `base_feature_name` is not provided and cannot be inferred form the base feature, - check the config's `base_feature`. + Builder config's `base_feature_name` is not provided and cannot be inferred form the `BASE_FEATURE`, + check the builder's `BASE_FEATURE` attribute. """ ) - -class AutoFolder(datasets.GeneratorBasedBuilder): - BUILDER_CONFIG_CLASS = AutoFolderConfig - EXTENSIONS: List[str] = [] - SKIP_CHECKSUM_COMPUTATION_BY_DEFAULT = True - METADATA_FILENAME: str = "metadata.jsonl" - def _info(self): return datasets.DatasetInfo(features=self.config.features) - def _prepare_split_generators(self, dl_manager): + def _split_generators(self, dl_manager): if not self.config.data_files: raise ValueError(f"At least one data file must be specified, but got data_files={self.config.data_files}") @@ -204,12 +216,12 @@ def analyze(files_or_archives, downloaded_files_or_dirs, split): if add_labels: self.info.features = datasets.Features( { - self.config.base_feature_name: self.config._base_feature, + self.config.base_feature_name: self.BASE_FEATURE, self.config.label_column: datasets.ClassLabel(names=sorted(labels)), } ) else: - self.info.features = datasets.Features({self.config.base_feature_name: self.config._base_feature}) + self.info.features = datasets.Features({self.config.base_feature_name: self.BASE_FEATURE}) if add_metadata: # Warn if there are duplicated keys in metadata compared to the existing features @@ -243,7 +255,7 @@ def _split_files_and_archives(self, data_files): archives.append(data_file) return files, archives - def _prepare_generate_examples(self, files, metadata_files, split_name, add_metadata, add_labels): + def _generate_examples(self, files, metadata_files, split_name, add_metadata, add_labels): split_metadata_files = metadata_files.get(split_name, []) sample_empty_metadata = ( {k: None for k in self.info.features if k != self.config.base_feature_name} if self.info.features else {} diff --git a/src/datasets/packaged_modules/imagefolder/imagefolder.py b/src/datasets/packaged_modules/imagefolder/imagefolder.py index b45f0b29058..c30a409c43d 100644 --- a/src/datasets/packaged_modules/imagefolder/imagefolder.py +++ b/src/datasets/packaged_modules/imagefolder/imagefolder.py @@ -1,10 +1,9 @@ from dataclasses import dataclass -from typing import ClassVar, List +from typing import List import datasets -from datasets.tasks import ImageClassification -from ..base import autofolder +from ..autofolder import autofolder logger = datasets.utils.logging.get_logger(__name__) @@ -14,37 +13,14 @@ class ImageFolderConfig(autofolder.AutoFolderConfig): """BuilderConfig for ImageFolder.""" - _base_feature: ClassVar = datasets.Image() drop_labels: bool = None drop_metadata: bool = None class ImageFolder(autofolder.AutoFolder): + BASE_FEATURE = datasets.Image() BUILDER_CONFIG_CLASS = ImageFolderConfig - EXTENSIONS: List[str] = [] # definition at the bottom of the script - - def _info(self): - return datasets.DatasetInfo(features=self.config.features) - - def _split_generators(self, dl_manager): - # _prepare_split_generators() sets self.info.features, - # infers labels, finds metadata files if needed and returns splits - splits = self._prepare_split_generators(dl_manager) - - add_labels = splits[0].gen_kwargs["add_labels"] - if self.config.features is None and add_labels: - task_template = ImageClassification( - image_column=self.config.base_feature_name, label_column=self.config.label_column - ) - task_template = task_template.align_with_features(self.info.features) - self.info.task_templates = [task_template] - - return splits - - def _generate_examples(self, files, metadata_files, split_name, add_metadata, add_labels): - generator = self._prepare_generate_examples(files, metadata_files, split_name, add_metadata, add_labels) - for _, example in generator: - yield _, example + EXTENSIONS: List[str] # definition at the bottom of the script # Obtained with: diff --git a/src/datasets/streaming.py b/src/datasets/streaming.py index f716090b72d..63202c6e799 100644 --- a/src/datasets/streaming.py +++ b/src/datasets/streaming.py @@ -115,7 +115,7 @@ def extend_dataset_builder_for_streaming(builder: "DatasetBuilder"): # we need to patch autofolder.py manually because it's a parent of ImageFolder and AudioFolder,` # and it contains generation of examples for them (which uses `os` functions) # but it's not patched automatically because it's not instantiated - from .packaged_modules.base.autofolder import AutoFolder + from .packaged_modules.autofolder.autofolder import AutoFolder autofolder_module = [cls.__module__ for cls in type(builder).__mro__ if cls is AutoFolder] if autofolder_module: diff --git a/tests/packaged_modules/test_autofolder.py b/tests/packaged_modules/test_autofolder.py index d30343d456a..cf5fdcac833 100644 --- a/tests/packaged_modules/test_autofolder.py +++ b/tests/packaged_modules/test_autofolder.py @@ -7,10 +7,12 @@ from datasets import ClassLabel, DownloadManager, Features, Value from datasets.data_files import DataFilesDict, get_data_patterns_locally from datasets.download.streaming_download_manager import StreamingDownloadManager -from datasets.packaged_modules.base.autofolder import AutoFolder, AutoFolderConfig +from datasets.packaged_modules.autofolder.autofolder import AutoFolder, AutoFolderConfig class DummyAutoFolder(AutoFolder): + BASE_FEATURE = None + BUILDER_CONFIG_CLASS = AutoFolderConfig EXTENSIONS = [".txt"] def __init__(self, *args, **kwargs): @@ -218,29 +220,20 @@ def data_files_with_zip_archives(tmp_path, auto_text_file): def test_inferring_labels_from_data_dirs(data_files_with_labels_no_metadata, cache_dir): autofolder = DummyAutoFolder(data_files=data_files_with_labels_no_metadata, cache_dir=cache_dir, drop_labels=False) - gen_kwargs = autofolder._prepare_split_generators(StreamingDownloadManager())[0].gen_kwargs + gen_kwargs = autofolder._split_generators(StreamingDownloadManager())[0].gen_kwargs assert autofolder.info.features == Features({"auto": None, "label": ClassLabel(names=["class0", "class1"])}) - generator = autofolder._prepare_generate_examples(**gen_kwargs) + generator = autofolder._generate_examples(**gen_kwargs) assert all(example["label"] in {"class0", "class1"} for _, example in generator) -def test_default_autoconfig_not_usable(data_files_with_labels_no_metadata): - # by default AutoFolderConfig will try to create base_feature_name from _base_feature - # but AutoFolderConfig._base_feature is None - with pytest.raises(AttributeError): - _ = AutoFolderConfig() - with pytest.raises(AttributeError): - _ = AutoFolder(data_files=data_files_with_labels_no_metadata) - - def test_default_autofolder_not_usable(data_files_with_labels_no_metadata, cache_dir): - autofolder = AutoFolder( - base_feature_name="auto", - data_files=data_files_with_labels_no_metadata, - cache_dir=cache_dir, - ) - with pytest.raises(NotImplementedError): - autofolder.download_and_prepare() + # builder would try to access non-existing attributes of a default `BuilderConfig` class + # as a custom one is not provided + with pytest.raises(AttributeError): + _ = AutoFolder( + data_files=data_files_with_labels_no_metadata, + cache_dir=cache_dir, + ) # test that AutoFolder is extended for streaming when it's child class is instantiated: @@ -264,8 +257,8 @@ def test_prepare_generate_examples_duplicated_label_key( drop_metadata=drop_metadata, drop_labels=drop_labels, ) - gen_kwargs = autofolder._prepare_split_generators(StreamingDownloadManager())[0].gen_kwargs - generator = autofolder._prepare_generate_examples(**gen_kwargs) + gen_kwargs = autofolder._split_generators(StreamingDownloadManager())[0].gen_kwargs + generator = autofolder._generate_examples(**gen_kwargs) if drop_labels is False: # infer labels from directories even if metadata files are found warning_in_logs = any("ignoring metadata columns" in record.msg.lower() for record in caplog.records) @@ -292,11 +285,11 @@ def test_prepare_generate_examples_drop_labels(auto_text_file, drop_metadata, dr drop_metadata=drop_metadata, drop_labels=drop_labels, ) - gen_kwargs = autofolder._prepare_split_generators(StreamingDownloadManager())[0].gen_kwargs + gen_kwargs = autofolder._split_generators(StreamingDownloadManager())[0].gen_kwargs # removing the labels explicitly requires drop_labels=True assert gen_kwargs["add_labels"] is not bool(drop_labels) assert gen_kwargs["add_metadata"] is False - generator = autofolder._prepare_generate_examples(**gen_kwargs) + generator = autofolder._generate_examples(**gen_kwargs) if not drop_labels: assert all( example.keys() == {"auto", "label"} and all(val is not None for val in example.values()) @@ -317,12 +310,12 @@ def test_prepare_generate_examples_drop_metadata(file_with_metadata, drop_metada drop_metadata=drop_metadata, drop_labels=drop_labels, ) - gen_kwargs = autofolder._prepare_split_generators(StreamingDownloadManager())[0].gen_kwargs + gen_kwargs = autofolder._split_generators(StreamingDownloadManager())[0].gen_kwargs # since the dataset has metadata, removing the metadata explicitly requires drop_metadata=True assert gen_kwargs["add_metadata"] is not bool(drop_metadata) # since the dataset has metadata, adding the labels explicitly requires drop_labels=False assert gen_kwargs["add_labels"] is (drop_labels is False) - generator = autofolder._prepare_generate_examples(**gen_kwargs) + generator = autofolder._generate_examples(**gen_kwargs) expected_columns = {"auto"} if gen_kwargs["add_metadata"]: expected_columns.add("additional_feature") @@ -350,8 +343,8 @@ def test_prepare_generate_examples_with_metadata_that_misses_one_sample( drop_metadata=drop_metadata, features=features, ) - gen_kwargs = autofolder._prepare_split_generators(StreamingDownloadManager())[0].gen_kwargs - generator = autofolder._prepare_generate_examples(**gen_kwargs) + gen_kwargs = autofolder._split_generators(StreamingDownloadManager())[0].gen_kwargs + generator = autofolder._generate_examples(**gen_kwargs) if not drop_metadata: with pytest.raises(ValueError): list(generator) @@ -372,11 +365,11 @@ def test_data_files_with_metadata_and_splits( cache_dir=cache_dir, ) download_manager = StreamingDownloadManager() if streaming else DownloadManager() - generated_splits = autofolder._prepare_split_generators(download_manager) + generated_splits = autofolder._split_generators(download_manager) for (split, files), generated_split in zip(data_files.items(), generated_splits): assert split == generated_split.name expected_num_of_examples = len(files) - 1 - generated_examples = list(autofolder._prepare_generate_examples(**generated_split.gen_kwargs)) + generated_examples = list(autofolder._generate_examples(**generated_split.gen_kwargs)) assert len(generated_examples) == expected_num_of_examples assert len(set(example["auto"] for _, example in generated_examples)) == expected_num_of_examples assert len(set(example["additional_feature"] for _, example in generated_examples)) == expected_num_of_examples @@ -387,12 +380,12 @@ def test_data_files_with_metadata_and_splits( def test_data_files_with_metadata_and_archives(streaming, cache_dir, data_files_with_zip_archives): autofolder = DummyAutoFolder(data_files=data_files_with_zip_archives, cache_dir=cache_dir) download_manager = StreamingDownloadManager() if streaming else DownloadManager() - generated_splits = autofolder._prepare_split_generators(download_manager) + generated_splits = autofolder._split_generators(download_manager) for (split, files), generated_split in zip(data_files_with_zip_archives.items(), generated_splits): assert split == generated_split.name num_of_archives = len(files) expected_num_of_examples = 2 * num_of_archives - generated_examples = list(autofolder._prepare_generate_examples(**generated_split.gen_kwargs)) + generated_examples = list(autofolder._generate_examples(**generated_split.gen_kwargs)) assert len(generated_examples) == expected_num_of_examples assert len(set(example["auto"] for _, example in generated_examples)) == expected_num_of_examples assert len(set(example["additional_feature"] for _, example in generated_examples)) == expected_num_of_examples @@ -414,8 +407,8 @@ def test_data_files_with_wrong_metadata_file_name(cache_dir, tmp_path, auto_text data_files_with_bad_metadata = DataFilesDict.from_local_or_remote(get_data_patterns_locally(data_dir), data_dir) autofolder = DummyAutoFolder(data_files=data_files_with_bad_metadata, cache_dir=cache_dir) - gen_kwargs = autofolder._prepare_split_generators(StreamingDownloadManager())[0].gen_kwargs - generator = autofolder._prepare_generate_examples(**gen_kwargs) + gen_kwargs = autofolder._split_generators(StreamingDownloadManager())[0].gen_kwargs + generator = autofolder._generate_examples(**gen_kwargs) assert all("additional_feature" not in example for _, example in generator) @@ -435,5 +428,5 @@ def test_data_files_with_wrong_file_name_column_in_metadata_file(cache_dir, tmp_ data_files_with_bad_metadata = DataFilesDict.from_local_or_remote(get_data_patterns_locally(data_dir), data_dir) autofolder = DummyAutoFolder(data_files=data_files_with_bad_metadata, cache_dir=cache_dir) with pytest.raises(ValueError) as exc_info: - _ = autofolder._prepare_split_generators(StreamingDownloadManager())[0].gen_kwargs + _ = autofolder._split_generators(StreamingDownloadManager())[0].gen_kwargs assert "`file_name` must be present" in str(exc_info.value) From bc1fb3d6937b194011a28b15df272801cc10187c Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Sat, 13 Aug 2022 22:02:01 +0200 Subject: [PATCH 41/60] patch relative imports from parent folder too --- src/datasets/streaming.py | 27 ++++++++++++--------------- src/datasets/utils/py_utils.py | 21 ++++++++++++--------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/datasets/streaming.py b/src/datasets/streaming.py index 63202c6e799..d5c2449e766 100644 --- a/src/datasets/streaming.py +++ b/src/datasets/streaming.py @@ -105,18 +105,15 @@ def extend_dataset_builder_for_streaming(builder: "DatasetBuilder"): # this extends the open and os.path.join functions for data streaming extend_module_for_streaming(builder.__module__, use_auth_token=builder.use_auth_token) # if needed, we also have to extend additional internal imports (like wmt14 -> wmt_utils) - if not builder.__module__.startswith("datasets."): # check that it's not a packaged builder like csv - for imports in get_imports(inspect.getfile(builder.__class__)): - if imports[0] == "internal": - internal_import_name = imports[1] - internal_module_name = ".".join(builder.__module__.split(".")[:-1] + [internal_import_name]) - extend_module_for_streaming(internal_module_name, use_auth_token=builder.use_auth_token) - - # we need to patch autofolder.py manually because it's a parent of ImageFolder and AudioFolder,` - # and it contains generation of examples for them (which uses `os` functions) - # but it's not patched automatically because it's not instantiated - from .packaged_modules.autofolder.autofolder import AutoFolder - - autofolder_module = [cls.__module__ for cls in type(builder).__mro__ if cls is AutoFolder] - if autofolder_module: - extend_module_for_streaming(autofolder_module[0], use_auth_token=builder.use_auth_token) + for imports in get_imports(inspect.getfile(builder.__class__)): + if imports[0] == "internal": + internal_import_name = imports[1] + # if import is from a parent's directory we should go to the level up to get the correct path to the module + if internal_import_name.startswith(".."): + internal_import_name = [internal_import_name.lstrip("."), imports[2]] + internal_import_path = builder.__module__.split(".")[:-2] + else: + internal_import_name = [internal_import_name] + internal_import_path = builder.__module__.split(".")[:-1] + internal_module_name = ".".join(internal_import_path + internal_import_name) + extend_module_for_streaming(internal_module_name, use_auth_token=builder.use_auth_token) diff --git a/src/datasets/utils/py_utils.py b/src/datasets/utils/py_utils.py index 07436d016f3..0c27d924690 100644 --- a/src/datasets/utils/py_utils.py +++ b/src/datasets/utils/py_utils.py @@ -551,32 +551,35 @@ def get_imports(file_path: str) -> Tuple[str, str, str, str]: # not be added as required dependencies continue - match = re.match(r"^import\s+(\.?)([^\s\.]+)[^#\r\n]*(?:#\s+From:\s+)?([^\r\n]*)", line, flags=re.MULTILINE) + match = re.match(r"^import\s+(\.?)([^\s\.]+)([^#\r\n]*)(?:#\s+From:\s+)?([^\r\n]*)", line, flags=re.MULTILINE) if match is None: match = re.match( - r"^from\s+(\.?)([^\s\.]+)(?:[^\s]*)\s+import\s+[^#\r\n]*(?:#\s+From:\s+)?([^\r\n]*)", + r"^from\s+(\.{0,2})([^\s\.]+)(?:[^\s]*)\s+import\s+([^#\r\n]*)(?:#\s+From:\s+)?([^\r\n]*)", line, flags=re.MULTILINE, ) if match is None: continue if match.group(1): - # The import starts with a '.', we will download the relevant file + # The import starts with '.' or '..', we will download the relevant file if any(imp[1] == match.group(2) for imp in imports): # We already have this import continue - if match.group(3): + if match.group(4): # The import has a comment with 'From:', we'll retrieve it from the given url - url_path = match.group(3) + url_path = match.group(4) url_path, sub_directory = _convert_github_url(url_path) imports.append(("external", match.group(2), url_path, sub_directory)) elif match.group(2): - # The import should be at the same place as the file - imports.append(("internal", match.group(2), match.group(2), None)) + # if import is from a parent's directory we should keep the name after "from" to get the correct module + if match.group(1).startswith(".."): + imports.append(("internal", f"..{match.group(2)}", match.group(3), None)) + else: + imports.append(("internal", match.group(2), match.group(2), None)) else: - if match.group(3): + if match.group(4): # The import has a comment with `From: git+https:...`, asks user to pip install from git. - url_path = match.group(3) + url_path = match.group(4) imports.append(("library", match.group(2), url_path, None)) else: imports.append(("library", match.group(2), match.group(2), None)) From 724782ead49e80bec605ce8750a2c9f83e1197ac Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Tue, 16 Aug 2022 13:26:31 +0200 Subject: [PATCH 42/60] remove self.config.label_name, use hardcoded 'label' --- src/datasets/packaged_modules/autofolder/autofolder.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/datasets/packaged_modules/autofolder/autofolder.py b/src/datasets/packaged_modules/autofolder/autofolder.py index 08a101ea143..b7e62c0ace0 100644 --- a/src/datasets/packaged_modules/autofolder/autofolder.py +++ b/src/datasets/packaged_modules/autofolder/autofolder.py @@ -46,7 +46,6 @@ class AutoFolderConfig(datasets.BuilderConfig): """BuilderConfig for AutoFolder.""" base_feature_name: str = "" - label_column: str = "label" features: Optional[datasets.Features] = None drop_labels: bool = None drop_metadata: bool = None @@ -217,7 +216,7 @@ def analyze(files_or_archives, downloaded_files_or_dirs, split): self.info.features = datasets.Features( { self.config.base_feature_name: self.BASE_FEATURE, - self.config.label_column: datasets.ClassLabel(names=sorted(labels)), + "label": datasets.ClassLabel(names=sorted(labels)), } ) else: @@ -326,7 +325,7 @@ def _generate_examples(self, files, metadata_files, split_name, add_metadata, ad else: sample_metadata = {} if add_labels: - sample_label = {self.config.label_column: os.path.basename(os.path.dirname(original_file))} + sample_label = {"label": os.path.basename(os.path.dirname(original_file))} else: sample_label = {} yield file_idx, { @@ -396,9 +395,7 @@ def _generate_examples(self, files, metadata_files, split_name, add_metadata, ad else: sample_metadata = {} if add_labels: - sample_label = { - self.config.label_column: os.path.basename(os.path.dirname(downloaded_dir_file)) - } + sample_label = {"label": os.path.basename(os.path.dirname(downloaded_dir_file))} else: sample_label = {} yield file_idx, { From bfecab46c0aa2adea8adb014204ad8f26fd4c4bc Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Tue, 16 Aug 2022 17:04:40 +0200 Subject: [PATCH 43/60] patch parents that inherit from DatasetBuilder, revert get_imports --- src/datasets/streaming.py | 33 +++++++++++++++++++++------------ src/datasets/utils/py_utils.py | 21 +++++++++------------ 2 files changed, 30 insertions(+), 24 deletions(-) diff --git a/src/datasets/streaming.py b/src/datasets/streaming.py index d5c2449e766..f6efc7cfdb9 100644 --- a/src/datasets/streaming.py +++ b/src/datasets/streaming.py @@ -105,15 +105,24 @@ def extend_dataset_builder_for_streaming(builder: "DatasetBuilder"): # this extends the open and os.path.join functions for data streaming extend_module_for_streaming(builder.__module__, use_auth_token=builder.use_auth_token) # if needed, we also have to extend additional internal imports (like wmt14 -> wmt_utils) - for imports in get_imports(inspect.getfile(builder.__class__)): - if imports[0] == "internal": - internal_import_name = imports[1] - # if import is from a parent's directory we should go to the level up to get the correct path to the module - if internal_import_name.startswith(".."): - internal_import_name = [internal_import_name.lstrip("."), imports[2]] - internal_import_path = builder.__module__.split(".")[:-2] - else: - internal_import_name = [internal_import_name] - internal_import_path = builder.__module__.split(".")[:-1] - internal_module_name = ".".join(internal_import_path + internal_import_name) - extend_module_for_streaming(internal_module_name, use_auth_token=builder.use_auth_token) + if not builder.__module__.startswith("datasets."): # check that it's not a packaged builder like csv + for imports in get_imports(inspect.getfile(builder.__class__)): + if imports[0] == "internal": + internal_import_name = imports[1] + internal_module_name = ".".join(builder.__module__.split(".")[:-1] + [internal_import_name]) + extend_module_for_streaming(internal_module_name, use_auth_token=builder.use_auth_token) + + # builders can inherit from other builders that might use streaming functionality + # (for example, ImageFolder and AudioFolder inherit from AutoFolder which implements examples generation) + # but these parents builders are not patched automatically as they are not instantiated, so we patch them here + from .builder import DatasetBuilder + + parent_builder_modules = [ + cls.__module__ + for cls in type(builder).__mro__ + if issubclass(cls, DatasetBuilder) + # check it's not a standard builder from datasets.builder and not the same module we've already patched + and cls.__module__ not in ["datasets.builder", builder.__module__] + ] + for module in parent_builder_modules: + extend_module_for_streaming(module, use_auth_token=builder.use_auth_token) diff --git a/src/datasets/utils/py_utils.py b/src/datasets/utils/py_utils.py index 0c27d924690..07436d016f3 100644 --- a/src/datasets/utils/py_utils.py +++ b/src/datasets/utils/py_utils.py @@ -551,35 +551,32 @@ def get_imports(file_path: str) -> Tuple[str, str, str, str]: # not be added as required dependencies continue - match = re.match(r"^import\s+(\.?)([^\s\.]+)([^#\r\n]*)(?:#\s+From:\s+)?([^\r\n]*)", line, flags=re.MULTILINE) + match = re.match(r"^import\s+(\.?)([^\s\.]+)[^#\r\n]*(?:#\s+From:\s+)?([^\r\n]*)", line, flags=re.MULTILINE) if match is None: match = re.match( - r"^from\s+(\.{0,2})([^\s\.]+)(?:[^\s]*)\s+import\s+([^#\r\n]*)(?:#\s+From:\s+)?([^\r\n]*)", + r"^from\s+(\.?)([^\s\.]+)(?:[^\s]*)\s+import\s+[^#\r\n]*(?:#\s+From:\s+)?([^\r\n]*)", line, flags=re.MULTILINE, ) if match is None: continue if match.group(1): - # The import starts with '.' or '..', we will download the relevant file + # The import starts with a '.', we will download the relevant file if any(imp[1] == match.group(2) for imp in imports): # We already have this import continue - if match.group(4): + if match.group(3): # The import has a comment with 'From:', we'll retrieve it from the given url - url_path = match.group(4) + url_path = match.group(3) url_path, sub_directory = _convert_github_url(url_path) imports.append(("external", match.group(2), url_path, sub_directory)) elif match.group(2): - # if import is from a parent's directory we should keep the name after "from" to get the correct module - if match.group(1).startswith(".."): - imports.append(("internal", f"..{match.group(2)}", match.group(3), None)) - else: - imports.append(("internal", match.group(2), match.group(2), None)) + # The import should be at the same place as the file + imports.append(("internal", match.group(2), match.group(2), None)) else: - if match.group(4): + if match.group(3): # The import has a comment with `From: git+https:...`, asks user to pip install from git. - url_path = match.group(4) + url_path = match.group(3) imports.append(("library", match.group(2), url_path, None)) else: imports.append(("library", match.group(2), match.group(2), None)) From 90dc043d78b5dad0e642765ad364807e98bf0604 Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Tue, 16 Aug 2022 18:31:25 +0200 Subject: [PATCH 44/60] rename autofolder -> folder_builder --- .../audiofolder/audiofolder.py | 6 +- .../__init__.py | 0 .../folder_builder/folder_builder.py | 407 ++++++++++++++++++ .../imagefolder/imagefolder.py | 6 +- src/datasets/streaming.py | 2 +- tests/packaged_modules/test_autofolder.py | 36 +- 6 files changed, 433 insertions(+), 24 deletions(-) rename src/datasets/packaged_modules/{autofolder => folder_builder}/__init__.py (100%) create mode 100644 src/datasets/packaged_modules/folder_builder/folder_builder.py diff --git a/src/datasets/packaged_modules/audiofolder/audiofolder.py b/src/datasets/packaged_modules/audiofolder/audiofolder.py index b9589672fea..19ff5f3046a 100644 --- a/src/datasets/packaged_modules/audiofolder/audiofolder.py +++ b/src/datasets/packaged_modules/audiofolder/audiofolder.py @@ -3,21 +3,21 @@ import datasets -from ..autofolder import autofolder +from ..folder_builder import folder_builder logger = datasets.utils.logging.get_logger(__name__) @dataclass -class AudioFolderConfig(autofolder.AutoFolderConfig): +class AudioFolderConfig(folder_builder.FolderBuilderConfig): """Builder Config for AudioFolder.""" drop_labels: bool = True # usually we don't need labels as classification is not the main audio task drop_metadata: bool = None -class AudioFolder(autofolder.AutoFolder): +class AudioFolder(folder_builder.FolderBuilder): BASE_FEATURE = datasets.Audio() BUILDER_CONFIG_CLASS = AudioFolderConfig EXTENSIONS: List[str] # definition at the bottom of the script diff --git a/src/datasets/packaged_modules/autofolder/__init__.py b/src/datasets/packaged_modules/folder_builder/__init__.py similarity index 100% rename from src/datasets/packaged_modules/autofolder/__init__.py rename to src/datasets/packaged_modules/folder_builder/__init__.py diff --git a/src/datasets/packaged_modules/folder_builder/folder_builder.py b/src/datasets/packaged_modules/folder_builder/folder_builder.py new file mode 100644 index 00000000000..6fdb215c553 --- /dev/null +++ b/src/datasets/packaged_modules/folder_builder/folder_builder.py @@ -0,0 +1,407 @@ +import abc +import collections +import itertools +import os +from dataclasses import dataclass +from typing import Any, List, Optional, Tuple + +import pyarrow.compute as pc +import pyarrow.json as paj + +import datasets + + +logger = datasets.utils.logging.get_logger(__name__) + + +if datasets.config.PYARROW_VERSION.major >= 7: + + def pa_table_to_pylist(table): + return table.to_pylist() + +else: + + def pa_table_to_pylist(table): + keys = table.column_names + values = table.to_pydict().values() + return [{k: v for k, v in zip(keys, row_values)} for row_values in zip(*values)] + + +def count_path_segments(path): + cnt = 0 + while True: + parts = os.path.split(path) + if parts[0] == path: + break + elif parts[1] == path: + break + else: + path = parts[0] + cnt += 1 + return cnt + + +@dataclass +class FolderBuilderConfig(datasets.BuilderConfig): + """BuilderConfig for AutoFolder.""" + + base_feature_name: str = "" + features: Optional[datasets.Features] = None + drop_labels: bool = None + drop_metadata: bool = None + + +class FolderBuilder(datasets.GeneratorBasedBuilder, abc.ABC): + """ + Base class for generic data loaders for vision and image data. + + + Abstract class attributes to be overridden by a child class: + BASE_FEATURE: feature object to decode data (i.e. datasets.Image(), datasets.Audio(), ...) + BUILDER_CONFIG_CLASS: builder config inherited from `folder_builder.AutoFolderConfig` + EXTENSIONS: list of allowed extensions (only files with these extensions and METADATA_FILENAME files + will be included in a dataset) + """ + + BASE_FEATURE: Any + BUILDER_CONFIG_CLASS: FolderBuilderConfig + EXTENSIONS: List[str] + + SKIP_CHECKSUM_COMPUTATION_BY_DEFAULT: bool = True + METADATA_FILENAME: str = "metadata.jsonl" + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + if not self.config.base_feature_name: + # automatically infer base_feature_name if it's not provided + if hasattr(self.BASE_FEATURE, "_type"): + self.config.base_feature_name = self.BASE_FEATURE._type.lower() + elif hasattr(self.BASE_FEATURE, "__name__"): + self.config.base_feature_name = self.BASE_FEATURE.__name__.lower() + else: + raise AttributeError( + """ + Builder config's `base_feature_name` is not provided and cannot be inferred form the `BASE_FEATURE`, + check the builder's `BASE_FEATURE` attribute. + """ + ) + + def _info(self): + return datasets.DatasetInfo(features=self.config.features) + + def _split_generators(self, dl_manager): + if not self.config.data_files: + raise ValueError(f"At least one data file must be specified, but got data_files={self.config.data_files}") + + # Do an early pass if: + # * `drop_labels` is None (default) or False, to infer the class labels + # * `drop_metadata` is None (default) or False, to find the metadata files + do_analyze = not self.config.drop_labels or not self.config.drop_metadata + labels = set() + metadata_files = collections.defaultdict(set) + + def analyze(files_or_archives, downloaded_files_or_dirs, split): + if len(downloaded_files_or_dirs) == 0: + return + # The files are separated from the archives at this point, so check the first sample + # to see if it's a file or a directory and iterate accordingly + if os.path.isfile(downloaded_files_or_dirs[0]): + original_files, downloaded_files = files_or_archives, downloaded_files_or_dirs + for original_file, downloaded_file in zip(original_files, downloaded_files): + original_file, downloaded_file = str(original_file), str(downloaded_file) + _, original_file_ext = os.path.splitext(original_file) + if original_file_ext.lower() in self.EXTENSIONS: + if not self.config.drop_labels: + labels.add(os.path.basename(os.path.dirname(original_file))) + elif os.path.basename(original_file) == self.METADATA_FILENAME: + metadata_files[split].add((original_file, downloaded_file)) + else: + original_file_name = os.path.basename(original_file) + logger.debug( + f"The file '{original_file_name}' was ignored: it is not an {self.config.base_feature_name}, and is not {self.METADATA_FILENAME} either." + ) + else: + archives, downloaded_dirs = files_or_archives, downloaded_files_or_dirs + for archive, downloaded_dir in zip(archives, downloaded_dirs): + archive, downloaded_dir = str(archive), str(downloaded_dir) + for downloaded_dir_file in dl_manager.iter_files(downloaded_dir): + _, downloaded_dir_file_ext = os.path.splitext(downloaded_dir_file) + if downloaded_dir_file_ext in self.EXTENSIONS: + if not self.config.drop_labels: + labels.add(os.path.basename(os.path.dirname(downloaded_dir_file))) + elif os.path.basename(downloaded_dir_file) == self.METADATA_FILENAME: + metadata_files[split].add((None, downloaded_dir_file)) + else: + archive_file_name = os.path.basename(archive) + original_file_name = os.path.basename(downloaded_dir_file) + logger.debug( + f"The file '{original_file_name}' from the archive '{archive_file_name}' was ignored: it is not an {self.config.base_feature_name}, and is not {self.METADATA_FILENAME} either." + ) + + data_files = self.config.data_files + splits = [] + for split_name, files in data_files.items(): + if isinstance(files, str): + files = [files] + files, archives = self._split_files_and_archives(files) + downloaded_files = dl_manager.download(files) + downloaded_dirs = dl_manager.download_and_extract(archives) + if do_analyze: # drop_metadata is None or False, drop_labels is None or False + logger.info(f"Searching for labels and/or metadata files in {split_name} data files...") + analyze(files, downloaded_files, split_name) + analyze(archives, downloaded_dirs, split_name) + + if metadata_files: + # add metadata if `metadata_files` are found and `drop_metadata` is None (default) or False + add_metadata = not (self.config.drop_metadata is True) + # if `metadata_files` are found, add labels only if + # `drop_labels` is set up to False explicitly (not-default behavior) + add_labels = self.config.drop_labels is False + else: + # if `metadata_files` are not found, don't add metadata + add_metadata = False + # if `metadata_files` are not found but `drop_labels` is None (default) or False, add them + add_labels = not (self.config.drop_labels is True) + + if add_labels: + logger.info("Adding the labels inferred from data directories to the dataset's features...") + if add_metadata: + logger.info("Adding metadata to the dataset...") + else: + add_labels, add_metadata, metadata_files = False, False, {} + + splits.append( + datasets.SplitGenerator( + name=split_name, + gen_kwargs={ + "files": [(file, downloaded_file) for file, downloaded_file in zip(files, downloaded_files)] + + [(None, dl_manager.iter_files(downloaded_dir)) for downloaded_dir in downloaded_dirs], + "metadata_files": metadata_files, + "split_name": split_name, + "add_labels": add_labels, + "add_metadata": add_metadata, + }, + ) + ) + + if add_metadata: + # Verify that: + # * all metadata files have the same set of features + # * the `file_name` key is one of the metadata keys and is of type string + features_per_metadata_file: List[Tuple[str, datasets.Features]] = [] + for _, downloaded_metadata_file in itertools.chain.from_iterable(metadata_files.values()): + with open(downloaded_metadata_file, "rb") as f: + pa_metadata_table = paj.read_json(f) + features_per_metadata_file.append( + (downloaded_metadata_file, datasets.Features.from_arrow_schema(pa_metadata_table.schema)) + ) + for downloaded_metadata_file, metadata_features in features_per_metadata_file: + if metadata_features != features_per_metadata_file[0][1]: + raise ValueError( + f"Metadata files {downloaded_metadata_file} and {features_per_metadata_file[0][0]} have different features: {features_per_metadata_file[0]} != {metadata_features}" + ) + metadata_features = features_per_metadata_file[0][1] + if "file_name" not in metadata_features: + raise ValueError("`file_name` must be present as dictionary key in metadata files") + if metadata_features["file_name"] != datasets.Value("string"): + raise ValueError("`file_name` key must be a string") + del metadata_features["file_name"] + else: + metadata_features = None + + # Normally, we would do this in _info, but we need to know the labels and/or metadata + # before building the features + if self.config.features is None: + if add_labels: + self.info.features = datasets.Features( + { + self.config.base_feature_name: self.BASE_FEATURE, + "label": datasets.ClassLabel(names=sorted(labels)), + } + ) + else: + self.info.features = datasets.Features({self.config.base_feature_name: self.BASE_FEATURE}) + + if add_metadata: + # Warn if there are duplicated keys in metadata compared to the existing features + # (`base_feature_name`, optionally `label_column`) + duplicated_keys = set(self.info.features) & set(metadata_features) + if duplicated_keys: + logger.warning( + f"Ignoring metadata columns {list(duplicated_keys)} as they are already present in " + f"the features dictionary." + ) + # skip metadata duplicated keys + self.info.features.update( + { + feature: metadata_features[feature] + for feature in metadata_features + if feature not in duplicated_keys + } + ) + + return splits + + def _split_files_and_archives(self, data_files): + files, archives = [], [] + for data_file in data_files: + _, data_file_ext = os.path.splitext(data_file) + if data_file_ext.lower() in self.EXTENSIONS: + files.append(data_file) + elif os.path.basename(data_file) == self.METADATA_FILENAME: + files.append(data_file) + else: + archives.append(data_file) + return files, archives + + def _generate_examples(self, files, metadata_files, split_name, add_metadata, add_labels): + split_metadata_files = metadata_files.get(split_name, []) + sample_empty_metadata = ( + {k: None for k in self.info.features if k != self.config.base_feature_name} if self.info.features else {} + ) + last_checked_dir = None + metadata_dir = None + metadata_dict = None + downloaded_metadata_file = None + + file_idx = 0 + for original_file, downloaded_file_or_dir in files: + if original_file is not None: + _, original_file_ext = os.path.splitext(original_file) + if original_file_ext.lower() in self.EXTENSIONS: + if add_metadata: + # If the file is a file of a needed type, and we've just entered a new directory, + # find the nereast metadata file (by counting path segments) for the directory + current_dir = os.path.dirname(original_file) + if last_checked_dir is None or last_checked_dir != current_dir: + last_checked_dir = current_dir + metadata_file_candidates = [ + ( + os.path.relpath(original_file, os.path.dirname(metadata_file_candidate)), + metadata_file_candidate, + downloaded_metadata_file, + ) + for metadata_file_candidate, downloaded_metadata_file in split_metadata_files + if metadata_file_candidate + is not None # ignore metadata_files that are inside archives + and not os.path.relpath( + original_file, os.path.dirname(metadata_file_candidate) + ).startswith("..") + ] + if metadata_file_candidates: + _, metadata_file, downloaded_metadata_file = min( + metadata_file_candidates, key=lambda x: count_path_segments(x[0]) + ) + with open(downloaded_metadata_file, "rb") as f: + pa_metadata_table = paj.read_json(f) + pa_file_name_array = pa_metadata_table["file_name"] + pa_file_name_array = pc.replace_substring( + pa_file_name_array, pattern="\\", replacement="/" + ) + pa_metadata_table = pa_metadata_table.drop(["file_name"]) + metadata_dir = os.path.dirname(metadata_file) + metadata_dict = { + file_name: sample_metadata + for file_name, sample_metadata in zip( + pa_file_name_array.to_pylist(), pa_table_to_pylist(pa_metadata_table) + ) + } + else: + raise ValueError( + f"One or several metadata.jsonl were found, but not in the same directory or in a parent directory of {downloaded_file_or_dir}." + ) + if metadata_dir is not None and downloaded_metadata_file is not None: + file_relpath = os.path.relpath(original_file, metadata_dir) + file_relpath = file_relpath.replace("\\", "/") + if file_relpath not in metadata_dict: + raise ValueError( + f"{self.config.base_feature_name} at {file_relpath} doesn't have metadata in {downloaded_metadata_file}." + ) + sample_metadata = metadata_dict[file_relpath] + else: + raise ValueError( + f"One or several metadata.jsonl were found, but not in the same directory or in a parent directory of {downloaded_file_or_dir}." + ) + else: + sample_metadata = {} + if add_labels: + sample_label = {"label": os.path.basename(os.path.dirname(original_file))} + else: + sample_label = {} + yield file_idx, { + **sample_empty_metadata, + self.config.base_feature_name: downloaded_file_or_dir, + **sample_metadata, + **sample_label, + } + file_idx += 1 + else: + for downloaded_dir_file in downloaded_file_or_dir: + _, downloaded_dir_file_ext = os.path.splitext(downloaded_dir_file) + if downloaded_dir_file_ext.lower() in self.EXTENSIONS: + if add_metadata: + current_dir = os.path.dirname(downloaded_dir_file) + if last_checked_dir is None or last_checked_dir != current_dir: + last_checked_dir = current_dir + metadata_file_candidates = [ + ( + os.path.relpath( + downloaded_dir_file, os.path.dirname(downloaded_metadata_file) + ), + metadata_file_candidate, + downloaded_metadata_file, + ) + for metadata_file_candidate, downloaded_metadata_file in split_metadata_files + if metadata_file_candidate + is None # ignore metadata_files that are not inside archives + and not os.path.relpath( + downloaded_dir_file, os.path.dirname(downloaded_metadata_file) + ).startswith("..") + ] + if metadata_file_candidates: + _, metadata_file, downloaded_metadata_file = min( + metadata_file_candidates, key=lambda x: count_path_segments(x[0]) + ) + with open(downloaded_metadata_file, "rb") as f: + pa_metadata_table = paj.read_json(f) + pa_file_name_array = pa_metadata_table["file_name"] + pa_file_name_array = pc.replace_substring( + pa_file_name_array, pattern="\\", replacement="/" + ) + pa_metadata_table = pa_metadata_table.drop(["file_name"]) + metadata_dir = os.path.dirname(downloaded_metadata_file) + metadata_dict = { + file_name: sample_metadata + for file_name, sample_metadata in zip( + pa_file_name_array.to_pylist(), pa_table_to_pylist(pa_metadata_table) + ) + } + else: + raise ValueError( + f"One or several metadata.jsonl were found, but not in the same directory or in a parent directory of {downloaded_dir_file}." + ) + if metadata_dir is not None and downloaded_metadata_file is not None: + downloaded_dir_file_relpath = os.path.relpath(downloaded_dir_file, metadata_dir) + downloaded_dir_file_relpath = downloaded_dir_file_relpath.replace("\\", "/") + if downloaded_dir_file_relpath not in metadata_dict: + raise ValueError( + f"{self.config.base_feature_name} at {downloaded_dir_file_relpath} doesn't have metadata in {downloaded_metadata_file}." + ) + sample_metadata = metadata_dict[downloaded_dir_file_relpath] + else: + raise ValueError( + f"One or several metadata.jsonl were found, but not in the same directory or in a parent directory of {downloaded_dir_file}." + ) + else: + sample_metadata = {} + if add_labels: + sample_label = {"label": os.path.basename(os.path.dirname(downloaded_dir_file))} + else: + sample_label = {} + yield file_idx, { + **sample_empty_metadata, + self.config.base_feature_name: downloaded_dir_file, + **sample_metadata, + **sample_label, + } + file_idx += 1 diff --git a/src/datasets/packaged_modules/imagefolder/imagefolder.py b/src/datasets/packaged_modules/imagefolder/imagefolder.py index c30a409c43d..43bede64a41 100644 --- a/src/datasets/packaged_modules/imagefolder/imagefolder.py +++ b/src/datasets/packaged_modules/imagefolder/imagefolder.py @@ -3,21 +3,21 @@ import datasets -from ..autofolder import autofolder +from ..folder_builder import folder_builder logger = datasets.utils.logging.get_logger(__name__) @dataclass -class ImageFolderConfig(autofolder.AutoFolderConfig): +class ImageFolderConfig(folder_builder.FolderBuilderConfig): """BuilderConfig for ImageFolder.""" drop_labels: bool = None drop_metadata: bool = None -class ImageFolder(autofolder.AutoFolder): +class ImageFolder(folder_builder.FolderBuilder): BASE_FEATURE = datasets.Image() BUILDER_CONFIG_CLASS = ImageFolderConfig EXTENSIONS: List[str] # definition at the bottom of the script diff --git a/src/datasets/streaming.py b/src/datasets/streaming.py index f6efc7cfdb9..fdec4ae9869 100644 --- a/src/datasets/streaming.py +++ b/src/datasets/streaming.py @@ -113,7 +113,7 @@ def extend_dataset_builder_for_streaming(builder: "DatasetBuilder"): extend_module_for_streaming(internal_module_name, use_auth_token=builder.use_auth_token) # builders can inherit from other builders that might use streaming functionality - # (for example, ImageFolder and AudioFolder inherit from AutoFolder which implements examples generation) + # (for example, ImageFolder and AudioFolder inherit from FolderBuilder which implements examples generation) # but these parents builders are not patched automatically as they are not instantiated, so we patch them here from .builder import DatasetBuilder diff --git a/tests/packaged_modules/test_autofolder.py b/tests/packaged_modules/test_autofolder.py index cf5fdcac833..8d83ac79e2a 100644 --- a/tests/packaged_modules/test_autofolder.py +++ b/tests/packaged_modules/test_autofolder.py @@ -7,12 +7,12 @@ from datasets import ClassLabel, DownloadManager, Features, Value from datasets.data_files import DataFilesDict, get_data_patterns_locally from datasets.download.streaming_download_manager import StreamingDownloadManager -from datasets.packaged_modules.autofolder.autofolder import AutoFolder, AutoFolderConfig +from datasets.packaged_modules.folder_builder.folder_builder import FolderBuilder, FolderBuilderConfig -class DummyAutoFolder(AutoFolder): +class DummyFolderBuilder(FolderBuilder): BASE_FEATURE = None - BUILDER_CONFIG_CLASS = AutoFolderConfig + BUILDER_CONFIG_CLASS = FolderBuilderConfig EXTENSIONS = [".txt"] def __init__(self, *args, **kwargs): @@ -35,7 +35,7 @@ def data_files_with_labels_no_metadata(tmp_path, auto_text_file): data_dir.mkdir(parents=True, exist_ok=True) subdir_class_0 = data_dir / "class0" subdir_class_0.mkdir(parents=True, exist_ok=True) - # data dirs can be nested but autofolder should care only about the last part of the path: + # data dirs can be nested but FolderBuilder should care only about the last part of the path: subdir_class_1 = data_dir / "subdir" / "class1" subdir_class_1.mkdir(parents=True, exist_ok=True) @@ -219,7 +219,9 @@ def data_files_with_zip_archives(tmp_path, auto_text_file): def test_inferring_labels_from_data_dirs(data_files_with_labels_no_metadata, cache_dir): - autofolder = DummyAutoFolder(data_files=data_files_with_labels_no_metadata, cache_dir=cache_dir, drop_labels=False) + autofolder = DummyFolderBuilder( + data_files=data_files_with_labels_no_metadata, cache_dir=cache_dir, drop_labels=False + ) gen_kwargs = autofolder._split_generators(StreamingDownloadManager())[0].gen_kwargs assert autofolder.info.features == Features({"auto": None, "label": ClassLabel(names=["class0", "class1"])}) generator = autofolder._generate_examples(**gen_kwargs) @@ -230,7 +232,7 @@ def test_default_autofolder_not_usable(data_files_with_labels_no_metadata, cache # builder would try to access non-existing attributes of a default `BuilderConfig` class # as a custom one is not provided with pytest.raises(AttributeError): - _ = AutoFolder( + _ = FolderBuilder( data_files=data_files_with_labels_no_metadata, cache_dir=cache_dir, ) @@ -238,9 +240,9 @@ def test_default_autofolder_not_usable(data_files_with_labels_no_metadata, cache # test that AutoFolder is extended for streaming when it's child class is instantiated: # see line 115 in src/datasets/streaming.py -def test_streaming(): - _ = DummyAutoFolder() - module = importlib.import_module(AutoFolder.__module__) +def test_streaming_patched(): + _ = DummyFolderBuilder() + module = importlib.import_module(FolderBuilder.__module__) assert hasattr(module, "_patched_for_streaming") assert module._patched_for_streaming @@ -251,7 +253,7 @@ def test_prepare_generate_examples_duplicated_label_key( files_with_labels_and_duplicated_label_key_in_metadata, drop_metadata, drop_labels, cache_dir, caplog ): class0_file, class1_file, metadata_file = files_with_labels_and_duplicated_label_key_in_metadata - autofolder = DummyAutoFolder( + autofolder = DummyFolderBuilder( data_files=[class0_file, class1_file, metadata_file], cache_dir=cache_dir, drop_metadata=drop_metadata, @@ -280,7 +282,7 @@ def test_prepare_generate_examples_duplicated_label_key( @pytest.mark.parametrize("drop_metadata", [None, True, False]) @pytest.mark.parametrize("drop_labels", [None, True, False]) def test_prepare_generate_examples_drop_labels(auto_text_file, drop_metadata, drop_labels): - autofolder = DummyAutoFolder( + autofolder = DummyFolderBuilder( data_files={"train": [auto_text_file]}, drop_metadata=drop_metadata, drop_labels=drop_labels, @@ -305,7 +307,7 @@ def test_prepare_generate_examples_drop_labels(auto_text_file, drop_metadata, dr @pytest.mark.parametrize("drop_labels", [None, True, False]) def test_prepare_generate_examples_drop_metadata(file_with_metadata, drop_metadata, drop_labels): file, metadata_file = file_with_metadata - autofolder = DummyAutoFolder( + autofolder = DummyFolderBuilder( data_files=[file, metadata_file], drop_metadata=drop_metadata, drop_labels=drop_labels, @@ -338,7 +340,7 @@ def test_prepare_generate_examples_with_metadata_that_misses_one_sample( features = Features({"auto": None, "additional_feature": Value("string")}) else: features = Features({"auto": None}) - autofolder = DummyAutoFolder( + autofolder = DummyFolderBuilder( data_files=[file, file2, metadata_file], drop_metadata=drop_metadata, features=features, @@ -360,7 +362,7 @@ def test_data_files_with_metadata_and_splits( streaming, cache_dir, n_splits, data_files_with_one_split_and_metadata, data_files_with_two_splits_and_metadata ): data_files = data_files_with_one_split_and_metadata if n_splits == 1 else data_files_with_two_splits_and_metadata - autofolder = DummyAutoFolder( + autofolder = DummyFolderBuilder( data_files=data_files, cache_dir=cache_dir, ) @@ -378,7 +380,7 @@ def test_data_files_with_metadata_and_splits( @pytest.mark.parametrize("streaming", [False, True]) def test_data_files_with_metadata_and_archives(streaming, cache_dir, data_files_with_zip_archives): - autofolder = DummyAutoFolder(data_files=data_files_with_zip_archives, cache_dir=cache_dir) + autofolder = DummyFolderBuilder(data_files=data_files_with_zip_archives, cache_dir=cache_dir) download_manager = StreamingDownloadManager() if streaming else DownloadManager() generated_splits = autofolder._split_generators(download_manager) for (split, files), generated_split in zip(data_files_with_zip_archives.items(), generated_splits): @@ -406,7 +408,7 @@ def test_data_files_with_wrong_metadata_file_name(cache_dir, tmp_path, auto_text f.write(metadata) data_files_with_bad_metadata = DataFilesDict.from_local_or_remote(get_data_patterns_locally(data_dir), data_dir) - autofolder = DummyAutoFolder(data_files=data_files_with_bad_metadata, cache_dir=cache_dir) + autofolder = DummyFolderBuilder(data_files=data_files_with_bad_metadata, cache_dir=cache_dir) gen_kwargs = autofolder._split_generators(StreamingDownloadManager())[0].gen_kwargs generator = autofolder._generate_examples(**gen_kwargs) assert all("additional_feature" not in example for _, example in generator) @@ -426,7 +428,7 @@ def test_data_files_with_wrong_file_name_column_in_metadata_file(cache_dir, tmp_ f.write(metadata) data_files_with_bad_metadata = DataFilesDict.from_local_or_remote(get_data_patterns_locally(data_dir), data_dir) - autofolder = DummyAutoFolder(data_files=data_files_with_bad_metadata, cache_dir=cache_dir) + autofolder = DummyFolderBuilder(data_files=data_files_with_bad_metadata, cache_dir=cache_dir) with pytest.raises(ValueError) as exc_info: _ = autofolder._split_generators(StreamingDownloadManager())[0].gen_kwargs assert "`file_name` must be present" in str(exc_info.value) From 292a8c5c1c56402094722cc995258b0d3343dd18 Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Tue, 16 Aug 2022 18:35:20 +0200 Subject: [PATCH 45/60] remove autofolder dir --- .../packaged_modules/autofolder/autofolder.py | 407 ------------------ 1 file changed, 407 deletions(-) delete mode 100644 src/datasets/packaged_modules/autofolder/autofolder.py diff --git a/src/datasets/packaged_modules/autofolder/autofolder.py b/src/datasets/packaged_modules/autofolder/autofolder.py deleted file mode 100644 index b7e62c0ace0..00000000000 --- a/src/datasets/packaged_modules/autofolder/autofolder.py +++ /dev/null @@ -1,407 +0,0 @@ -import abc -import collections -import itertools -import os -from dataclasses import dataclass -from typing import Any, List, Optional, Tuple - -import pyarrow.compute as pc -import pyarrow.json as paj - -import datasets - - -logger = datasets.utils.logging.get_logger(__name__) - - -if datasets.config.PYARROW_VERSION.major >= 7: - - def pa_table_to_pylist(table): - return table.to_pylist() - -else: - - def pa_table_to_pylist(table): - keys = table.column_names - values = table.to_pydict().values() - return [{k: v for k, v in zip(keys, row_values)} for row_values in zip(*values)] - - -def count_path_segments(path): - cnt = 0 - while True: - parts = os.path.split(path) - if parts[0] == path: - break - elif parts[1] == path: - break - else: - path = parts[0] - cnt += 1 - return cnt - - -@dataclass -class AutoFolderConfig(datasets.BuilderConfig): - """BuilderConfig for AutoFolder.""" - - base_feature_name: str = "" - features: Optional[datasets.Features] = None - drop_labels: bool = None - drop_metadata: bool = None - - -class AutoFolder(datasets.GeneratorBasedBuilder, abc.ABC): - """ - Base class for generic data loaders for vision and image data. - - - Abstract class attributes to be overridden by a child class: - BASE_FEATURE: feature to decode data (i.e. datasets.Image(), datasets.Audio(), ...) - BUILDER_CONFIG_CLASS: builder config inherited from `autofolder.AutoFolderConfig` - EXTENSIONS: list of allowed extensions (only files with these extensions and METADATA_FILENAME files - will be included in a dataset) - """ - - BASE_FEATURE: Any - BUILDER_CONFIG_CLASS: AutoFolderConfig - EXTENSIONS: List[str] - - SKIP_CHECKSUM_COMPUTATION_BY_DEFAULT: bool = True - METADATA_FILENAME: str = "metadata.jsonl" - - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - if not self.config.base_feature_name: - # automatically infer base_feature_name if it's not provided - if hasattr(self.BASE_FEATURE, "_type"): - self.config.base_feature_name = self.BASE_FEATURE._type.lower() - elif hasattr(self.BASE_FEATURE, "__name__"): - self.config.base_feature_name = self.BASE_FEATURE.__name__.lower() - else: - raise AttributeError( - """ - Builder config's `base_feature_name` is not provided and cannot be inferred form the `BASE_FEATURE`, - check the builder's `BASE_FEATURE` attribute. - """ - ) - - def _info(self): - return datasets.DatasetInfo(features=self.config.features) - - def _split_generators(self, dl_manager): - if not self.config.data_files: - raise ValueError(f"At least one data file must be specified, but got data_files={self.config.data_files}") - - # Do an early pass if: - # * `drop_labels` is None (default) or False, to infer the class labels - # * `drop_metadata` is None (default) or False, to find the metadata files - do_analyze = not self.config.drop_labels or not self.config.drop_metadata - labels = set() - metadata_files = collections.defaultdict(set) - - def analyze(files_or_archives, downloaded_files_or_dirs, split): - if len(downloaded_files_or_dirs) == 0: - return - # The files are separated from the archives at this point, so check the first sample - # to see if it's a file or a directory and iterate accordingly - if os.path.isfile(downloaded_files_or_dirs[0]): - original_files, downloaded_files = files_or_archives, downloaded_files_or_dirs - for original_file, downloaded_file in zip(original_files, downloaded_files): - original_file, downloaded_file = str(original_file), str(downloaded_file) - _, original_file_ext = os.path.splitext(original_file) - if original_file_ext.lower() in self.EXTENSIONS: - if not self.config.drop_labels: - labels.add(os.path.basename(os.path.dirname(original_file))) - elif os.path.basename(original_file) == self.METADATA_FILENAME: - metadata_files[split].add((original_file, downloaded_file)) - else: - original_file_name = os.path.basename(original_file) - logger.debug( - f"The file '{original_file_name}' was ignored: it is not an {self.config.base_feature_name}, and is not {self.METADATA_FILENAME} either." - ) - else: - archives, downloaded_dirs = files_or_archives, downloaded_files_or_dirs - for archive, downloaded_dir in zip(archives, downloaded_dirs): - archive, downloaded_dir = str(archive), str(downloaded_dir) - for downloaded_dir_file in dl_manager.iter_files(downloaded_dir): - _, downloaded_dir_file_ext = os.path.splitext(downloaded_dir_file) - if downloaded_dir_file_ext in self.EXTENSIONS: - if not self.config.drop_labels: - labels.add(os.path.basename(os.path.dirname(downloaded_dir_file))) - elif os.path.basename(downloaded_dir_file) == self.METADATA_FILENAME: - metadata_files[split].add((None, downloaded_dir_file)) - else: - archive_file_name = os.path.basename(archive) - original_file_name = os.path.basename(downloaded_dir_file) - logger.debug( - f"The file '{original_file_name}' from the archive '{archive_file_name}' was ignored: it is not an {self.config.base_feature_name}, and is not {self.METADATA_FILENAME} either." - ) - - data_files = self.config.data_files - splits = [] - for split_name, files in data_files.items(): - if isinstance(files, str): - files = [files] - files, archives = self._split_files_and_archives(files) - downloaded_files = dl_manager.download(files) - downloaded_dirs = dl_manager.download_and_extract(archives) - if do_analyze: # drop_metadata is None or False, drop_labels is None or False - logger.info(f"Searching for labels and/or metadata files in {split_name} data files...") - analyze(files, downloaded_files, split_name) - analyze(archives, downloaded_dirs, split_name) - - if metadata_files: - # add metadata if `metadata_files` are found and `drop_metadata` is None (default) or False - add_metadata = not (self.config.drop_metadata is True) - # if `metadata_files` are found, add labels only if - # `drop_labels` is set up to False explicitly (not-default behavior) - add_labels = self.config.drop_labels is False - else: - # if `metadata_files` are not found, don't add metadata - add_metadata = False - # if `metadata_files` are not found but `drop_labels` is None (default) or False, add them - add_labels = not (self.config.drop_labels is True) - - if add_labels: - logger.info("Adding the labels inferred from data directories to the dataset's features...") - if add_metadata: - logger.info("Adding metadata to the dataset...") - else: - add_labels, add_metadata, metadata_files = False, False, {} - - splits.append( - datasets.SplitGenerator( - name=split_name, - gen_kwargs={ - "files": [(file, downloaded_file) for file, downloaded_file in zip(files, downloaded_files)] - + [(None, dl_manager.iter_files(downloaded_dir)) for downloaded_dir in downloaded_dirs], - "metadata_files": metadata_files, - "split_name": split_name, - "add_labels": add_labels, - "add_metadata": add_metadata, - }, - ) - ) - - if add_metadata: - # Verify that: - # * all metadata files have the same set of features - # * the `file_name` key is one of the metadata keys and is of type string - features_per_metadata_file: List[Tuple[str, datasets.Features]] = [] - for _, downloaded_metadata_file in itertools.chain.from_iterable(metadata_files.values()): - with open(downloaded_metadata_file, "rb") as f: - pa_metadata_table = paj.read_json(f) - features_per_metadata_file.append( - (downloaded_metadata_file, datasets.Features.from_arrow_schema(pa_metadata_table.schema)) - ) - for downloaded_metadata_file, metadata_features in features_per_metadata_file: - if metadata_features != features_per_metadata_file[0][1]: - raise ValueError( - f"Metadata files {downloaded_metadata_file} and {features_per_metadata_file[0][0]} have different features: {features_per_metadata_file[0]} != {metadata_features}" - ) - metadata_features = features_per_metadata_file[0][1] - if "file_name" not in metadata_features: - raise ValueError("`file_name` must be present as dictionary key in metadata files") - if metadata_features["file_name"] != datasets.Value("string"): - raise ValueError("`file_name` key must be a string") - del metadata_features["file_name"] - else: - metadata_features = None - - # Normally, we would do this in _info, but we need to know the labels and/or metadata - # before building the features - if self.config.features is None: - if add_labels: - self.info.features = datasets.Features( - { - self.config.base_feature_name: self.BASE_FEATURE, - "label": datasets.ClassLabel(names=sorted(labels)), - } - ) - else: - self.info.features = datasets.Features({self.config.base_feature_name: self.BASE_FEATURE}) - - if add_metadata: - # Warn if there are duplicated keys in metadata compared to the existing features - # (`base_feature_name`, optionally `label_column`) - duplicated_keys = set(self.info.features) & set(metadata_features) - if duplicated_keys: - logger.warning( - f"Ignoring metadata columns {list(duplicated_keys)} as they are already present in " - f"the features dictionary." - ) - # skip metadata duplicated keys - self.info.features.update( - { - feature: metadata_features[feature] - for feature in metadata_features - if feature not in duplicated_keys - } - ) - - return splits - - def _split_files_and_archives(self, data_files): - files, archives = [], [] - for data_file in data_files: - _, data_file_ext = os.path.splitext(data_file) - if data_file_ext.lower() in self.EXTENSIONS: - files.append(data_file) - elif os.path.basename(data_file) == self.METADATA_FILENAME: - files.append(data_file) - else: - archives.append(data_file) - return files, archives - - def _generate_examples(self, files, metadata_files, split_name, add_metadata, add_labels): - split_metadata_files = metadata_files.get(split_name, []) - sample_empty_metadata = ( - {k: None for k in self.info.features if k != self.config.base_feature_name} if self.info.features else {} - ) - last_checked_dir = None - metadata_dir = None - metadata_dict = None - downloaded_metadata_file = None - - file_idx = 0 - for original_file, downloaded_file_or_dir in files: - if original_file is not None: - _, original_file_ext = os.path.splitext(original_file) - if original_file_ext.lower() in self.EXTENSIONS: - if add_metadata: - # If the file is a file of a needed type, and we've just entered a new directory, - # find the nereast metadata file (by counting path segments) for the directory - current_dir = os.path.dirname(original_file) - if last_checked_dir is None or last_checked_dir != current_dir: - last_checked_dir = current_dir - metadata_file_candidates = [ - ( - os.path.relpath(original_file, os.path.dirname(metadata_file_candidate)), - metadata_file_candidate, - downloaded_metadata_file, - ) - for metadata_file_candidate, downloaded_metadata_file in split_metadata_files - if metadata_file_candidate - is not None # ignore metadata_files that are inside archives - and not os.path.relpath( - original_file, os.path.dirname(metadata_file_candidate) - ).startswith("..") - ] - if metadata_file_candidates: - _, metadata_file, downloaded_metadata_file = min( - metadata_file_candidates, key=lambda x: count_path_segments(x[0]) - ) - with open(downloaded_metadata_file, "rb") as f: - pa_metadata_table = paj.read_json(f) - pa_file_name_array = pa_metadata_table["file_name"] - pa_file_name_array = pc.replace_substring( - pa_file_name_array, pattern="\\", replacement="/" - ) - pa_metadata_table = pa_metadata_table.drop(["file_name"]) - metadata_dir = os.path.dirname(metadata_file) - metadata_dict = { - file_name: sample_metadata - for file_name, sample_metadata in zip( - pa_file_name_array.to_pylist(), pa_table_to_pylist(pa_metadata_table) - ) - } - else: - raise ValueError( - f"One or several metadata.jsonl were found, but not in the same directory or in a parent directory of {downloaded_file_or_dir}." - ) - if metadata_dir is not None and downloaded_metadata_file is not None: - file_relpath = os.path.relpath(original_file, metadata_dir) - file_relpath = file_relpath.replace("\\", "/") - if file_relpath not in metadata_dict: - raise ValueError( - f"{self.config.base_feature_name} at {file_relpath} doesn't have metadata in {downloaded_metadata_file}." - ) - sample_metadata = metadata_dict[file_relpath] - else: - raise ValueError( - f"One or several metadata.jsonl were found, but not in the same directory or in a parent directory of {downloaded_file_or_dir}." - ) - else: - sample_metadata = {} - if add_labels: - sample_label = {"label": os.path.basename(os.path.dirname(original_file))} - else: - sample_label = {} - yield file_idx, { - **sample_empty_metadata, - self.config.base_feature_name: downloaded_file_or_dir, - **sample_metadata, - **sample_label, - } - file_idx += 1 - else: - for downloaded_dir_file in downloaded_file_or_dir: - _, downloaded_dir_file_ext = os.path.splitext(downloaded_dir_file) - if downloaded_dir_file_ext.lower() in self.EXTENSIONS: - if add_metadata: - current_dir = os.path.dirname(downloaded_dir_file) - if last_checked_dir is None or last_checked_dir != current_dir: - last_checked_dir = current_dir - metadata_file_candidates = [ - ( - os.path.relpath( - downloaded_dir_file, os.path.dirname(downloaded_metadata_file) - ), - metadata_file_candidate, - downloaded_metadata_file, - ) - for metadata_file_candidate, downloaded_metadata_file in split_metadata_files - if metadata_file_candidate - is None # ignore metadata_files that are not inside archives - and not os.path.relpath( - downloaded_dir_file, os.path.dirname(downloaded_metadata_file) - ).startswith("..") - ] - if metadata_file_candidates: - _, metadata_file, downloaded_metadata_file = min( - metadata_file_candidates, key=lambda x: count_path_segments(x[0]) - ) - with open(downloaded_metadata_file, "rb") as f: - pa_metadata_table = paj.read_json(f) - pa_file_name_array = pa_metadata_table["file_name"] - pa_file_name_array = pc.replace_substring( - pa_file_name_array, pattern="\\", replacement="/" - ) - pa_metadata_table = pa_metadata_table.drop(["file_name"]) - metadata_dir = os.path.dirname(downloaded_metadata_file) - metadata_dict = { - file_name: sample_metadata - for file_name, sample_metadata in zip( - pa_file_name_array.to_pylist(), pa_table_to_pylist(pa_metadata_table) - ) - } - else: - raise ValueError( - f"One or several metadata.jsonl were found, but not in the same directory or in a parent directory of {downloaded_dir_file}." - ) - if metadata_dir is not None and downloaded_metadata_file is not None: - downloaded_dir_file_relpath = os.path.relpath(downloaded_dir_file, metadata_dir) - downloaded_dir_file_relpath = downloaded_dir_file_relpath.replace("\\", "/") - if downloaded_dir_file_relpath not in metadata_dict: - raise ValueError( - f"{self.config.base_feature_name} at {downloaded_dir_file_relpath} doesn't have metadata in {downloaded_metadata_file}." - ) - sample_metadata = metadata_dict[downloaded_dir_file_relpath] - else: - raise ValueError( - f"One or several metadata.jsonl were found, but not in the same directory or in a parent directory of {downloaded_dir_file}." - ) - else: - sample_metadata = {} - if add_labels: - sample_label = {"label": os.path.basename(os.path.dirname(downloaded_dir_file))} - else: - sample_label = {} - yield file_idx, { - **sample_empty_metadata, - self.config.base_feature_name: downloaded_dir_file, - **sample_metadata, - **sample_label, - } - file_idx += 1 From 3e321819ddf2a442fd02d5d3fb233203e952805c Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Tue, 16 Aug 2022 19:59:22 +0200 Subject: [PATCH 46/60] remove axtending for streaming from tests, it should work without manual extending --- tests/packaged_modules/test_audiofolder.py | 3 --- tests/packaged_modules/test_imagefolder.py | 3 --- 2 files changed, 6 deletions(-) diff --git a/tests/packaged_modules/test_audiofolder.py b/tests/packaged_modules/test_audiofolder.py index 7764553131a..25a0f8141fe 100644 --- a/tests/packaged_modules/test_audiofolder.py +++ b/tests/packaged_modules/test_audiofolder.py @@ -10,7 +10,6 @@ from datasets.data_files import DataFilesDict, get_data_patterns_locally from datasets.download.streaming_download_manager import StreamingDownloadManager from datasets.packaged_modules.audiofolder.audiofolder import AudioFolder -from datasets.streaming import extend_module_for_streaming from ..utils import require_sndfile @@ -380,8 +379,6 @@ def test_data_files_with_metadata_and_splits( @require_sndfile @pytest.mark.parametrize("streaming", [False, True]) def test_data_files_with_metadata_and_archives(streaming, cache_dir, data_files_with_zip_archives): - if streaming: - extend_module_for_streaming(AudioFolder.__module__) audiofolder = AudioFolder(data_files=data_files_with_zip_archives, cache_dir=cache_dir) audiofolder.download_and_prepare() datasets = audiofolder.as_streaming_dataset() if streaming else audiofolder.as_dataset() diff --git a/tests/packaged_modules/test_imagefolder.py b/tests/packaged_modules/test_imagefolder.py index 13fc1b9feac..1c1c4b6752a 100644 --- a/tests/packaged_modules/test_imagefolder.py +++ b/tests/packaged_modules/test_imagefolder.py @@ -8,7 +8,6 @@ from datasets.data_files import DataFilesDict, get_data_patterns_locally from datasets.download.streaming_download_manager import StreamingDownloadManager from datasets.packaged_modules.imagefolder.imagefolder import ImageFolder -from datasets.streaming import extend_module_for_streaming from ..utils import require_pil @@ -376,8 +375,6 @@ def test_data_files_with_metadata_and_splits( @require_pil @pytest.mark.parametrize("streaming", [False, True]) def test_data_files_with_metadata_and_archives(streaming, cache_dir, data_files_with_zip_archives): - if streaming: - extend_module_for_streaming(ImageFolder.__module__) imagefolder = ImageFolder(data_files=data_files_with_zip_archives, cache_dir=cache_dir) imagefolder.download_and_prepare() datasets = imagefolder.as_streaming_dataset() if streaming else imagefolder.as_dataset() From fe80766ff7e58ff63d0a953c43536584a3b0ae78 Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Tue, 16 Aug 2022 20:26:14 +0200 Subject: [PATCH 47/60] make base column name an abstract attr of FolderBuilder instead of config's parameter --- .../audiofolder/audiofolder.py | 1 + .../folder_builder/folder_builder.py | 39 ++++++------------- .../imagefolder/imagefolder.py | 1 + tests/packaged_modules/test_autofolder.py | 26 ++++++------- 4 files changed, 26 insertions(+), 41 deletions(-) diff --git a/src/datasets/packaged_modules/audiofolder/audiofolder.py b/src/datasets/packaged_modules/audiofolder/audiofolder.py index 19ff5f3046a..edff5d9b3d4 100644 --- a/src/datasets/packaged_modules/audiofolder/audiofolder.py +++ b/src/datasets/packaged_modules/audiofolder/audiofolder.py @@ -19,6 +19,7 @@ class AudioFolderConfig(folder_builder.FolderBuilderConfig): class AudioFolder(folder_builder.FolderBuilder): BASE_FEATURE = datasets.Audio() + BASE_COLUMN_NAME = "audio" BUILDER_CONFIG_CLASS = AudioFolderConfig EXTENSIONS: List[str] # definition at the bottom of the script diff --git a/src/datasets/packaged_modules/folder_builder/folder_builder.py b/src/datasets/packaged_modules/folder_builder/folder_builder.py index 6fdb215c553..59965379a54 100644 --- a/src/datasets/packaged_modules/folder_builder/folder_builder.py +++ b/src/datasets/packaged_modules/folder_builder/folder_builder.py @@ -45,7 +45,6 @@ def count_path_segments(path): class FolderBuilderConfig(datasets.BuilderConfig): """BuilderConfig for AutoFolder.""" - base_feature_name: str = "" features: Optional[datasets.Features] = None drop_labels: bool = None drop_metadata: bool = None @@ -58,34 +57,20 @@ class FolderBuilder(datasets.GeneratorBasedBuilder, abc.ABC): Abstract class attributes to be overridden by a child class: BASE_FEATURE: feature object to decode data (i.e. datasets.Image(), datasets.Audio(), ...) + BASE_COLUMN_NAME: string key name of a base feature (i.e. "image", "audio", ...) BUILDER_CONFIG_CLASS: builder config inherited from `folder_builder.AutoFolderConfig` EXTENSIONS: list of allowed extensions (only files with these extensions and METADATA_FILENAME files will be included in a dataset) """ BASE_FEATURE: Any + BASE_COLUMN_NAME: str BUILDER_CONFIG_CLASS: FolderBuilderConfig EXTENSIONS: List[str] SKIP_CHECKSUM_COMPUTATION_BY_DEFAULT: bool = True METADATA_FILENAME: str = "metadata.jsonl" - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - if not self.config.base_feature_name: - # automatically infer base_feature_name if it's not provided - if hasattr(self.BASE_FEATURE, "_type"): - self.config.base_feature_name = self.BASE_FEATURE._type.lower() - elif hasattr(self.BASE_FEATURE, "__name__"): - self.config.base_feature_name = self.BASE_FEATURE.__name__.lower() - else: - raise AttributeError( - """ - Builder config's `base_feature_name` is not provided and cannot be inferred form the `BASE_FEATURE`, - check the builder's `BASE_FEATURE` attribute. - """ - ) - def _info(self): return datasets.DatasetInfo(features=self.config.features) @@ -118,7 +103,7 @@ def analyze(files_or_archives, downloaded_files_or_dirs, split): else: original_file_name = os.path.basename(original_file) logger.debug( - f"The file '{original_file_name}' was ignored: it is not an {self.config.base_feature_name}, and is not {self.METADATA_FILENAME} either." + f"The file '{original_file_name}' was ignored: it is not an {self.BASE_COLUMN_NAME}, and is not {self.METADATA_FILENAME} either." ) else: archives, downloaded_dirs = files_or_archives, downloaded_files_or_dirs @@ -135,7 +120,7 @@ def analyze(files_or_archives, downloaded_files_or_dirs, split): archive_file_name = os.path.basename(archive) original_file_name = os.path.basename(downloaded_dir_file) logger.debug( - f"The file '{original_file_name}' from the archive '{archive_file_name}' was ignored: it is not an {self.config.base_feature_name}, and is not {self.METADATA_FILENAME} either." + f"The file '{original_file_name}' from the archive '{archive_file_name}' was ignored: it is not an {self.BASE_COLUMN_NAME}, and is not {self.METADATA_FILENAME} either." ) data_files = self.config.data_files @@ -215,16 +200,16 @@ def analyze(files_or_archives, downloaded_files_or_dirs, split): if add_labels: self.info.features = datasets.Features( { - self.config.base_feature_name: self.BASE_FEATURE, + self.BASE_COLUMN_NAME: self.BASE_FEATURE, "label": datasets.ClassLabel(names=sorted(labels)), } ) else: - self.info.features = datasets.Features({self.config.base_feature_name: self.BASE_FEATURE}) + self.info.features = datasets.Features({self.BASE_COLUMN_NAME: self.BASE_FEATURE}) if add_metadata: # Warn if there are duplicated keys in metadata compared to the existing features - # (`base_feature_name`, optionally `label_column`) + # (`BASE_COLUMN_NAME`, optionally "label") duplicated_keys = set(self.info.features) & set(metadata_features) if duplicated_keys: logger.warning( @@ -257,7 +242,7 @@ def _split_files_and_archives(self, data_files): def _generate_examples(self, files, metadata_files, split_name, add_metadata, add_labels): split_metadata_files = metadata_files.get(split_name, []) sample_empty_metadata = ( - {k: None for k in self.info.features if k != self.config.base_feature_name} if self.info.features else {} + {k: None for k in self.info.features if k != self.BASE_COLUMN_NAME} if self.info.features else {} ) last_checked_dir = None metadata_dir = None @@ -315,7 +300,7 @@ def _generate_examples(self, files, metadata_files, split_name, add_metadata, ad file_relpath = file_relpath.replace("\\", "/") if file_relpath not in metadata_dict: raise ValueError( - f"{self.config.base_feature_name} at {file_relpath} doesn't have metadata in {downloaded_metadata_file}." + f"{self.BASE_COLUMN_NAME} at {file_relpath} doesn't have metadata in {downloaded_metadata_file}." ) sample_metadata = metadata_dict[file_relpath] else: @@ -330,7 +315,7 @@ def _generate_examples(self, files, metadata_files, split_name, add_metadata, ad sample_label = {} yield file_idx, { **sample_empty_metadata, - self.config.base_feature_name: downloaded_file_or_dir, + self.BASE_COLUMN_NAME: downloaded_file_or_dir, **sample_metadata, **sample_label, } @@ -385,7 +370,7 @@ def _generate_examples(self, files, metadata_files, split_name, add_metadata, ad downloaded_dir_file_relpath = downloaded_dir_file_relpath.replace("\\", "/") if downloaded_dir_file_relpath not in metadata_dict: raise ValueError( - f"{self.config.base_feature_name} at {downloaded_dir_file_relpath} doesn't have metadata in {downloaded_metadata_file}." + f"{self.BASE_COLUMN_NAME} at {downloaded_dir_file_relpath} doesn't have metadata in {downloaded_metadata_file}." ) sample_metadata = metadata_dict[downloaded_dir_file_relpath] else: @@ -400,7 +385,7 @@ def _generate_examples(self, files, metadata_files, split_name, add_metadata, ad sample_label = {} yield file_idx, { **sample_empty_metadata, - self.config.base_feature_name: downloaded_dir_file, + self.BASE_COLUMN_NAME: downloaded_dir_file, **sample_metadata, **sample_label, } diff --git a/src/datasets/packaged_modules/imagefolder/imagefolder.py b/src/datasets/packaged_modules/imagefolder/imagefolder.py index 43bede64a41..3b335549c70 100644 --- a/src/datasets/packaged_modules/imagefolder/imagefolder.py +++ b/src/datasets/packaged_modules/imagefolder/imagefolder.py @@ -19,6 +19,7 @@ class ImageFolderConfig(folder_builder.FolderBuilderConfig): class ImageFolder(folder_builder.FolderBuilder): BASE_FEATURE = datasets.Image() + BASE_COLUMN_NAME = "image" BUILDER_CONFIG_CLASS = ImageFolderConfig EXTENSIONS: List[str] # definition at the bottom of the script diff --git a/tests/packaged_modules/test_autofolder.py b/tests/packaged_modules/test_autofolder.py index 8d83ac79e2a..33d81afa3cc 100644 --- a/tests/packaged_modules/test_autofolder.py +++ b/tests/packaged_modules/test_autofolder.py @@ -12,12 +12,10 @@ class DummyFolderBuilder(FolderBuilder): BASE_FEATURE = None + BASE_COLUMN_NAME = "base" BUILDER_CONFIG_CLASS = FolderBuilderConfig EXTENSIONS = [".txt"] - def __init__(self, *args, **kwargs): - super().__init__(*args, base_feature_name="auto", **kwargs) - @pytest.fixture def cache_dir(tmp_path): @@ -223,7 +221,7 @@ def test_inferring_labels_from_data_dirs(data_files_with_labels_no_metadata, cac data_files=data_files_with_labels_no_metadata, cache_dir=cache_dir, drop_labels=False ) gen_kwargs = autofolder._split_generators(StreamingDownloadManager())[0].gen_kwargs - assert autofolder.info.features == Features({"auto": None, "label": ClassLabel(names=["class0", "class1"])}) + assert autofolder.info.features == Features({"base": None, "label": ClassLabel(names=["class0", "class1"])}) generator = autofolder._generate_examples(**gen_kwargs) assert all(example["label"] in {"class0", "class1"} for _, example in generator) @@ -275,8 +273,8 @@ def test_prepare_generate_examples_duplicated_label_key( assert all(example["label"] in ["CLASS_0", "CLASS_1"] for _, example in generator) else: # drop both labels and metadata - assert autofolder.info.features == Features({"auto": None}) - assert all(example.keys() == {"auto"} for _, example in generator) + assert autofolder.info.features == Features({"base": None}) + assert all(example.keys() == {"base"} for _, example in generator) @pytest.mark.parametrize("drop_metadata", [None, True, False]) @@ -294,12 +292,12 @@ def test_prepare_generate_examples_drop_labels(auto_text_file, drop_metadata, dr generator = autofolder._generate_examples(**gen_kwargs) if not drop_labels: assert all( - example.keys() == {"auto", "label"} and all(val is not None for val in example.values()) + example.keys() == {"base", "label"} and all(val is not None for val in example.values()) for _, example in generator ) else: assert all( - example.keys() == {"auto"} and all(val is not None for val in example.values()) for _, example in generator + example.keys() == {"base"} and all(val is not None for val in example.values()) for _, example in generator ) @@ -318,7 +316,7 @@ def test_prepare_generate_examples_drop_metadata(file_with_metadata, drop_metada # since the dataset has metadata, adding the labels explicitly requires drop_labels=False assert gen_kwargs["add_labels"] is (drop_labels is False) generator = autofolder._generate_examples(**gen_kwargs) - expected_columns = {"auto"} + expected_columns = {"base"} if gen_kwargs["add_metadata"]: expected_columns.add("additional_feature") if gen_kwargs["add_labels"]: @@ -337,9 +335,9 @@ def test_prepare_generate_examples_with_metadata_that_misses_one_sample( ): file, file2, metadata_file = files_with_metadata_that_misses_one_sample if not drop_metadata: - features = Features({"auto": None, "additional_feature": Value("string")}) + features = Features({"base": None, "additional_feature": Value("string")}) else: - features = Features({"auto": None}) + features = Features({"base": None}) autofolder = DummyFolderBuilder( data_files=[file, file2, metadata_file], drop_metadata=drop_metadata, @@ -352,7 +350,7 @@ def test_prepare_generate_examples_with_metadata_that_misses_one_sample( list(generator) else: assert all( - example.keys() == {"auto"} and all(val is not None for val in example.values()) for _, example in generator + example.keys() == {"base"} and all(val is not None for val in example.values()) for _, example in generator ) @@ -373,7 +371,7 @@ def test_data_files_with_metadata_and_splits( expected_num_of_examples = len(files) - 1 generated_examples = list(autofolder._generate_examples(**generated_split.gen_kwargs)) assert len(generated_examples) == expected_num_of_examples - assert len(set(example["auto"] for _, example in generated_examples)) == expected_num_of_examples + assert len(set(example["base"] for _, example in generated_examples)) == expected_num_of_examples assert len(set(example["additional_feature"] for _, example in generated_examples)) == expected_num_of_examples assert all(example["additional_feature"] is not None for _, example in generated_examples) @@ -389,7 +387,7 @@ def test_data_files_with_metadata_and_archives(streaming, cache_dir, data_files_ expected_num_of_examples = 2 * num_of_archives generated_examples = list(autofolder._generate_examples(**generated_split.gen_kwargs)) assert len(generated_examples) == expected_num_of_examples - assert len(set(example["auto"] for _, example in generated_examples)) == expected_num_of_examples + assert len(set(example["base"] for _, example in generated_examples)) == expected_num_of_examples assert len(set(example["additional_feature"] for _, example in generated_examples)) == expected_num_of_examples assert all(example["additional_feature"] is not None for _, example in generated_examples) From f74922c3c40aab3ddc3789390a01bc7398731a27 Mon Sep 17 00:00:00 2001 From: Polina Kazakova Date: Wed, 17 Aug 2022 19:18:52 +0200 Subject: [PATCH 48/60] Update src/datasets/streaming.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Mario Šaško --- src/datasets/streaming.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/datasets/streaming.py b/src/datasets/streaming.py index fdec4ae9869..b084c4f8cfa 100644 --- a/src/datasets/streaming.py +++ b/src/datasets/streaming.py @@ -119,10 +119,9 @@ def extend_dataset_builder_for_streaming(builder: "DatasetBuilder"): parent_builder_modules = [ cls.__module__ - for cls in type(builder).__mro__ + for cls in type(builder).__mro__[1:] if issubclass(cls, DatasetBuilder) - # check it's not a standard builder from datasets.builder and not the same module we've already patched - and cls.__module__ not in ["datasets.builder", builder.__module__] + and cls is not DatasetBuilder ] for module in parent_builder_modules: extend_module_for_streaming(module, use_auth_token=builder.use_auth_token) From 227ce043f9ab8300ad5aa25e3382e1c277538fac Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Wed, 17 Aug 2022 19:43:34 +0200 Subject: [PATCH 49/60] rename FolderBuilder -> FolderBasedBuilder --- .../audiofolder/audiofolder.py | 6 ++-- .../__init__.py | 0 .../folder_based_builder.py} | 8 ++--- .../imagefolder/imagefolder.py | 6 ++-- src/datasets/streaming.py | 3 +- ...folder.py => test_folder_based_builder.py} | 35 ++++++++++--------- 6 files changed, 30 insertions(+), 28 deletions(-) rename src/datasets/packaged_modules/{folder_builder => folder_based_builder}/__init__.py (100%) rename src/datasets/packaged_modules/{folder_builder/folder_builder.py => folder_based_builder/folder_based_builder.py} (98%) rename tests/packaged_modules/{test_autofolder.py => test_folder_based_builder.py} (94%) diff --git a/src/datasets/packaged_modules/audiofolder/audiofolder.py b/src/datasets/packaged_modules/audiofolder/audiofolder.py index edff5d9b3d4..bde1d49a1ac 100644 --- a/src/datasets/packaged_modules/audiofolder/audiofolder.py +++ b/src/datasets/packaged_modules/audiofolder/audiofolder.py @@ -3,21 +3,21 @@ import datasets -from ..folder_builder import folder_builder +from ..folder_based_builder import folder_based_builder logger = datasets.utils.logging.get_logger(__name__) @dataclass -class AudioFolderConfig(folder_builder.FolderBuilderConfig): +class AudioFolderConfig(folder_based_builder.FolderBasedBuilderConfig): """Builder Config for AudioFolder.""" drop_labels: bool = True # usually we don't need labels as classification is not the main audio task drop_metadata: bool = None -class AudioFolder(folder_builder.FolderBuilder): +class AudioFolder(folder_based_builder.FolderBasedBuilder): BASE_FEATURE = datasets.Audio() BASE_COLUMN_NAME = "audio" BUILDER_CONFIG_CLASS = AudioFolderConfig diff --git a/src/datasets/packaged_modules/folder_builder/__init__.py b/src/datasets/packaged_modules/folder_based_builder/__init__.py similarity index 100% rename from src/datasets/packaged_modules/folder_builder/__init__.py rename to src/datasets/packaged_modules/folder_based_builder/__init__.py diff --git a/src/datasets/packaged_modules/folder_builder/folder_builder.py b/src/datasets/packaged_modules/folder_based_builder/folder_based_builder.py similarity index 98% rename from src/datasets/packaged_modules/folder_builder/folder_builder.py rename to src/datasets/packaged_modules/folder_based_builder/folder_based_builder.py index 59965379a54..46c0462b029 100644 --- a/src/datasets/packaged_modules/folder_builder/folder_builder.py +++ b/src/datasets/packaged_modules/folder_based_builder/folder_based_builder.py @@ -42,7 +42,7 @@ def count_path_segments(path): @dataclass -class FolderBuilderConfig(datasets.BuilderConfig): +class FolderBasedBuilderConfig(datasets.BuilderConfig): """BuilderConfig for AutoFolder.""" features: Optional[datasets.Features] = None @@ -50,7 +50,7 @@ class FolderBuilderConfig(datasets.BuilderConfig): drop_metadata: bool = None -class FolderBuilder(datasets.GeneratorBasedBuilder, abc.ABC): +class FolderBasedBuilder(datasets.GeneratorBasedBuilder, abc.ABC): """ Base class for generic data loaders for vision and image data. @@ -58,14 +58,14 @@ class FolderBuilder(datasets.GeneratorBasedBuilder, abc.ABC): Abstract class attributes to be overridden by a child class: BASE_FEATURE: feature object to decode data (i.e. datasets.Image(), datasets.Audio(), ...) BASE_COLUMN_NAME: string key name of a base feature (i.e. "image", "audio", ...) - BUILDER_CONFIG_CLASS: builder config inherited from `folder_builder.AutoFolderConfig` + BUILDER_CONFIG_CLASS: builder config inherited from `folder_based_builder.FolderBasedBuilderConfig` EXTENSIONS: list of allowed extensions (only files with these extensions and METADATA_FILENAME files will be included in a dataset) """ BASE_FEATURE: Any BASE_COLUMN_NAME: str - BUILDER_CONFIG_CLASS: FolderBuilderConfig + BUILDER_CONFIG_CLASS: FolderBasedBuilderConfig EXTENSIONS: List[str] SKIP_CHECKSUM_COMPUTATION_BY_DEFAULT: bool = True diff --git a/src/datasets/packaged_modules/imagefolder/imagefolder.py b/src/datasets/packaged_modules/imagefolder/imagefolder.py index 3b335549c70..31de9b38d50 100644 --- a/src/datasets/packaged_modules/imagefolder/imagefolder.py +++ b/src/datasets/packaged_modules/imagefolder/imagefolder.py @@ -3,21 +3,21 @@ import datasets -from ..folder_builder import folder_builder +from ..folder_based_builder import folder_based_builder logger = datasets.utils.logging.get_logger(__name__) @dataclass -class ImageFolderConfig(folder_builder.FolderBuilderConfig): +class ImageFolderConfig(folder_based_builder.FolderBasedBuilderConfig): """BuilderConfig for ImageFolder.""" drop_labels: bool = None drop_metadata: bool = None -class ImageFolder(folder_builder.FolderBuilder): +class ImageFolder(folder_based_builder.FolderBasedBuilder): BASE_FEATURE = datasets.Image() BASE_COLUMN_NAME = "image" BUILDER_CONFIG_CLASS = ImageFolderConfig diff --git a/src/datasets/streaming.py b/src/datasets/streaming.py index b084c4f8cfa..f9cc274a9cb 100644 --- a/src/datasets/streaming.py +++ b/src/datasets/streaming.py @@ -120,8 +120,7 @@ def extend_dataset_builder_for_streaming(builder: "DatasetBuilder"): parent_builder_modules = [ cls.__module__ for cls in type(builder).__mro__[1:] - if issubclass(cls, DatasetBuilder) - and cls is not DatasetBuilder + if issubclass(cls, DatasetBuilder) and cls is not DatasetBuilder ] for module in parent_builder_modules: extend_module_for_streaming(module, use_auth_token=builder.use_auth_token) diff --git a/tests/packaged_modules/test_autofolder.py b/tests/packaged_modules/test_folder_based_builder.py similarity index 94% rename from tests/packaged_modules/test_autofolder.py rename to tests/packaged_modules/test_folder_based_builder.py index 33d81afa3cc..51b5d46d8f9 100644 --- a/tests/packaged_modules/test_autofolder.py +++ b/tests/packaged_modules/test_folder_based_builder.py @@ -7,13 +7,16 @@ from datasets import ClassLabel, DownloadManager, Features, Value from datasets.data_files import DataFilesDict, get_data_patterns_locally from datasets.download.streaming_download_manager import StreamingDownloadManager -from datasets.packaged_modules.folder_builder.folder_builder import FolderBuilder, FolderBuilderConfig +from datasets.packaged_modules.folder_based_builder.folder_based_builder import ( + FolderBasedBuilder, + FolderBasedBuilderConfig, +) -class DummyFolderBuilder(FolderBuilder): +class DummyFolderBasedBuilder(FolderBasedBuilder): BASE_FEATURE = None BASE_COLUMN_NAME = "base" - BUILDER_CONFIG_CLASS = FolderBuilderConfig + BUILDER_CONFIG_CLASS = FolderBasedBuilderConfig EXTENSIONS = [".txt"] @@ -33,7 +36,7 @@ def data_files_with_labels_no_metadata(tmp_path, auto_text_file): data_dir.mkdir(parents=True, exist_ok=True) subdir_class_0 = data_dir / "class0" subdir_class_0.mkdir(parents=True, exist_ok=True) - # data dirs can be nested but FolderBuilder should care only about the last part of the path: + # data dirs can be nested but FolderBasedBuilder should care only about the last part of the path: subdir_class_1 = data_dir / "subdir" / "class1" subdir_class_1.mkdir(parents=True, exist_ok=True) @@ -217,7 +220,7 @@ def data_files_with_zip_archives(tmp_path, auto_text_file): def test_inferring_labels_from_data_dirs(data_files_with_labels_no_metadata, cache_dir): - autofolder = DummyFolderBuilder( + autofolder = DummyFolderBasedBuilder( data_files=data_files_with_labels_no_metadata, cache_dir=cache_dir, drop_labels=False ) gen_kwargs = autofolder._split_generators(StreamingDownloadManager())[0].gen_kwargs @@ -230,7 +233,7 @@ def test_default_autofolder_not_usable(data_files_with_labels_no_metadata, cache # builder would try to access non-existing attributes of a default `BuilderConfig` class # as a custom one is not provided with pytest.raises(AttributeError): - _ = FolderBuilder( + _ = FolderBasedBuilder( data_files=data_files_with_labels_no_metadata, cache_dir=cache_dir, ) @@ -239,8 +242,8 @@ def test_default_autofolder_not_usable(data_files_with_labels_no_metadata, cache # test that AutoFolder is extended for streaming when it's child class is instantiated: # see line 115 in src/datasets/streaming.py def test_streaming_patched(): - _ = DummyFolderBuilder() - module = importlib.import_module(FolderBuilder.__module__) + _ = DummyFolderBasedBuilder() + module = importlib.import_module(FolderBasedBuilder.__module__) assert hasattr(module, "_patched_for_streaming") assert module._patched_for_streaming @@ -251,7 +254,7 @@ def test_prepare_generate_examples_duplicated_label_key( files_with_labels_and_duplicated_label_key_in_metadata, drop_metadata, drop_labels, cache_dir, caplog ): class0_file, class1_file, metadata_file = files_with_labels_and_duplicated_label_key_in_metadata - autofolder = DummyFolderBuilder( + autofolder = DummyFolderBasedBuilder( data_files=[class0_file, class1_file, metadata_file], cache_dir=cache_dir, drop_metadata=drop_metadata, @@ -280,7 +283,7 @@ def test_prepare_generate_examples_duplicated_label_key( @pytest.mark.parametrize("drop_metadata", [None, True, False]) @pytest.mark.parametrize("drop_labels", [None, True, False]) def test_prepare_generate_examples_drop_labels(auto_text_file, drop_metadata, drop_labels): - autofolder = DummyFolderBuilder( + autofolder = DummyFolderBasedBuilder( data_files={"train": [auto_text_file]}, drop_metadata=drop_metadata, drop_labels=drop_labels, @@ -305,7 +308,7 @@ def test_prepare_generate_examples_drop_labels(auto_text_file, drop_metadata, dr @pytest.mark.parametrize("drop_labels", [None, True, False]) def test_prepare_generate_examples_drop_metadata(file_with_metadata, drop_metadata, drop_labels): file, metadata_file = file_with_metadata - autofolder = DummyFolderBuilder( + autofolder = DummyFolderBasedBuilder( data_files=[file, metadata_file], drop_metadata=drop_metadata, drop_labels=drop_labels, @@ -338,7 +341,7 @@ def test_prepare_generate_examples_with_metadata_that_misses_one_sample( features = Features({"base": None, "additional_feature": Value("string")}) else: features = Features({"base": None}) - autofolder = DummyFolderBuilder( + autofolder = DummyFolderBasedBuilder( data_files=[file, file2, metadata_file], drop_metadata=drop_metadata, features=features, @@ -360,7 +363,7 @@ def test_data_files_with_metadata_and_splits( streaming, cache_dir, n_splits, data_files_with_one_split_and_metadata, data_files_with_two_splits_and_metadata ): data_files = data_files_with_one_split_and_metadata if n_splits == 1 else data_files_with_two_splits_and_metadata - autofolder = DummyFolderBuilder( + autofolder = DummyFolderBasedBuilder( data_files=data_files, cache_dir=cache_dir, ) @@ -378,7 +381,7 @@ def test_data_files_with_metadata_and_splits( @pytest.mark.parametrize("streaming", [False, True]) def test_data_files_with_metadata_and_archives(streaming, cache_dir, data_files_with_zip_archives): - autofolder = DummyFolderBuilder(data_files=data_files_with_zip_archives, cache_dir=cache_dir) + autofolder = DummyFolderBasedBuilder(data_files=data_files_with_zip_archives, cache_dir=cache_dir) download_manager = StreamingDownloadManager() if streaming else DownloadManager() generated_splits = autofolder._split_generators(download_manager) for (split, files), generated_split in zip(data_files_with_zip_archives.items(), generated_splits): @@ -406,7 +409,7 @@ def test_data_files_with_wrong_metadata_file_name(cache_dir, tmp_path, auto_text f.write(metadata) data_files_with_bad_metadata = DataFilesDict.from_local_or_remote(get_data_patterns_locally(data_dir), data_dir) - autofolder = DummyFolderBuilder(data_files=data_files_with_bad_metadata, cache_dir=cache_dir) + autofolder = DummyFolderBasedBuilder(data_files=data_files_with_bad_metadata, cache_dir=cache_dir) gen_kwargs = autofolder._split_generators(StreamingDownloadManager())[0].gen_kwargs generator = autofolder._generate_examples(**gen_kwargs) assert all("additional_feature" not in example for _, example in generator) @@ -426,7 +429,7 @@ def test_data_files_with_wrong_file_name_column_in_metadata_file(cache_dir, tmp_ f.write(metadata) data_files_with_bad_metadata = DataFilesDict.from_local_or_remote(get_data_patterns_locally(data_dir), data_dir) - autofolder = DummyFolderBuilder(data_files=data_files_with_bad_metadata, cache_dir=cache_dir) + autofolder = DummyFolderBasedBuilder(data_files=data_files_with_bad_metadata, cache_dir=cache_dir) with pytest.raises(ValueError) as exc_info: _ = autofolder._split_generators(StreamingDownloadManager())[0].gen_kwargs assert "`file_name` must be present" in str(exc_info.value) From 034b88c6b0401f20aebf0f4021a46ebe83152dd2 Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Wed, 17 Aug 2022 19:44:31 +0200 Subject: [PATCH 50/60] set drop_labels to None by default for AudioFolder --- src/datasets/packaged_modules/audiofolder/audiofolder.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/datasets/packaged_modules/audiofolder/audiofolder.py b/src/datasets/packaged_modules/audiofolder/audiofolder.py index bde1d49a1ac..ca82291eec2 100644 --- a/src/datasets/packaged_modules/audiofolder/audiofolder.py +++ b/src/datasets/packaged_modules/audiofolder/audiofolder.py @@ -13,7 +13,7 @@ class AudioFolderConfig(folder_based_builder.FolderBasedBuilderConfig): """Builder Config for AudioFolder.""" - drop_labels: bool = True # usually we don't need labels as classification is not the main audio task + drop_labels: bool = None drop_metadata: bool = None From 54c6cf29108ea2e1023983f155cb97deb95be644 Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Wed, 17 Aug 2022 19:58:36 +0200 Subject: [PATCH 51/60] remove dataclass decorator from audio/image folder configs as they don't introduce any new params to be more consistent with usual datasets script as it doesn't do anything here anyway --- src/datasets/packaged_modules/audiofolder/audiofolder.py | 2 -- src/datasets/packaged_modules/imagefolder/imagefolder.py | 2 -- 2 files changed, 4 deletions(-) diff --git a/src/datasets/packaged_modules/audiofolder/audiofolder.py b/src/datasets/packaged_modules/audiofolder/audiofolder.py index ca82291eec2..ab90d8de378 100644 --- a/src/datasets/packaged_modules/audiofolder/audiofolder.py +++ b/src/datasets/packaged_modules/audiofolder/audiofolder.py @@ -1,4 +1,3 @@ -from dataclasses import dataclass from typing import List import datasets @@ -9,7 +8,6 @@ logger = datasets.utils.logging.get_logger(__name__) -@dataclass class AudioFolderConfig(folder_based_builder.FolderBasedBuilderConfig): """Builder Config for AudioFolder.""" diff --git a/src/datasets/packaged_modules/imagefolder/imagefolder.py b/src/datasets/packaged_modules/imagefolder/imagefolder.py index 31de9b38d50..d4e25866750 100644 --- a/src/datasets/packaged_modules/imagefolder/imagefolder.py +++ b/src/datasets/packaged_modules/imagefolder/imagefolder.py @@ -1,4 +1,3 @@ -from dataclasses import dataclass from typing import List import datasets @@ -9,7 +8,6 @@ logger = datasets.utils.logging.get_logger(__name__) -@dataclass class ImageFolderConfig(folder_based_builder.FolderBasedBuilderConfig): """BuilderConfig for ImageFolder.""" From 7f6719ba91c2cfa71dd7908f4784bd9ecb4b52d0 Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Thu, 18 Aug 2022 16:17:16 +0200 Subject: [PATCH 52/60] remove ABC from FolderBasedBuilder as it does nothing --- .../folder_based_builder/folder_based_builder.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/datasets/packaged_modules/folder_based_builder/folder_based_builder.py b/src/datasets/packaged_modules/folder_based_builder/folder_based_builder.py index 46c0462b029..379019ae083 100644 --- a/src/datasets/packaged_modules/folder_based_builder/folder_based_builder.py +++ b/src/datasets/packaged_modules/folder_based_builder/folder_based_builder.py @@ -1,4 +1,3 @@ -import abc import collections import itertools import os @@ -50,7 +49,7 @@ class FolderBasedBuilderConfig(datasets.BuilderConfig): drop_metadata: bool = None -class FolderBasedBuilder(datasets.GeneratorBasedBuilder, abc.ABC): +class FolderBasedBuilder(datasets.GeneratorBasedBuilder): """ Base class for generic data loaders for vision and image data. From 748576b2ede5e0a4f890a78ec037701ed1c2a006 Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Thu, 18 Aug 2022 16:17:43 +0200 Subject: [PATCH 53/60] update documentation --- docs/source/audio_load.mdx | 87 +++++++++++++------------------------- 1 file changed, 30 insertions(+), 57 deletions(-) diff --git a/docs/source/audio_load.mdx b/docs/source/audio_load.mdx index b713d1dc086..ad97f983f63 100644 --- a/docs/source/audio_load.mdx +++ b/docs/source/audio_load.mdx @@ -57,39 +57,11 @@ If you only want to load the underlying path to the audio dataset without decodi ## AudioFolder -You can also load a dataset with an `AudioFolder` dataset builder. It does not require writing a custom dataloader, making it useful for quickly loading audio data. Your dataset structure might look like: - -``` -folder/train/first_audio_file.wav -folder/train/second_audio_file.wav -folder/train/third_audio_file.wav - -folder/train/last_audio_file.wav -``` - -Load your audio dataset by specifying `audiofolder` and the directory containing your data in `data_dir`: - -```py ->>> from datasets import load_dataset - ->>> dataset = load_dataset("audiofolder", data_dir="/path/to/folder") ->>> dataset["train"][0] -{'audio': - {'path': '/path/to/extracted/audio/first_audio_file.wav', - 'array': array([ 0.00088501, 0.0012207 , 0.00131226, ..., -0.00045776, -0.00054932, -0.00054932], dtype=float32), - 'sampling_rate': 16000} -} -``` - -Load remote datasets from their URLs with the `data_files` parameter: - -```py ->>> dataset = load_dataset("audiofolder", data_files="https://s3.amazonaws.com/datasets.huggingface.co/SpeechCommands/v0.01/v0.01_test.tar.gz") -``` +You can also load a dataset with an `AudioFolder` dataset builder. It does not require writing a custom dataloader, making it useful for quickly loading audio data. ## AudioFolder with metadata -Metadata associated with your dataset can also be loaded. Make sure your dataset has a `metadata.jsonl` file: +To link your audio files with metadata information, make sure your dataset has a `metadata.jsonl` file. Your dataset structure might look like: ``` folder/train/metadata.jsonl @@ -98,47 +70,44 @@ folder/train/second_audio_file.mp3 folder/train/third_audio_file.mp3 ``` -Your `metadata.jsonl` file must have a `file_name` column which links audio files with their metadata: +Your `metadata.jsonl` file must have a `file_name` column which links audio files with their metadata. An example `metadata.jsonl` file might look like: ```jsonl -{"file_name": "first_audio_file.mp3", "additional_feature": "This is a first value of a text feature you linked with your audio files"} -{"file_name": "second_audio_file.mp3", "additional_feature": "This is a second value of a text feature you linked with your audio files"} -{"file_name": "third_audio_file.mp3", "additional_feature": "This is a third value of a text feature you linked with your audio files"} +{"file_name": "first_audio_file.mp3", "transcription": "znowu się duch z ciałem zrośnie w młodocianej wstaniesz wiosnie i możesz skutkiem tych leków umierać wstawać wiek wieków dalej tam były przestrogi jak siekać głowę jak nogi"} +{"file_name": "second_audio_file.mp3", "transcription": "już u źwierzyńca podwojów król zasiada przy nim książęta i panowie rada a gdzie wzniosły krążył ganek rycerze obok kochanek król skinął palcem zaczęto igrzysko"} +{"file_name": "third_audio_file.mp3", "transcription": "pewnie kędyś w obłędzie ubite minęły szlaki zaczekajmy dzień jaki poślemy szukać wszędzie dziś jutro pewnie będzie posłali wszędzie sługi czekali dzień i drugi gdy nic nie doczekali z płaczem chcą jechać dali"} ``` -### Automatic Speech Recognition +Load your audio dataset by specifying `audiofolder` and the directory containing your data in `data_dir`: -ASR datasets contain text transcriptions of recorded audio files. An example `metadata.jsonl` might look like: +```py +>>> from datasets import load_dataset -``` -{"file_name": "11295_11059_000000.flac", "transcription": "znowu się duch z ciałem zrośnie w młodocianej wstaniesz wiosnie i możesz skutkiem tych leków umierać wstawać wiek wieków dalej tam były przestrogi jak siekać głowę jak nogi"} -{"file_name": "11295_11059_000001.flac", "transcription": "już u źwierzyńca podwojów król zasiada przy nim książęta i panowie rada a gdzie wzniosły krążył ganek rycerze obok kochanek król skinął palcem zaczęto igrzysko"} -{"file_name": "11295_11059_000002.flac", "transcription": "pewnie kędyś w obłędzie ubite minęły szlaki zaczekajmy dzień jaki poślemy szukać wszędzie dziś jutro pewnie będzie posłali wszędzie sługi czekali dzień i drugi gdy nic nie doczekali z płaczem chcą jechać dali"} -{"file_name": "11295_11059_000003.flac", "transcription": "na miejscach które dziś piaskiem zaniosło gdzie car i trzcina zarasta po których teraz wasze biega wiosło stał okrąg pięknego miasta"} +>>> dataset = load_dataset("audiofolder", data_dir="/path/to/folder") ``` -Load the dataset with `AudioFolder`, and it will create a `transcription` column with text transcriptions: +`AudioFolder` will load audio data and create a `transcription` column containing texts from `metadata.jsonl`: ```py ->>> dataset = load_dataset("audiofolder", data_dir="/path/to/folder", split="train") ->>> dataset[0]["transcription"] -"znowu się duch z ciałem zrośnie w młodocianej wstaniesz wiosnie i możesz skutkiem tych leków umierać wstawać wiek wieków dalej tam były przestrogi jak siekać głowę jak nogi" +>>> dataset["train"][0] +{'audio': + {'path': '/path/to/extracted/audio/first_audio_file.mp3', + 'array': array([ 0.00088501, 0.0012207 , 0.00131226, ..., -0.00045776, -0.00054932, -0.00054932], dtype=float32), + 'sampling_rate': 16000}, + 'transcription': 'znowu się duch z ciałem zrośnie w młodocianej wstaniesz wiosnie i możesz skutkiem tych leków umierać wstawać wiek wieków dalej tam były przestrogi jak siekać głowę jak nogi' +} ``` -## AudioFolder with labels - -If you have an audio classification task, set `drop_labels=False` to infer labels from directories names as defined in [`~datasets.packaged_modules.audiofolder.AudioFolderConfig`]. -Your dataset structure should look like this: +You can load remote datasets from their URLs with the `data_files` parameter: +```py +>>> dataset = load_dataset("audiofolder", data_files="https://s3.amazonaws.com/datasets.huggingface.co/SpeechCommands/v0.01/v0.01_test.tar.gz") ``` -folder/train/label_0/first_audio_label_0.mp3 -folder/train/label_0/second_audio_label_0.mp3 -folder/train/label_1/first_audio_label_1.mp3 -folder/train/label_9/last_audio_label_99.mp3 -``` +## AudioFolder with labels -`AudioFolder` will create a `label` column of a [`~datasets.features.ClassLabel`] type based on the directory name. +By default, if your data directory doesn't contain any metadata files, `AudioFolder` automatically adds a `label` column of [`~datasets.features.ClassLabel`] type, with labels based on the directory name. +It might be useful if you have an audio classification task. ### Language identification @@ -152,7 +121,7 @@ folder/train/ar/0179_830_0185_540.mp3 folder/train/zh/0442_690_0454_380.mp3 ``` -Load the dataset with `drop_labels=False`, and `AudioFolder` will create a `label` column with the language id based on the directory name: +As there are no metadata files, `AudioFolder` will create a `label` column with the language id based on the directory name: ``` >>> dataset = load_dataset("audiofolder", data_dir="/path/to/folder", drop_labels=False) @@ -173,8 +142,12 @@ Load the dataset with `drop_labels=False`, and `AudioFolder` will create a `lab } ``` +If you have metadata files inside your data directory, but you still want to infer labels from directories names, set `drop_labels=False` as defined in [`~datasets.packaged_modules.audiofolder.AudioFolderConfig`]. + Alternatively, you can add `label` column to your `metadata.jsonl` file. - \ No newline at end of file + + +If you have no metadata files and want to drop automatically created labels, set `drop_labels=True`. In this case your dataset would contain only an `audio` column. From 615a83917289430368254f5348dcec5394929739 Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Thu, 18 Aug 2022 17:12:49 +0200 Subject: [PATCH 54/60] fix docs --- docs/source/audio_load.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/source/audio_load.mdx b/docs/source/audio_load.mdx index ad97f983f63..5ea67ab5cd2 100644 --- a/docs/source/audio_load.mdx +++ b/docs/source/audio_load.mdx @@ -70,9 +70,9 @@ folder/train/second_audio_file.mp3 folder/train/third_audio_file.mp3 ``` -Your `metadata.jsonl` file must have a `file_name` column which links audio files with their metadata. An example `metadata.jsonl` file might look like: +Your `metadata.jsonl` file must have a `"file_name"` column which links audio files with their metadata. An example `metadata.jsonl` file might look like: -```jsonl +```python {"file_name": "first_audio_file.mp3", "transcription": "znowu się duch z ciałem zrośnie w młodocianej wstaniesz wiosnie i możesz skutkiem tych leków umierać wstawać wiek wieków dalej tam były przestrogi jak siekać głowę jak nogi"} {"file_name": "second_audio_file.mp3", "transcription": "już u źwierzyńca podwojów król zasiada przy nim książęta i panowie rada a gdzie wzniosły krążył ganek rycerze obok kochanek król skinął palcem zaczęto igrzysko"} {"file_name": "third_audio_file.mp3", "transcription": "pewnie kędyś w obłędzie ubite minęły szlaki zaczekajmy dzień jaki poślemy szukać wszędzie dziś jutro pewnie będzie posłali wszędzie sługi czekali dzień i drugi gdy nic nie doczekali z płaczem chcą jechać dali"} @@ -106,7 +106,7 @@ You can load remote datasets from their URLs with the `data_files` parameter: ## AudioFolder with labels -By default, if your data directory doesn't contain any metadata files, `AudioFolder` automatically adds a `label` column of [`~datasets.features.ClassLabel`] type, with labels based on the directory name. +If your data directory doesn't contain any metadata files, by default `AudioFolder` automatically adds a `label` column of [`~datasets.features.ClassLabel`] type, with labels based on the directory name. It might be useful if you have an audio classification task. ### Language identification From 02f8f57736ccf53572c33c91344c82f179c6a43d Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Thu, 18 Aug 2022 17:22:17 +0200 Subject: [PATCH 55/60] SORRY another small fix in docs --- docs/source/audio_load.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/audio_load.mdx b/docs/source/audio_load.mdx index 5ea67ab5cd2..2af31c32e9d 100644 --- a/docs/source/audio_load.mdx +++ b/docs/source/audio_load.mdx @@ -70,7 +70,7 @@ folder/train/second_audio_file.mp3 folder/train/third_audio_file.mp3 ``` -Your `metadata.jsonl` file must have a `"file_name"` column which links audio files with their metadata. An example `metadata.jsonl` file might look like: +Your `metadata.jsonl` file must have a `file_name` column which links audio files with their metadata. An example `metadata.jsonl` file might look like: ```python {"file_name": "first_audio_file.mp3", "transcription": "znowu się duch z ciałem zrośnie w młodocianej wstaniesz wiosnie i możesz skutkiem tych leków umierać wstawać wiek wieków dalej tam były przestrogi jak siekać głowę jak nogi"} From fc41118e713def29f54bde21ded8f20514e04be1 Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Fri, 19 Aug 2022 19:08:43 +0200 Subject: [PATCH 56/60] =?UTF-8?q?get=20back=20abc=20and=20dataclasses=20ju?= =?UTF-8?q?st=20because=20of=20the=20magical=20thinking=20=C2=AF\=5F(?= =?UTF-8?q?=E3=83=84)=5F/=C2=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/datasets/packaged_modules/audiofolder/audiofolder.py | 2 ++ .../folder_based_builder/folder_based_builder.py | 5 +++-- src/datasets/packaged_modules/imagefolder/imagefolder.py | 2 ++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/datasets/packaged_modules/audiofolder/audiofolder.py b/src/datasets/packaged_modules/audiofolder/audiofolder.py index ab90d8de378..ca82291eec2 100644 --- a/src/datasets/packaged_modules/audiofolder/audiofolder.py +++ b/src/datasets/packaged_modules/audiofolder/audiofolder.py @@ -1,3 +1,4 @@ +from dataclasses import dataclass from typing import List import datasets @@ -8,6 +9,7 @@ logger = datasets.utils.logging.get_logger(__name__) +@dataclass class AudioFolderConfig(folder_based_builder.FolderBasedBuilderConfig): """Builder Config for AudioFolder.""" diff --git a/src/datasets/packaged_modules/folder_based_builder/folder_based_builder.py b/src/datasets/packaged_modules/folder_based_builder/folder_based_builder.py index 379019ae083..bc96f04d216 100644 --- a/src/datasets/packaged_modules/folder_based_builder/folder_based_builder.py +++ b/src/datasets/packaged_modules/folder_based_builder/folder_based_builder.py @@ -1,3 +1,4 @@ +import abc import collections import itertools import os @@ -49,12 +50,12 @@ class FolderBasedBuilderConfig(datasets.BuilderConfig): drop_metadata: bool = None -class FolderBasedBuilder(datasets.GeneratorBasedBuilder): +class FolderBasedBuilder(datasets.GeneratorBasedBuilder, abc.ABC): """ Base class for generic data loaders for vision and image data. - Abstract class attributes to be overridden by a child class: + Abstract class attributes to be specified in a child class: BASE_FEATURE: feature object to decode data (i.e. datasets.Image(), datasets.Audio(), ...) BASE_COLUMN_NAME: string key name of a base feature (i.e. "image", "audio", ...) BUILDER_CONFIG_CLASS: builder config inherited from `folder_based_builder.FolderBasedBuilderConfig` diff --git a/src/datasets/packaged_modules/imagefolder/imagefolder.py b/src/datasets/packaged_modules/imagefolder/imagefolder.py index d4e25866750..31de9b38d50 100644 --- a/src/datasets/packaged_modules/imagefolder/imagefolder.py +++ b/src/datasets/packaged_modules/imagefolder/imagefolder.py @@ -1,3 +1,4 @@ +from dataclasses import dataclass from typing import List import datasets @@ -8,6 +9,7 @@ logger = datasets.utils.logging.get_logger(__name__) +@dataclass class ImageFolderConfig(folder_based_builder.FolderBasedBuilderConfig): """BuilderConfig for ImageFolder.""" From 9ee04ed7648fb0a30cf033124f5b4848466ddd53 Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Mon, 22 Aug 2022 11:03:44 +0200 Subject: [PATCH 57/60] =?UTF-8?q?Revert=20"get=20back=20abc=20and=20datacl?= =?UTF-8?q?asses=20just=20because=20of=20the=20magical=20thinking=20=C2=AF?= =?UTF-8?q?\=5F(=E3=83=84)=5F/=C2=AF"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit fc41118e713def29f54bde21ded8f20514e04be1. --- src/datasets/packaged_modules/audiofolder/audiofolder.py | 2 -- .../folder_based_builder/folder_based_builder.py | 5 ++--- src/datasets/packaged_modules/imagefolder/imagefolder.py | 2 -- 3 files changed, 2 insertions(+), 7 deletions(-) diff --git a/src/datasets/packaged_modules/audiofolder/audiofolder.py b/src/datasets/packaged_modules/audiofolder/audiofolder.py index ca82291eec2..ab90d8de378 100644 --- a/src/datasets/packaged_modules/audiofolder/audiofolder.py +++ b/src/datasets/packaged_modules/audiofolder/audiofolder.py @@ -1,4 +1,3 @@ -from dataclasses import dataclass from typing import List import datasets @@ -9,7 +8,6 @@ logger = datasets.utils.logging.get_logger(__name__) -@dataclass class AudioFolderConfig(folder_based_builder.FolderBasedBuilderConfig): """Builder Config for AudioFolder.""" diff --git a/src/datasets/packaged_modules/folder_based_builder/folder_based_builder.py b/src/datasets/packaged_modules/folder_based_builder/folder_based_builder.py index bc96f04d216..379019ae083 100644 --- a/src/datasets/packaged_modules/folder_based_builder/folder_based_builder.py +++ b/src/datasets/packaged_modules/folder_based_builder/folder_based_builder.py @@ -1,4 +1,3 @@ -import abc import collections import itertools import os @@ -50,12 +49,12 @@ class FolderBasedBuilderConfig(datasets.BuilderConfig): drop_metadata: bool = None -class FolderBasedBuilder(datasets.GeneratorBasedBuilder, abc.ABC): +class FolderBasedBuilder(datasets.GeneratorBasedBuilder): """ Base class for generic data loaders for vision and image data. - Abstract class attributes to be specified in a child class: + Abstract class attributes to be overridden by a child class: BASE_FEATURE: feature object to decode data (i.e. datasets.Image(), datasets.Audio(), ...) BASE_COLUMN_NAME: string key name of a base feature (i.e. "image", "audio", ...) BUILDER_CONFIG_CLASS: builder config inherited from `folder_based_builder.FolderBasedBuilderConfig` diff --git a/src/datasets/packaged_modules/imagefolder/imagefolder.py b/src/datasets/packaged_modules/imagefolder/imagefolder.py index 31de9b38d50..d4e25866750 100644 --- a/src/datasets/packaged_modules/imagefolder/imagefolder.py +++ b/src/datasets/packaged_modules/imagefolder/imagefolder.py @@ -1,4 +1,3 @@ -from dataclasses import dataclass from typing import List import datasets @@ -9,7 +8,6 @@ logger = datasets.utils.logging.get_logger(__name__) -@dataclass class ImageFolderConfig(folder_based_builder.FolderBasedBuilderConfig): """BuilderConfig for ImageFolder.""" From 6a79a5f23bc4f7338092b98f55a5b5249002cab8 Mon Sep 17 00:00:00 2001 From: Polina Kazakova Date: Mon, 22 Aug 2022 12:38:00 +0200 Subject: [PATCH 58/60] check if builder extending for streaming is not in datasets.builder module Co-authored-by: Quentin Lhoest <42851186+lhoestq@users.noreply.github.com> --- src/datasets/streaming.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/datasets/streaming.py b/src/datasets/streaming.py index f9cc274a9cb..faa1b04cff0 100644 --- a/src/datasets/streaming.py +++ b/src/datasets/streaming.py @@ -120,7 +120,7 @@ def extend_dataset_builder_for_streaming(builder: "DatasetBuilder"): parent_builder_modules = [ cls.__module__ for cls in type(builder).__mro__[1:] - if issubclass(cls, DatasetBuilder) and cls is not DatasetBuilder + if issubclass(cls, DatasetBuilder) and cls.__module__ != DatasetBuilder.__module__] ] for module in parent_builder_modules: extend_module_for_streaming(module, use_auth_token=builder.use_auth_token) From 89e298c752a6f8efd5403129d38473367c7ba573 Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Mon, 22 Aug 2022 12:40:16 +0200 Subject: [PATCH 59/60] fix linters --- src/datasets/streaming.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/datasets/streaming.py b/src/datasets/streaming.py index faa1b04cff0..3acdd04fca7 100644 --- a/src/datasets/streaming.py +++ b/src/datasets/streaming.py @@ -120,7 +120,7 @@ def extend_dataset_builder_for_streaming(builder: "DatasetBuilder"): parent_builder_modules = [ cls.__module__ for cls in type(builder).__mro__[1:] - if issubclass(cls, DatasetBuilder) and cls.__module__ != DatasetBuilder.__module__] + if issubclass(cls, DatasetBuilder) and cls.__module__ != DatasetBuilder.__module__ ] for module in parent_builder_modules: extend_module_for_streaming(module, use_auth_token=builder.use_auth_token) From fbef2b012b97dac6a156b40eaa23097c9959e97d Mon Sep 17 00:00:00 2001 From: polinaeterna Date: Mon, 22 Aug 2022 13:24:44 +0200 Subject: [PATCH 60/60] add comment to the patching thing --- src/datasets/streaming.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/datasets/streaming.py b/src/datasets/streaming.py index 3acdd04fca7..26d7982b53b 100644 --- a/src/datasets/streaming.py +++ b/src/datasets/streaming.py @@ -119,8 +119,8 @@ def extend_dataset_builder_for_streaming(builder: "DatasetBuilder"): parent_builder_modules = [ cls.__module__ - for cls in type(builder).__mro__[1:] + for cls in type(builder).__mro__[1:] # make sure it's not the same module we've already patched if issubclass(cls, DatasetBuilder) and cls.__module__ != DatasetBuilder.__module__ - ] + ] # check it's not a standard builder from datasets.builder for module in parent_builder_modules: extend_module_for_streaming(module, use_auth_token=builder.use_auth_token)