From a9eb9c7b8071202f873125b33110123748cd9b1e Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Sun, 24 Mar 2024 14:19:11 -0700 Subject: [PATCH 01/65] initial sketch --- fiftyone/utils/hf_hub.py | 723 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 723 insertions(+) create mode 100644 fiftyone/utils/hf_hub.py diff --git a/fiftyone/utils/hf_hub.py b/fiftyone/utils/hf_hub.py new file mode 100644 index 0000000000..6d518f1004 --- /dev/null +++ b/fiftyone/utils/hf_hub.py @@ -0,0 +1,723 @@ +import json +import logging +import os +from packaging.requirements import Requirement +from PIL import Image +import requests + +import huggingface_hub as hfh +import yaml + +import fiftyone as fo +import fiftyone.constants as foc +from fiftyone.core.config import Config +import fiftyone.core.dataset as fod +import fiftyone.core.labels as fol +from fiftyone.core.sample import Sample +import fiftyone.core.utils as fou + +DATASETS_SERVER_URL = "https://datasets-server.huggingface.co" +DEFAULT_MEDIA_TYPE = "image" +DATASET_METADATA_FILENAMES = ("fiftyone.yml", "fiftyone.yaml") +DATASETS_MAX_BATCH_SIZE = 100 +DEFAULT_IMAGE_FILEPATH_FEATURE = "image" +FIFTYONE_BUILTIN_FIELDS = ("id", "filepath", "tags", "metadata") +REPO_TYPE = "dataset" +SUPPORTED_DTYPES = ( + "int8", + "int16", + "int32", + "int64", + "float16", + "float32", + "float64", + "bool", + "string", +) + +logger = logging.getLogger(__name__) + + +def load_from_hub(repo_id, revision=None, **kwargs): + """ + Load a dataset from the Hugging Face Hub into FiftyOne. + + Args: + repo_id: the Hugging Face Hub identifier of the dataset + revision: the revision of the dataset to load + **kwargs: optional keyword arguments + split: the split of the dataset to load + splits: the splits of the dataset to load + subset: the subset of the dataset to load + subsets: the subsets of the dataset to load + max_samples: the maximum number of samples to load + batch_size: the batch size to use when loading samples + overwrite (True): whether to overwrite an existing dataset with the same name + persistent (False): whether the dataset should be persistent + name: the name of the dataset to create + config_file: the path to a config file to use to load the dataset, + if the repo does not have a fiftyone.yml file + Returns: + a FiftyOne Dataset + """ + config = _get_dataset_metadata(repo_id, revision=revision, **kwargs) + if config is None: + raise ValueError(f"Could not find fiftyone metadata for {repo_id}") + return _load_dataset_from_config(config, **kwargs) + + +class HFHubDatasetConfig(Config): + def __init__(self, **kwargs): + """ + Config object for a Hugging Face Hub dataset + + Args: + name: the name of the dataset + repo_type: the type of the repository + repo_id: the identifier of the repository + revision: the revision of the dataset + filename: the name of the file + format: the format of the dataset + tags: the tags of the dataset + license: the license of the dataset + description: the description of the dataset + fiftyone: the fiftyone version requirement of the dataset + """ + ## Internals + self._repo_type = kwargs.get("repo_type", None) + self._repo_id = kwargs.get("repo_id", None) + self._revision = kwargs.get("revision", None) + self._filename = kwargs.get("filename", None) + self._format = kwargs.get("format", None) + + ## Dataset metadata + self.tags = kwargs.get("tags", []) + if isinstance(self.tags, str): + self.tags = [t.strip() for t in self.tags.split(",")] + elif isinstance(self.tags, list): + self.tags = [t.strip() for t in self.tags] + self.license = kwargs.get("license", None) + self.description = kwargs.get("description", None) + self._get_fiftyone_version(kwargs) + + def _get_fiftyone_version(self, kwargs): + if kwargs.get("fiftyone", None) is None: + self.version = None + else: + version = kwargs["fiftyone"].get("version", None) + if version is None: + self.version = None + else: + self.version = f"fiftyone{version}" + + +def _parse_split_kwargs(**kwargs): + splits = kwargs.get("splits", None) + split = kwargs.get("split", None) + if splits is None and split is not None: + splits = split + + if isinstance(splits, str): + if "," in splits: + splits = splits.split(",") + else: + splits = [splits] + return splits + + +def _parse_subset_kwargs(**kwargs): + subsets = kwargs.get("subsets", None) + subset = kwargs.get("subset", None) + if subsets is None and subset is not None: + subsets = subset + + if isinstance(subsets, str): + subsets = [subsets] + return subsets + + +class HFHubParquetFilesDatasetConfig(HFHubDatasetConfig): + def __init__(self, **kwargs): + """ + Config object for a Hugging Face Hub dataset that is stored as parquet files + + Args: + name: the name of the dataset + repo_type: the type of the repository + repo_id: the identifier of the repository + revision: the revision of the dataset + filename: the name of the file + format: the format of the dataset + tags: the tags of the dataset + license: the license of the dataset + description: the description of the dataset + fiftyone: the fiftyone version requirement of the dataset + label_fields: the label fields of the dataset + media_type: the media type of the dataset + default_media_fields: the default media fields of the dataset + additional_media_fields: the additional media fields of the dataset + """ + self.label_fields = kwargs.get("label_fields", None) + self.media_type = kwargs.get("media_type", DEFAULT_MEDIA_TYPE) + # self.detection_format = kwargs.get("detection_format", None) + + self._build_name(kwargs) + # self._build_mask_targets(kwargs) + self._build_media_fields_dict(kwargs) + self._build_allowed_splits(kwargs) + self._build_allowed_subsets(kwargs) + super().__init__(**kwargs) + + def _build_name(self, kwargs): + self.name = kwargs.get("name", None) + if self.name is None: + self.name = kwargs.get("repo_id", None) + + def _build_allowed_splits(self, kwargs): + # Author specifies what splits are compatible with this config + self._allowed_splits = _parse_split_kwargs(**kwargs) + + def _build_allowed_subsets(self, kwargs): + # Author specifies what subsets are compatible with this config + self._allowed_subsets = _parse_subset_kwargs(**kwargs) + + def _build_media_fields_dict(self, kwargs): + media_fields_dict = kwargs.get("default_media_fields", {}) + if media_fields_dict.get("filepath", None) is None: + media_fields_dict["filepath"] = DEFAULT_IMAGE_FILEPATH_FEATURE + + additional_media_fields = kwargs.get("additional_media_fields", {}) + media_fields_dict.update(additional_media_fields) + self.media_fields = media_fields_dict + + # def _build_mask_targets(self, kwargs): + # self.mask_targets = kwargs.get("mask_targets", None) + # if self.mask_targets is not None and isinstance(self.mask_targets, str): + # kwargs = { + # "repo_type": self._repo_type, + # "repo_id": self._repo_id, + # "revision": self._revision, + # "filename": self.mask_targets, + # } + # mask_targets_fp = hf_hub_download(**all_kwargs) + # with open(mask_targets_fp, "r") as f: + # self.mask_targets = json.load(f) + + +def _build_config(config_dict): + format = config_dict.get("format", None) + if format == "ParquetFilesDataset": + return HFHubParquetFilesDatasetConfig(**config_dict) + else: + return HFHubDatasetConfig(**config_dict) + + +def _get_dataset_metadata(repo_id, revision=None, **kwargs): + """ + Checks if a huggingface dataset can be converted to fiftyone. If it is, + it returns the metadata config loaded from the dataset's metadata file. + + If config_file kwargs is provided, it will use that file to load the config + """ + common_kwargs = dict(repo_type=REPO_TYPE, revision=revision) + config_file = kwargs.get("config_file", None) + + if config_file is not None: + config_file = os.path.abspath(config_file) + filename = os.path.basename(config_file) + all_kwargs = dict(repo_id=repo_id, filename=filename, **common_kwargs) + else: + api = hfh.HfApi() + for filename in DATASET_METADATA_FILENAMES: + if api.file_exists(repo_id, filename, **common_kwargs): + all_kwargs = dict( + repo_id=repo_id, filename=filename, **common_kwargs + ) + logger.info( + f"Downloading config file {filename} from {repo_id}" + ) + config_file = hfh.hf_hub_download(**all_kwargs) + break + + if config_file is None: + return None + + with open(config_file, "r") as f: + config_dict = yaml.safe_load(f) + config_dict.update(**all_kwargs) + return _build_config(config_dict) + + +def _ensure_dataset_compatibility(config): + error_level = fo.config.requirement_error_level + + req_str = config.version + if req_str is None: + return + try: + req = Requirement(req_str) + except: + logger.warning( + f"Unable to parse dataset {config.name}'s fiftyone version requirement {req_str}." + ) + return + + if not req.specifier.contains(foc.VERSION): + exception = ImportError( + f"Dataset {config.name} requires {req_str} but you are running {foc.VERSION}, which is not compatible" + ) + fou.handle_error(exception, error_level) + + +def _get_download_dir(repo_id, split=None, subset=None, **kwargs): + + path_walk = [fo.config.default_dataset_dir, "huggingface", "hub", repo_id] + + ## Note: for now don't support multiple revisions storage.. + if subset is not None: + path_walk.append(subset) + if split is not None: + path_walk.append(split) + + download_dir = os.path.join(*path_walk) + + if not os.path.exists(download_dir): + os.makedirs(download_dir) + + return download_dir + + +def _get_split_subset_pairs(config): + repo_id = config._repo_id + revision = config._revision + api_url = f"{DATASETS_SERVER_URL}/splits?dataset={repo_id.replace('/', '%2F')}&revision={revision}" + response = requests.get(api_url).json()["splits"] + return [(ss["split"], ss["config"]) for ss in response] + + +def _load_dataset_from_config(config, **kwargs): + _ensure_dataset_compatibility(config) + if isinstance(config, HFHubParquetFilesDatasetConfig): + return _load_parquet_files_dataset_from_config(config, **kwargs) + else: + ## TODO: Implement this + pass + # return _load_fiftyone_dataset_from_config(config, **kwargs) + + +def _get_allowed_splits(config, **kwargs): + user_splits = _parse_split_kwargs(**kwargs) + author_splits = config._allowed_splits + + if not user_splits and not author_splits: + return None + else: + return user_splits if user_splits else author_splits + + +def _get_allowed_subsets(config, **kwargs): + user_subsets = _parse_subset_kwargs(**kwargs) + author_subsets = config._allowed_subsets + if not user_subsets and not author_subsets: + return None + else: + return user_subsets if user_subsets else author_subsets + + +def _is_valid_split_subset_pair( + split, subset, allowed_splits, allowed_subsets +): + if allowed_splits is not None and split not in allowed_splits: + return False + if allowed_subsets is not None and subset not in allowed_subsets: + return False + return True + + +def _get_label_field_names_and_types(config): + label_field_names, label_types = [], [] + label_fields = config.label_fields + if label_fields is None: + return label_field_names, label_types + + for label_type, fields in label_fields.items(): + if isinstance(fields, str): + label_field_names.append(fields) + label_types.append(label_type) + elif isinstance(fields, list): + label_field_names.extend(fields) + label_types.extend([label_type] * len(fields)) + + return label_field_names, label_types + + +def _get_parquet_dataset_features(repo_id, split, subset, revision=None): + api_url = f"{DATASETS_SERVER_URL}/info?dataset={repo_id.replace('/', '%2F')}&config={subset}&split={split}]" + if revision is not None: + api_url += f"&revision={revision}" + + response = requests.get(api_url) + features = response.json()["dataset_info"]["features"] + return features + + +def _get_num_rows(repo_id, split, subset, revision=None): + api_url = f"{DATASETS_SERVER_URL}/info?dataset={repo_id.replace('/', '%2F')}&config={subset}&split={split}]" + if revision is not None: + api_url += f"&revision={revision}" + + response = requests.get(api_url) + splits = response.json()["dataset_info"]["splits"] + return splits[split]["num_examples"] + + +def _build_rows_request_url( + repo_id, split=None, subset="default", revision=None, offset=0, length=100 +): + url = f"{DATASETS_SERVER_URL}/rows?dataset={repo_id.replace('/', '%2F')}" + if split is not None: + url += f"&split={split}" + if subset is not None: + url += f"&config={subset}" + if revision is not None: + url += f"&revision={revision}" + url += f"&offset={offset}&length={length}" + return url + + +def _get_rows( + repo_id, split, subset, start_index=0, end_index=100, revision=None +): + length = end_index - start_index + url = _build_rows_request_url( + repo_id, split, subset, revision, offset=start_index, length=length + ) + response = requests.get(url) + return response.json()["rows"] + + +def _build_media_field_converter( + media_field_key, media_field_name, feature, download_dir +): + def convert_media_field(sample_dict, row): + row_content = row["row"] + row_index = row["row_idx"] + + filename = f"{media_field_name}_{row_index}.png" + filepath = os.path.join(download_dir, filename) + + if feature["_type"] == "Image": + url = row_content[media_field_name]["src"] + else: + url = row_content[media_field_name] + + try: + ## create the file if it doesn't exist + if not os.path.exists(filepath): + Image.open(requests.get(url, stream=True).raw).save(filepath) + sample_dict[media_field_key] = filepath + except: + logger.warning(f"Failed to download image from {url}") + + return convert_media_field + + +def _get_image_shape(image_path): + with Image.open(image_path) as img: + return img.size + + +def _get_detection_label_field_name(feature): + for key, value in feature["feature"].items(): + if value["_type"] == "ClassLabel": + return key + return None + + +def _get_bounding_box_field_name(feature): + for key, value in feature["feature"].items(): + if value["_type"] == "Sequence" and value["length"] == 4: + return key + return None + + +def _convert_bounding_box(hf_bbox, img_size): + x, y, w, h = hf_bbox + if all([0 <= c <= 1 for c in [x, y, w, h]]): + return hf_bbox + else: + return [ + x / img_size[0], + y / img_size[1], + w / img_size[0], + h / img_size[1], + ] + + +def _build_label_field_converter( + field_name, field_type, feature, config, download_dir +): + def convert_classification_field(sample_dict, row): + row_content = row["row"] + label_index = row_content[field_name] + label = (feature["names"][label_index],) + if isinstance(label, tuple): + label = label[0] + sample_dict[field_name] = fol.Classification(label=str(label)) + + def convert_detection_field(sample_dict, row): + img_w, img_h = _get_image_shape(sample_dict["filepath"]) + + feature_content = row["row"][field_name] + det_keys = list(feature["feature"].keys()) + bbox_key = _get_bounding_box_field_name(feature) + det_label_key = _get_detection_label_field_name(feature) + + num_dets = len(feature_content[det_label_key]) + + detections = [] + for i in range(num_dets): + label = feature_content[det_label_key][i] + bounding_box = feature_content[bbox_key][i] + + bounding_box = _convert_bounding_box(bounding_box, (img_w, img_h)) + det_dict = { + "label": feature["feature"][det_label_key]["names"][label], + "bounding_box": bounding_box, + } + for key in det_keys: + if ( + key not in [bbox_key, det_label_key] + and key not in FIFTYONE_BUILTIN_FIELDS + ): + det_dict[key] = feature_content[key][i] + + detections.append(fol.Detection(**det_dict)) + + sample_dict[field_name] = fol.Detections(detections=detections) + + def convert_mask_field(sample_dict, row): + row_content = row["row"] + row_index = row["row_idx"] + filename = f"{field_name}_{row_index}.png" + filepath = os.path.join(download_dir, filename) + + if feature["_type"] == "Image": + url = row_content[field_name]["src"] + else: + url = row_content[field_name] + + try: + ## create the file if it doesn't exist + if not os.path.exists(filepath): + Image.open(requests.get(url, stream=True).raw).save(filepath) + + sample_dict[field_name] = fol.Segmentation(mask_path=filepath) + except: + logger.warning(f"Failed to download mask from {url}") + + def convert_label_field(sample_dict, row): + pass + + if field_type == "classification": + return convert_classification_field + elif "detection" in field_type: + return convert_detection_field + elif "mask" in field_type: + return convert_mask_field + + return convert_label_field + + +def _build_dtype_field_converter(field_name, feature, config): + def dont_convert(sample_dict, row): + pass + + def convert_dtype_field(sample_dict, row): + row_content = row["row"] + fo_field_name = field_name + if field_name in FIFTYONE_BUILTIN_FIELDS: + fo_field_name = f"hf_{field_name}" + sample_dict[fo_field_name] = row_content[field_name] + + if ( + feature["_type"] == "Value" + and feature["dtype"] not in SUPPORTED_DTYPES + ): + return dont_convert + elif ( + feature["_type"] == "Sequence" + and feature["feature"]["dtype"] not in SUPPORTED_DTYPES + ): + logger.warning( + f"Field {field_name} has dtype {feature['dtype']} which is not supported by fiftyone" + ) + return dont_convert + else: + return convert_dtype_field + + +def _build_parquet_to_fiftyone_conversion(config, split, subset, **kwargs): + feature_converters = {} + + features = _get_parquet_dataset_features( + config._repo_id, split, subset, revision=config._revision + ) + + media_field_names = list(set(config.media_fields.values())) + media_field_keys = list(config.media_fields.keys()) + lf_names, lf_types = _get_label_field_names_and_types(config) + + download_dir = _get_download_dir( + config._repo_id, split=split, subset=subset, **kwargs + ) + + ## Media field handling + for media_field_key in media_field_keys: + media_field_name = config.media_fields[media_field_key] + feature = features[media_field_name] + feature_converters[media_field_name] = _build_media_field_converter( + media_field_key, media_field_name, feature, download_dir + ) + + ## Label field handling + for lfn, lft in zip(lf_names, lf_types): + feature = features[lfn] + feature_converters[lfn] = _build_label_field_converter( + lfn, lft.replace("_fields", ""), feature, config, download_dir + ) + + for feature_name, feature in features.items(): + if feature_name in media_field_names or feature_name in lf_names: + continue + feature_converters[feature_name] = _build_dtype_field_converter( + feature_name, feature, config + ) + + return feature_converters + + +def _add_parquet_subset_to_dataset(dataset, config, split, subset, **kwargs): + feature_converters = _build_parquet_to_fiftyone_conversion( + config, split, subset + ) + + num_rows = _get_num_rows( + config._repo_id, split, subset, revision=config._revision + ) + max_samples = kwargs.get("max_samples", None) + if max_samples is not None: + num_rows = min(num_rows, max_samples) + + batch_size = min( + kwargs.get("batch_size", DATASETS_MAX_BATCH_SIZE), + DATASETS_MAX_BATCH_SIZE, + ) + if ( + kwargs.get("batch_size", None) is not None + and batch_size != kwargs["batch_size"] + ): + logger.debug( + f"Batch size {kwargs['batch_size']} is larger than the maximum batch size {DATASETS_MAX_BATCH_SIZE}. Using {DATASETS_MAX_BATCH_SIZE} instead" + ) + + logger.info( + f"Adding {num_rows} samples to dataset {dataset.name} from {config.name} ({split}, {subset}) in batch sizes of {batch_size}..." + ) + + tags = [split] + if subset != "default" and subset != config._repo_id: + tags.append(subset) + + for start_idx in range(0, num_rows, batch_size): + end_idx = min(start_idx + batch_size, num_rows) + + rows = _get_rows( + config._repo_id, + split, + subset, + start_index=start_idx, + end_index=end_idx, + revision=config._revision, + ) + + samples = [] + for row in rows: + sample_dict = {} + for convert in feature_converters.values(): + convert(sample_dict, row) + + sample_dict["row_idx"] = row["row_idx"] + sample_dict["tags"] = tags + sample = Sample(**sample_dict) + samples.append(sample) + dataset.add_samples(samples) + + +def _configure_dataset_media_fields(dataset, config): + media_fields = config.media_fields + media_field_keys = list(media_fields.keys()) + if len(media_field_keys) > 1: + dataset.app_config_media_fields = media_field_keys + if "thumbnail_path" in media_field_keys: + dataset.app_config.grid_media_field = "thumbnail_path" + dataset.save() + + +def _add_dataset_metadata(dataset, config): + dataset.tags = config.tags + description = config.description + if description is not None: + dataset.description = description + + dataset.info["source"] = "Hugging Face Hub" + dataset.info["repo_id"] = config._repo_id + if config.license is not None: + dataset.info["license"] = config.license + if config._revision is not None: + dataset.info["revision"] = config._revision + dataset.save() + + +def _load_parquet_files_dataset_from_config(config, **kwargs): + logger.info("Loading parquet files dataset from config") + allowed_splits = _get_allowed_splits(config, **kwargs) + allowed_subsets = _get_allowed_subsets(config, **kwargs) + if "splits" in kwargs: + kwargs.pop("splits") + if "split" in kwargs: + kwargs.pop("split") + + overwrite = kwargs.get("overwrite", False) + persistent = kwargs.get("persistent", False) + + split_subset_pairs = _get_split_subset_pairs(config) + + name_kwarg = kwargs.get("name", None) + if name_kwarg is not None: + name = name_kwarg + else: + name = config.name + max_samples = kwargs.get("max_samples", None) + if max_samples is not None: + name += f"-{max_samples}" + + dataset = fod.Dataset( + name=name, + persistent=persistent, + overwrite=overwrite, + ) + + for split, subset in split_subset_pairs: + if not _is_valid_split_subset_pair( + split, subset, allowed_splits, allowed_subsets + ): + continue + + _add_parquet_subset_to_dataset( + dataset, config, split, subset, **kwargs + ) + + _configure_dataset_media_fields(dataset, config) + _add_dataset_metadata(dataset, config) + return dataset From cadc1be56147378a4f351a377fb4093bd9a8a2c3 Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Sun, 24 Mar 2024 21:42:13 -0700 Subject: [PATCH 02/65] always add filepath to sample dict --- fiftyone/utils/hf_hub.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fiftyone/utils/hf_hub.py b/fiftyone/utils/hf_hub.py index 6d518f1004..698012a388 100644 --- a/fiftyone/utils/hf_hub.py +++ b/fiftyone/utils/hf_hub.py @@ -411,11 +411,11 @@ def convert_media_field(sample_dict, row): else: url = row_content[media_field_name] + sample_dict[media_field_key] = filepath try: ## create the file if it doesn't exist if not os.path.exists(filepath): Image.open(requests.get(url, stream=True).raw).save(filepath) - sample_dict[media_field_key] = filepath except: logger.warning(f"Failed to download image from {url}") From 7214599d9d5eb3ac7c08e414e98b5a6cd1f7673f Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Mon, 25 Mar 2024 10:23:18 -0700 Subject: [PATCH 03/65] image shape util usage --- fiftyone/utils/hf_hub.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/fiftyone/utils/hf_hub.py b/fiftyone/utils/hf_hub.py index 698012a388..9183bb3128 100644 --- a/fiftyone/utils/hf_hub.py +++ b/fiftyone/utils/hf_hub.py @@ -13,6 +13,7 @@ from fiftyone.core.config import Config import fiftyone.core.dataset as fod import fiftyone.core.labels as fol +import fiftyone.core.metadata as fom from fiftyone.core.sample import Sample import fiftyone.core.utils as fou @@ -423,8 +424,8 @@ def convert_media_field(sample_dict, row): def _get_image_shape(image_path): - with Image.open(image_path) as img: - return img.size + metadata = fom.ImageMetadata.build_for(image_path) + return (metadata.width, metadata.height) def _get_detection_label_field_name(feature): From 8eaf809bef53df217d86e37f343dfc404e47cf12 Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Mon, 25 Mar 2024 11:02:51 -0700 Subject: [PATCH 04/65] change load_from_hub kwargs to named --- fiftyone/utils/hf_hub.py | 54 +++++++++++++++++++++++++++++----------- 1 file changed, 40 insertions(+), 14 deletions(-) diff --git a/fiftyone/utils/hf_hub.py b/fiftyone/utils/hf_hub.py index 9183bb3128..c1b67ab1ba 100644 --- a/fiftyone/utils/hf_hub.py +++ b/fiftyone/utils/hf_hub.py @@ -39,28 +39,54 @@ logger = logging.getLogger(__name__) -def load_from_hub(repo_id, revision=None, **kwargs): +def load_from_hub( + repo_id, + revision=None, + split=None, + splits=None, + subset=None, + subsets=None, + max_samples=None, + batch_size=None, + overwrite=False, + persistent=False, + name=None, + config_file=None, + **kwargs, +): """ Load a dataset from the Hugging Face Hub into FiftyOne. Args: repo_id: the Hugging Face Hub identifier of the dataset - revision: the revision of the dataset to load - **kwargs: optional keyword arguments - split: the split of the dataset to load - splits: the splits of the dataset to load - subset: the subset of the dataset to load - subsets: the subsets of the dataset to load - max_samples: the maximum number of samples to load - batch_size: the batch size to use when loading samples - overwrite (True): whether to overwrite an existing dataset with the same name - persistent (False): whether the dataset should be persistent - name: the name of the dataset to create - config_file: the path to a config file to use to load the dataset, - if the repo does not have a fiftyone.yml file + revision (None): the revision of the dataset to load + split (None): the split of the dataset to load + splits (None): the splits of the dataset to load + subset (None): the subset of the dataset to load + subsets (None): the subsets of the dataset to load + max_samples (None): the maximum number of samples to load + batch_size (None): the batch size to use when loading samples + overwrite (True): whether to overwrite an existing dataset with the same name + persistent (False): whether the dataset should be persistent + name (None): the name of the dataset to create + config_file (None): the path to a config file to use to load the dataset, + if the repo does not have a fiftyone.yml file + **kwargs: optional keyword arguments — for future compatibility Returns: a FiftyOne Dataset """ + + kwargs["splits"] = splits + kwargs["split"] = split + kwargs["subsets"] = subsets + kwargs["subset"] = subset + kwargs["max_samples"] = max_samples + kwargs["batch_size"] = batch_size + kwargs["overwrite"] = overwrite + kwargs["persistent"] = persistent + kwargs["name"] = name + kwargs["config_file"] = config_file + config = _get_dataset_metadata(repo_id, revision=revision, **kwargs) if config is None: raise ValueError(f"Could not find fiftyone metadata for {repo_id}") From 558497ab0c65de6f2f543e1ea7b2ed3bfea0653f Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Mon, 25 Mar 2024 11:13:17 -0700 Subject: [PATCH 05/65] robust label field kwarg handling --- fiftyone/utils/hf_hub.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/fiftyone/utils/hf_hub.py b/fiftyone/utils/hf_hub.py index c1b67ab1ba..176e8cc9cb 100644 --- a/fiftyone/utils/hf_hub.py +++ b/fiftyone/utils/hf_hub.py @@ -184,13 +184,13 @@ def __init__(self, **kwargs): default_media_fields: the default media fields of the dataset additional_media_fields: the additional media fields of the dataset """ - self.label_fields = kwargs.get("label_fields", None) self.media_type = kwargs.get("media_type", DEFAULT_MEDIA_TYPE) # self.detection_format = kwargs.get("detection_format", None) self._build_name(kwargs) # self._build_mask_targets(kwargs) self._build_media_fields_dict(kwargs) + self._build_label_fields_dict(kwargs) self._build_allowed_splits(kwargs) self._build_allowed_subsets(kwargs) super().__init__(**kwargs) @@ -217,6 +217,14 @@ def _build_media_fields_dict(self, kwargs): media_fields_dict.update(additional_media_fields) self.media_fields = media_fields_dict + def _build_label_fields_dict(self, kwargs): + self.label_fields = kwargs.get("label_fields", {}) + label_types = ("classification", "detection", "mask") + for label_type in label_types: + label_fields = kwargs.get(f"{label_type}_fields", None) + if label_fields is not None: + self.label_fields[label_type] = label_fields.split(",") + # def _build_mask_targets(self, kwargs): # self.mask_targets = kwargs.get("mask_targets", None) # if self.mask_targets is not None and isinstance(self.mask_targets, str): @@ -710,10 +718,10 @@ def _load_parquet_files_dataset_from_config(config, **kwargs): logger.info("Loading parquet files dataset from config") allowed_splits = _get_allowed_splits(config, **kwargs) allowed_subsets = _get_allowed_subsets(config, **kwargs) - if "splits" in kwargs: - kwargs.pop("splits") - if "split" in kwargs: - kwargs.pop("split") + + for key in ["splits", "split", "subsets", "subset"]: + if key in kwargs: + kwargs.pop(key) overwrite = kwargs.get("overwrite", False) persistent = kwargs.get("persistent", False) From 80b946e234953d5d87ee56a4b5556cc1bfec435f Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Mon, 25 Mar 2024 11:34:37 -0700 Subject: [PATCH 06/65] enable config spec through kwargs --- fiftyone/utils/hf_hub.py | 37 +++++++++++++++++++++++++++++++------ 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/fiftyone/utils/hf_hub.py b/fiftyone/utils/hf_hub.py index 176e8cc9cb..38b0197fc1 100644 --- a/fiftyone/utils/hf_hub.py +++ b/fiftyone/utils/hf_hub.py @@ -211,7 +211,14 @@ def _build_allowed_subsets(self, kwargs): def _build_media_fields_dict(self, kwargs): media_fields_dict = kwargs.get("default_media_fields", {}) if media_fields_dict.get("filepath", None) is None: - media_fields_dict["filepath"] = DEFAULT_IMAGE_FILEPATH_FEATURE + media_fields_dict["filepath"] = kwargs.get( + "filepath", DEFAULT_IMAGE_FILEPATH_FEATURE + ) + if ( + media_fields_dict.get("thumbnail_path", None) is None + and kwargs.get("thumbnail_path", None) is not None + ): + media_fields_dict["thumbnail_path"] = kwargs["thumbnail_path"] additional_media_fields = kwargs.get("additional_media_fields", {}) media_fields_dict.update(additional_media_fields) @@ -223,7 +230,10 @@ def _build_label_fields_dict(self, kwargs): for label_type in label_types: label_fields = kwargs.get(f"{label_type}_fields", None) if label_fields is not None: - self.label_fields[label_type] = label_fields.split(",") + if isinstance(label_fields, str): + self.label_fields[label_type] = label_fields.split(",") + elif isinstance(label_fields, list): + self.label_fields[label_type] = label_fields # def _build_mask_targets(self, kwargs): # self.mask_targets = kwargs.get("mask_targets", None) @@ -239,8 +249,19 @@ def _build_label_fields_dict(self, kwargs): # self.mask_targets = json.load(f) +def _parse_format_string(format_str): + if "parquet" in format_str.lower(): + return "ParquetFilesDataset" + else: + return format_str + + def _build_config(config_dict): format = config_dict.get("format", None) + if format is None: + raise ValueError("Dataset config must have a format key") + + format = _parse_format_string(format) if format == "ParquetFilesDataset": return HFHubParquetFilesDatasetConfig(**config_dict) else: @@ -274,11 +295,15 @@ def _get_dataset_metadata(repo_id, revision=None, **kwargs): config_file = hfh.hf_hub_download(**all_kwargs) break - if config_file is None: + if config_file is None and "format" not in kwargs: return None - - with open(config_file, "r") as f: - config_dict = yaml.safe_load(f) + elif config_file is None: + config_dict = kwargs + config_dict.update(**common_kwargs) + config_dict["repo_id"] = repo_id + else: + with open(config_file, "r") as f: + config_dict = yaml.safe_load(f) config_dict.update(**all_kwargs) return _build_config(config_dict) From 0de712585308286c723b4e5517e6b5c39882300c Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Mon, 25 Mar 2024 11:59:19 -0700 Subject: [PATCH 07/65] Speedup media download with threadpools --- fiftyone/utils/hf_hub.py | 44 ++++++++++++++++++++++++++++++++++------ 1 file changed, 38 insertions(+), 6 deletions(-) diff --git a/fiftyone/utils/hf_hub.py b/fiftyone/utils/hf_hub.py index 38b0197fc1..24e5b3bfa6 100644 --- a/fiftyone/utils/hf_hub.py +++ b/fiftyone/utils/hf_hub.py @@ -1,4 +1,5 @@ import json +from concurrent.futures import ThreadPoolExecutor import logging import os from packaging.requirements import Requirement @@ -39,6 +40,14 @@ logger = logging.getLogger(__name__) +def get_cache(): + g = globals() + if "_files_to_download" not in g: + g["_files_to_download"] = [] + + return g["_files_to_download"] + + def load_from_hub( repo_id, revision=None, @@ -456,6 +465,27 @@ def _get_rows( return response.json()["rows"] +def _download_image(url_and_filepath): + url, filepath = url_and_filepath + try: + if not os.path.exists(filepath): + with requests.get(url, stream=True) as r: + r.raise_for_status() + with open(filepath, "wb") as f: + for chunk in r.iter_content(chunk_size=8192): + f.write(chunk) + # Optionally, open and save the image to ensure it's valid + Image.open(filepath).save(filepath) + except Exception as e: + logger.warning(f"Failed to download image from {url}: {e}") + + +def _download_images_in_batch(urls_and_filepaths): + max_workers = fo.config.max_thread_pool_workers or os.cpu_count() + with ThreadPoolExecutor(max_workers=max_workers) as executor: + executor.map(_download_image, urls_and_filepaths) + + def _build_media_field_converter( media_field_key, media_field_name, feature, download_dir ): @@ -472,12 +502,9 @@ def convert_media_field(sample_dict, row): url = row_content[media_field_name] sample_dict[media_field_key] = filepath - try: - ## create the file if it doesn't exist - if not os.path.exists(filepath): - Image.open(requests.get(url, stream=True).raw).save(filepath) - except: - logger.warning(f"Failed to download image from {url}") + + # cache the file info to download later + get_cache().append((url, filepath)) return convert_media_field @@ -713,6 +740,11 @@ def _add_parquet_subset_to_dataset(dataset, config, split, subset, **kwargs): samples.append(sample) dataset.add_samples(samples) + ## Download images in batch + urls_and_filepaths = get_cache() + _download_images_in_batch(urls_and_filepaths) + get_cache().clear() + def _configure_dataset_media_fields(dataset, config): media_fields = config.media_fields From 72b381f824dff5a704e4f42f05892a4b8562eb4c Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Mon, 25 Mar 2024 12:28:38 -0700 Subject: [PATCH 08/65] adds support for loading from gated repos --- fiftyone/utils/hf_hub.py | 55 +++++++++++++++++++++++++++++++--------- 1 file changed, 43 insertions(+), 12 deletions(-) diff --git a/fiftyone/utils/hf_hub.py b/fiftyone/utils/hf_hub.py index 24e5b3bfa6..85b1c4d8ac 100644 --- a/fiftyone/utils/hf_hub.py +++ b/fiftyone/utils/hf_hub.py @@ -60,6 +60,7 @@ def load_from_hub( overwrite=False, persistent=False, name=None, + token=None, config_file=None, **kwargs, ): @@ -78,6 +79,7 @@ def load_from_hub( overwrite (True): whether to overwrite an existing dataset with the same name persistent (False): whether the dataset should be persistent name (None): the name of the dataset to create + token (None): the Hugging Face API token to use to download the dataset config_file (None): the path to a config file to use to load the dataset, if the repo does not have a fiftyone.yml file **kwargs: optional keyword arguments — for future compatibility @@ -94,6 +96,7 @@ def load_from_hub( kwargs["overwrite"] = overwrite kwargs["persistent"] = persistent kwargs["name"] = name + kwargs["token"] = token kwargs["config_file"] = config_file config = _get_dataset_metadata(repo_id, revision=revision, **kwargs) @@ -277,6 +280,22 @@ def _build_config(config_dict): return HFHubDatasetConfig(**config_dict) +def _instantiate_api(**kwargs): + token = kwargs.get("token", None) or os.getenv("HF_TOKEN") + if token is not None: + api = hfh.HfApi(token=token) + else: + api = hfh.HfApi() + return api + + +def _get_headers(**kwargs): + token = kwargs.get("token", None) or os.getenv("HF_TOKEN") + if token is not None: + return {"Authorization": f"Bearer {token}"} + return None + + def _get_dataset_metadata(repo_id, revision=None, **kwargs): """ Checks if a huggingface dataset can be converted to fiftyone. If it is, @@ -292,7 +311,7 @@ def _get_dataset_metadata(repo_id, revision=None, **kwargs): filename = os.path.basename(config_file) all_kwargs = dict(repo_id=repo_id, filename=filename, **common_kwargs) else: - api = hfh.HfApi() + api = _instantiate_api(**kwargs) for filename in DATASET_METADATA_FILENAMES: if api.file_exists(repo_id, filename, **common_kwargs): all_kwargs = dict( @@ -356,11 +375,12 @@ def _get_download_dir(repo_id, split=None, subset=None, **kwargs): return download_dir -def _get_split_subset_pairs(config): +def _get_split_subset_pairs(config, **kwargs): repo_id = config._repo_id revision = config._revision api_url = f"{DATASETS_SERVER_URL}/splits?dataset={repo_id.replace('/', '%2F')}&revision={revision}" - response = requests.get(api_url).json()["splits"] + headers = _get_headers(**kwargs) + response = requests.get(api_url, headers=headers).json()["splits"] return [(ss["split"], ss["config"]) for ss in response] @@ -420,22 +440,26 @@ def _get_label_field_names_and_types(config): return label_field_names, label_types -def _get_parquet_dataset_features(repo_id, split, subset, revision=None): +def _get_parquet_dataset_features( + repo_id, split, subset, revision=None, **kwargs +): api_url = f"{DATASETS_SERVER_URL}/info?dataset={repo_id.replace('/', '%2F')}&config={subset}&split={split}]" if revision is not None: api_url += f"&revision={revision}" - response = requests.get(api_url) + headers = _get_headers(**kwargs) + response = requests.get(api_url, headers=headers) features = response.json()["dataset_info"]["features"] return features -def _get_num_rows(repo_id, split, subset, revision=None): +def _get_num_rows(repo_id, split, subset, revision=None, **kwargs): api_url = f"{DATASETS_SERVER_URL}/info?dataset={repo_id.replace('/', '%2F')}&config={subset}&split={split}]" if revision is not None: api_url += f"&revision={revision}" - response = requests.get(api_url) + headers = _get_headers(**kwargs) + response = requests.get(api_url, headers=headers) splits = response.json()["dataset_info"]["splits"] return splits[split]["num_examples"] @@ -455,13 +479,20 @@ def _build_rows_request_url( def _get_rows( - repo_id, split, subset, start_index=0, end_index=100, revision=None + repo_id, + split, + subset, + start_index=0, + end_index=100, + revision=None, + **kwargs, ): length = end_index - start_index url = _build_rows_request_url( repo_id, split, subset, revision, offset=start_index, length=length ) - response = requests.get(url) + headers = _get_headers(**kwargs) + response = requests.get(url, headers=headers) return response.json()["rows"] @@ -648,7 +679,7 @@ def _build_parquet_to_fiftyone_conversion(config, split, subset, **kwargs): feature_converters = {} features = _get_parquet_dataset_features( - config._repo_id, split, subset, revision=config._revision + config._repo_id, split, subset, revision=config._revision, **kwargs ) media_field_names = list(set(config.media_fields.values())) @@ -690,7 +721,7 @@ def _add_parquet_subset_to_dataset(dataset, config, split, subset, **kwargs): ) num_rows = _get_num_rows( - config._repo_id, split, subset, revision=config._revision + config._repo_id, split, subset, revision=config._revision, **kwargs ) max_samples = kwargs.get("max_samples", None) if max_samples is not None: @@ -783,7 +814,7 @@ def _load_parquet_files_dataset_from_config(config, **kwargs): overwrite = kwargs.get("overwrite", False) persistent = kwargs.get("persistent", False) - split_subset_pairs = _get_split_subset_pairs(config) + split_subset_pairs = _get_split_subset_pairs(config, **kwargs) name_kwarg = kwargs.get("name", None) if name_kwarg is not None: From 3090f37a7836e73f8209cf2453ce203591d30e3e Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Mon, 25 Mar 2024 12:33:30 -0700 Subject: [PATCH 09/65] use threadpool to download masks --- fiftyone/utils/hf_hub.py | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/fiftyone/utils/hf_hub.py b/fiftyone/utils/hf_hub.py index 85b1c4d8ac..e4d0a40d62 100644 --- a/fiftyone/utils/hf_hub.py +++ b/fiftyone/utils/hf_hub.py @@ -625,14 +625,8 @@ def convert_mask_field(sample_dict, row): else: url = row_content[field_name] - try: - ## create the file if it doesn't exist - if not os.path.exists(filepath): - Image.open(requests.get(url, stream=True).raw).save(filepath) - - sample_dict[field_name] = fol.Segmentation(mask_path=filepath) - except: - logger.warning(f"Failed to download mask from {url}") + sample_dict[field_name] = fol.Segmentation(mask_path=filepath) + get_cache().append((url, filepath)) def convert_label_field(sample_dict, row): pass From 50d8debf4d4d6345dd7294690fa7367bf060d8ca Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Mon, 25 Mar 2024 12:38:34 -0700 Subject: [PATCH 10/65] default batch size config --- fiftyone/utils/hf_hub.py | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/fiftyone/utils/hf_hub.py b/fiftyone/utils/hf_hub.py index e4d0a40d62..243e3a1a87 100644 --- a/fiftyone/utils/hf_hub.py +++ b/fiftyone/utils/hf_hub.py @@ -721,17 +721,14 @@ def _add_parquet_subset_to_dataset(dataset, config, split, subset, **kwargs): if max_samples is not None: num_rows = min(num_rows, max_samples) - batch_size = min( - kwargs.get("batch_size", DATASETS_MAX_BATCH_SIZE), - DATASETS_MAX_BATCH_SIZE, - ) - if ( - kwargs.get("batch_size", None) is not None - and batch_size != kwargs["batch_size"] - ): + batch_size = kwargs.get("batch_size", DATASETS_MAX_BATCH_SIZE) + if batch_size is not None and batch_size > DATASETS_MAX_BATCH_SIZE: logger.debug( - f"Batch size {kwargs['batch_size']} is larger than the maximum batch size {DATASETS_MAX_BATCH_SIZE}. Using {DATASETS_MAX_BATCH_SIZE} instead" + f"Batch size {batch_size} is larger than the maximum batch size {DATASETS_MAX_BATCH_SIZE}. Using {DATASETS_MAX_BATCH_SIZE} instead" ) + batch_size = DATASETS_MAX_BATCH_SIZE + elif batch_size is None: + batch_size = DATASETS_MAX_BATCH_SIZE logger.info( f"Adding {num_rows} samples to dataset {dataset.name} from {config.name} ({split}, {subset}) in batch sizes of {batch_size}..." From 7225363f276cc18f8ff0db381131c17a1ca688fc Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Mon, 25 Mar 2024 14:53:48 -0700 Subject: [PATCH 11/65] adds push_to_hub() --- fiftyone/utils/hf_hub.py | 234 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 232 insertions(+), 2 deletions(-) diff --git a/fiftyone/utils/hf_hub.py b/fiftyone/utils/hf_hub.py index 243e3a1a87..035e2748b9 100644 --- a/fiftyone/utils/hf_hub.py +++ b/fiftyone/utils/hf_hub.py @@ -1,10 +1,11 @@ -import json from concurrent.futures import ThreadPoolExecutor +import json import logging import os from packaging.requirements import Requirement from PIL import Image import requests +import shutil import huggingface_hub as hfh import yaml @@ -17,6 +18,7 @@ import fiftyone.core.metadata as fom from fiftyone.core.sample import Sample import fiftyone.core.utils as fou +import fiftyone.types as fot DATASETS_SERVER_URL = "https://datasets-server.huggingface.co" DEFAULT_MEDIA_TYPE = "image" @@ -48,6 +50,113 @@ def get_cache(): return g["_files_to_download"] +def push_to_hub( + dataset, + repo_name, + description=None, + license=None, + tags=None, + private=True, + exist_ok=False, + dataset_type=None, + label_field=None, + frame_labels_field=None, + **data_card_kwargs, +): + """Push a FiftyOne dataset to the Hugging Face Hub. + + Args: + dataset: a FiftyOne dataset + repo_name: the name of the dataset repo to create + description (None): a description of the dataset + license (None): the license of the dataset + tags (None): a list of tags for the dataset + private (True): whether the repo should be private + exist_ok (False): if True, do not raise an error if repo already exists. + dataset_type (None): the type of the dataset to create + label_field (None): controls the label field(s) to export. Only + applicable to labeled datasets. Can be any of the following: + - the name of a label field to export + - a glob pattern of label field(s) to export + - a list or tuple of label field(s) to export + - a dictionary mapping label field names to keys to use when + constructing the label dictionaries to pass to the exporter + frame_labels_field (None): controls the frame label field(s) to export. + The "frames." prefix is optional. Only applicable to labeled video + datasets. Can be any of the following: + - the name of a frame label field to export + - a glob pattern of frame label field(s) to export + - a list or tuple of frame label field(s) to export + - a dictionary mapping frame label field names to keys to use when + constructing the frame label dictionaries to pass to the exporter + data_card_kwargs: additional keyword arguments to pass to the + `DatasetCard` constructor + """ + if dataset_type is None: + dataset_type = fot.FiftyOneDataset + + ### export the dataset to a temp local dir + tmp_dir = f"/tmp/{repo_name}" + + config_filepath = os.path.join(tmp_dir, "fiftyone.yml") + + dataset.export( + export_dir=tmp_dir, + dataset_type=dataset_type, + label_field=label_field, + frame_labels_field=frame_labels_field, + export_media=True, + ) + + if tags is not None: + if isinstance(tags, str): + tags = [t.strip() for t in tags.split(",")] + tags.extend(_get_dataset_tags(dataset)) + tags = sorted(tags) + else: + tags = _get_dataset_tags(dataset) + + _populate_config_file( + config_filepath, + dataset, + dataset_type=dataset_type, + description=description, + license=license, + tags=tags, + ) + + hf_username = hfh.whoami()["name"] + + ## Create the dataset repo + repo_id = os.path.join(hf_username, repo_name) + hfh.create_repo( + repo_id, repo_type="dataset", private=private, exist_ok=exist_ok + ) + + ## Upload the dataset to the repo + api = hfh.HfApi() + + api.upload_folder( + folder_path=tmp_dir, + repo_id=repo_id, + repo_type="dataset", + ) + + ## Create the dataset card + card = _create_dataset_card( + repo_id, + dataset, + description=description, + license=license, + tags=tags, + **data_card_kwargs, + ) + card.push_to_hub(repo_id) + + ## Clean up + shutil.rmtree(tmp_dir) + + def load_from_hub( repo_id, revision=None, @@ -150,6 +259,127 @@ def _get_fiftyone_version(self, kwargs): self.version = f"fiftyone{version}" +DATASET_CONTENT_TEMPLATE = """ + +This is a [FiftyOne](https://github.com/voxel51/fiftyone) dataset with {num_samples} samples. + +```plaintext +{dataset_printout} +``` + +## Installation +If you haven't already, install FiftyOne: + +```bash +pip install fiftyone +``` + +## Usage + +```python +import fiftyone as fo +import fiftyone.utils.huggingface_hub as fouh + +# Load the dataset +dataset = fouh.load_from_hub("{repo_id}") +## can also pass in any other dataset kwargs, like `name`, `persistent`, etc. + +# Launch the App +session = fo.launch_app(dataset) +``` +""" + + +def _populate_config_file( + config_filepath, + dataset, + dataset_type=None, + description=None, + license=None, + tags=None, +): + + config_dict = { + "name": dataset.name, + "format": dataset_type.__name__, + "fiftyone": { + "version": f">={foc.VERSION}", + }, + "tags": tags, + } + + if description is not None: + config_dict["description"] = description + if license is not None: + config_dict["license"] = license + + with open(config_filepath, "w") as f: + yaml.dump(config_dict, f) + + +def _get_dataset_tasks(dataset): + """Get the tasks that can be performed on the given dataset.""" + + def _has_label(ftype): + return ( + len(list(dataset.get_field_schema(embedded_doc_type=ftype).keys())) + > 0 + ) + + tasks = [] + if _has_label(fol.Classification) or _has_label(fol.Classifications): + tasks.append("image-classification") + if _has_label(fol.Detections): + tasks.append("object-detection") + if _has_label(fol.Segmentation): + tasks.append("semantic-segmentation") + return tasks + + +def _get_dataset_tags(dataset): + """Get the tags of the given dataset.""" + tags = ["fiftyone"] + tags.append(dataset.media_type) + tags.extend(_get_dataset_tasks(dataset)) + tags.extend(dataset.tags) + return sorted(list(set(tags))) + + +def _generate_dataset_summary(repo_id, dataset): + """Generate a summary of the given dataset.""" + return DATASET_CONTENT_TEMPLATE.format( + dataset_printout=dataset.__repr__(), + num_samples=len(dataset), + repo_id=repo_id, + ) + + +def _create_dataset_card( + repo_id, dataset, tags=None, license=None, **dataset_card_kwargs +): + """Create a `DatasetCard` for the given dataset.""" + + card_inputs = { + "language": "en", + "annotations_creators": [], + "task_categories": _get_dataset_tasks(dataset), + "task_ids": [], + "pretty_name": dataset.name, + "license": license, + "tags": tags, + } + + for key, value in dataset_card_kwargs.items(): + card_inputs[key] = value + + dataset_summary = _generate_dataset_summary(repo_id, dataset) + if dataset_summary is not None: + card_inputs["dataset_summary"] = dataset_summary + + card_data = hfh.DatasetCardData(**card_inputs) + return hfh.DatasetCard.from_template(card_data) + + def _parse_split_kwargs(**kwargs): splits = kwargs.get("splits", None) split = kwargs.get("split", None) @@ -298,7 +528,7 @@ def _get_headers(**kwargs): def _get_dataset_metadata(repo_id, revision=None, **kwargs): """ - Checks if a huggingface dataset can be converted to fiftyone. If it is, + Checks if a Hugging Face dataset can be converted to fiftyone. If it is, it returns the metadata config loaded from the dataset's metadata file. If config_file kwargs is provided, it will use that file to load the config From 36649817d1da9b6fe2c838829fb35eaa45575971 Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Mon, 25 Mar 2024 15:15:48 -0700 Subject: [PATCH 12/65] adds loading FiftyOne datasets from hub --- fiftyone/utils/hf_hub.py | 47 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 44 insertions(+), 3 deletions(-) diff --git a/fiftyone/utils/hf_hub.py b/fiftyone/utils/hf_hub.py index 035e2748b9..41c2fc6e63 100644 --- a/fiftyone/utils/hf_hub.py +++ b/fiftyone/utils/hf_hub.py @@ -619,9 +619,8 @@ def _load_dataset_from_config(config, **kwargs): if isinstance(config, HFHubParquetFilesDatasetConfig): return _load_parquet_files_dataset_from_config(config, **kwargs) else: - ## TODO: Implement this - pass - # return _load_fiftyone_dataset_from_config(config, **kwargs) + return _load_fiftyone_dataset_from_config(config, **kwargs) + # def _get_allowed_splits(config, **kwargs): @@ -1023,6 +1022,48 @@ def _add_dataset_metadata(dataset, config): dataset.save() +def _resolve_dataset_name(config, **kwargs): + name = kwargs.get("name", None) + if name is None: + name = config.name + return name + + +def _load_fiftyone_dataset_from_config(config, **kwargs): + logger.info("Loading parquet files dataset from config") + overwrite = kwargs.get("overwrite", False) + persistent = kwargs.get("persistent", False) + max_samples = kwargs.get("max_samples", None) + splits = _parse_split_kwargs(**kwargs) + + download_dir = _get_download_dir(config._repo_id, **kwargs) + hfh.snapshot_download( + repo_id=config._repo_id, repo_type="dataset", local_dir=download_dir + ) + + dataset_type_name = config._format.strip() + + dataset_type = getattr( + __import__("fiftyone.types", fromlist=[dataset_type_name]), + dataset_type_name, + ) + + dataset_kwargs = { + "persistent": persistent, + "overwrite": overwrite, + "max_samples": max_samples, + "splits": splits, + "dataset_type": dataset_type, + } + + name = _resolve_dataset_name(config, **kwargs) + if name is not None: + dataset_kwargs["name"] = name + + dataset = fod.Dataset.from_dir(download_dir, **dataset_kwargs) + return dataset + + def _load_parquet_files_dataset_from_config(config, **kwargs): logger.info("Loading parquet files dataset from config") allowed_splits = _get_allowed_splits(config, **kwargs) From b63cdbf7cc76fbf785f51eda880343aee0bf509b Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Mon, 25 Mar 2024 15:19:33 -0700 Subject: [PATCH 13/65] clean up --- fiftyone/utils/hf_hub.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/fiftyone/utils/hf_hub.py b/fiftyone/utils/hf_hub.py index 41c2fc6e63..9bb7beef27 100644 --- a/fiftyone/utils/hf_hub.py +++ b/fiftyone/utils/hf_hub.py @@ -263,10 +263,6 @@ def _get_fiftyone_version(self, kwargs): This is a [FiftyOne](https://github.com/voxel51/fiftyone) dataset with {num_samples} samples. -```plaintext -{dataset_printout} -``` - ## Installation If you haven't already, install FiftyOne: @@ -348,7 +344,6 @@ def _get_dataset_tags(dataset): def _generate_dataset_summary(repo_id, dataset): """Generate a summary of the given dataset.""" return DATASET_CONTENT_TEMPLATE.format( - dataset_printout=dataset.__repr__(), num_samples=len(dataset), repo_id=repo_id, ) @@ -591,7 +586,7 @@ def _get_download_dir(repo_id, split=None, subset=None, **kwargs): path_walk = [fo.config.default_dataset_dir, "huggingface", "hub", repo_id] - ## Note: for now don't support multiple revisions storage.. + ## Note: for now don't support multiple revisions storage if subset is not None: path_walk.append(subset) if split is not None: @@ -608,7 +603,11 @@ def _get_download_dir(repo_id, split=None, subset=None, **kwargs): def _get_split_subset_pairs(config, **kwargs): repo_id = config._repo_id revision = config._revision - api_url = f"{DATASETS_SERVER_URL}/splits?dataset={repo_id.replace('/', '%2F')}&revision={revision}" + api_url = ( + f"{DATASETS_SERVER_URL}/splits?dataset={repo_id.replace('/', '%2F')}" + ) + if revision is not None: + api_url += f"&revision={revision}" headers = _get_headers(**kwargs) response = requests.get(api_url, headers=headers).json()["splits"] return [(ss["split"], ss["config"]) for ss in response] From 74e214ce6bbe1f8cdaa7cf4737449ef6a2ad808c Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Tue, 26 Mar 2024 14:11:26 -0700 Subject: [PATCH 14/65] handle no-label classification case --- fiftyone/utils/hf_hub.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/fiftyone/utils/hf_hub.py b/fiftyone/utils/hf_hub.py index 9bb7beef27..8a28059eb5 100644 --- a/fiftyone/utils/hf_hub.py +++ b/fiftyone/utils/hf_hub.py @@ -806,7 +806,9 @@ def _build_label_field_converter( def convert_classification_field(sample_dict, row): row_content = row["row"] label_index = row_content[field_name] - label = (feature["names"][label_index],) + if label_index == -1: + return + label = feature["names"][label_index] if isinstance(label, tuple): label = label[0] sample_dict[field_name] = fol.Classification(label=str(label)) From 639a7c2abbc72301b31a317c774b99c0c980bc05 Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Thu, 28 Mar 2024 13:11:50 -0700 Subject: [PATCH 15/65] rename hf util file --- fiftyone/utils/{hf_hub.py => huggingface.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename fiftyone/utils/{hf_hub.py => huggingface.py} (100%) diff --git a/fiftyone/utils/hf_hub.py b/fiftyone/utils/huggingface.py similarity index 100% rename from fiftyone/utils/hf_hub.py rename to fiftyone/utils/huggingface.py From a539d767f78332afda4254b49b3ceae3a741a58e Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Thu, 28 Mar 2024 13:12:58 -0700 Subject: [PATCH 16/65] adds standard module docstring --- fiftyone/utils/huggingface.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/fiftyone/utils/huggingface.py b/fiftyone/utils/huggingface.py index 8a28059eb5..9c3535725e 100644 --- a/fiftyone/utils/huggingface.py +++ b/fiftyone/utils/huggingface.py @@ -1,3 +1,10 @@ +""" +Utilities for working with `Hugging Face `_. + +| Copyright 2017-2024, Voxel51, Inc. +| `voxel51.com `_ +| +""" from concurrent.futures import ThreadPoolExecutor import json import logging From 8d49821de77580cab47113c2118781d50a3d9400 Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Thu, 28 Mar 2024 13:14:20 -0700 Subject: [PATCH 17/65] removes detection_format and mask_targets for now --- fiftyone/utils/huggingface.py | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/fiftyone/utils/huggingface.py b/fiftyone/utils/huggingface.py index 9c3535725e..3e2ba3db4f 100644 --- a/fiftyone/utils/huggingface.py +++ b/fiftyone/utils/huggingface.py @@ -429,10 +429,8 @@ def __init__(self, **kwargs): additional_media_fields: the additional media fields of the dataset """ self.media_type = kwargs.get("media_type", DEFAULT_MEDIA_TYPE) - # self.detection_format = kwargs.get("detection_format", None) self._build_name(kwargs) - # self._build_mask_targets(kwargs) self._build_media_fields_dict(kwargs) self._build_label_fields_dict(kwargs) self._build_allowed_splits(kwargs) @@ -479,19 +477,6 @@ def _build_label_fields_dict(self, kwargs): elif isinstance(label_fields, list): self.label_fields[label_type] = label_fields - # def _build_mask_targets(self, kwargs): - # self.mask_targets = kwargs.get("mask_targets", None) - # if self.mask_targets is not None and isinstance(self.mask_targets, str): - # kwargs = { - # "repo_type": self._repo_type, - # "repo_id": self._repo_id, - # "revision": self._revision, - # "filename": self.mask_targets, - # } - # mask_targets_fp = hf_hub_download(**all_kwargs) - # with open(mask_targets_fp, "r") as f: - # self.mask_targets = json.load(f) - def _parse_format_string(format_str): if "parquet" in format_str.lower(): From cbafc83a8ea6dd6b485b73abe74053f768946d57 Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Thu, 28 Mar 2024 13:17:07 -0700 Subject: [PATCH 18/65] lazy import huggingface_hub --- fiftyone/utils/huggingface.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fiftyone/utils/huggingface.py b/fiftyone/utils/huggingface.py index 3e2ba3db4f..8da70704b6 100644 --- a/fiftyone/utils/huggingface.py +++ b/fiftyone/utils/huggingface.py @@ -14,7 +14,6 @@ import requests import shutil -import huggingface_hub as hfh import yaml import fiftyone as fo @@ -27,6 +26,10 @@ import fiftyone.core.utils as fou import fiftyone.types as fot +hfh = fou.lazy_import( + "huggingface_hub", callback=lambda: fou.ensure_package("huggingface_hub") +) + DATASETS_SERVER_URL = "https://datasets-server.huggingface.co" DEFAULT_MEDIA_TYPE = "image" DATASET_METADATA_FILENAMES = ("fiftyone.yml", "fiftyone.yaml") From 7fd50ba5f916be22ba28de9a53fbd5df44de0d1f Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Thu, 28 Mar 2024 13:18:17 -0700 Subject: [PATCH 19/65] remove unused import --- fiftyone/utils/huggingface.py | 1 - 1 file changed, 1 deletion(-) diff --git a/fiftyone/utils/huggingface.py b/fiftyone/utils/huggingface.py index 8da70704b6..c87983ad98 100644 --- a/fiftyone/utils/huggingface.py +++ b/fiftyone/utils/huggingface.py @@ -6,7 +6,6 @@ | """ from concurrent.futures import ThreadPoolExecutor -import json import logging import os from packaging.requirements import Requirement From 45aaefc833cb6d614b293368fc4e2849e35965f0 Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Thu, 28 Mar 2024 13:24:07 -0700 Subject: [PATCH 20/65] use TmpDir eta util --- fiftyone/utils/huggingface.py | 72 +++++++++++++++++------------------ 1 file changed, 34 insertions(+), 38 deletions(-) diff --git a/fiftyone/utils/huggingface.py b/fiftyone/utils/huggingface.py index c87983ad98..f29494eb60 100644 --- a/fiftyone/utils/huggingface.py +++ b/fiftyone/utils/huggingface.py @@ -11,10 +11,11 @@ from packaging.requirements import Requirement from PIL import Image import requests -import shutil import yaml +import eta.core.utils as etau + import fiftyone as fo import fiftyone.constants as foc from fiftyone.core.config import Config @@ -104,19 +105,6 @@ def push_to_hub( if dataset_type is None: dataset_type = fot.FiftyOneDataset - ### export the dataset to a temp local dir - tmp_dir = f"/tmp/{repo_name}" - - config_filepath = os.path.join(tmp_dir, "fiftyone.yml") - - dataset.export( - export_dir=tmp_dir, - dataset_type=dataset_type, - label_field=label_field, - frame_labels_field=frame_labels_field, - export_media=True, - ) - if tags is not None: if isinstance(tags, str): tags = [t.strip() for t in tags.split(",")] @@ -125,31 +113,42 @@ def push_to_hub( else: tags = _get_dataset_tags(dataset) - _populate_config_file( - config_filepath, - dataset, - dataset_type=dataset_type, - description=description, - license=license, - tags=tags, - ) + with etau.TempDir() as tmp_dir: + config_filepath = os.path.join(tmp_dir, "fiftyone.yml") - hf_username = hfh.whoami()["name"] + dataset.export( + export_dir=tmp_dir, + dataset_type=dataset_type, + label_field=label_field, + frame_labels_field=frame_labels_field, + export_media=True, + ) - ## Create the dataset repo - repo_id = os.path.join(hf_username, repo_name) - hfh.create_repo( - repo_id, repo_type="dataset", private=private, exist_ok=exist_ok - ) + _populate_config_file( + config_filepath, + dataset, + dataset_type=dataset_type, + description=description, + license=license, + tags=tags, + ) - ## Upload the dataset to the repo - api = hfh.HfApi() + hf_username = hfh.whoami()["name"] - api.upload_folder( - folder_path=tmp_dir, - repo_id=repo_id, - repo_type="dataset", - ) + ## Create the dataset repo + repo_id = os.path.join(hf_username, repo_name) + hfh.create_repo( + repo_id, repo_type="dataset", private=private, exist_ok=exist_ok + ) + + ## Upload the dataset to the repo + api = hfh.HfApi() + + api.upload_folder( + folder_path=tmp_dir, + repo_id=repo_id, + repo_type="dataset", + ) ## Create the dataset card card = _create_dataset_card( @@ -162,9 +161,6 @@ def push_to_hub( ) card.push_to_hub(repo_id) - ## Clean up - shutil.rmtree(tmp_dir) - def load_from_hub( repo_id, From 04639379eacecbf8f44a81de6230da1289effc26 Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Thu, 28 Mar 2024 13:35:41 -0700 Subject: [PATCH 21/65] fixes docstring indentation --- fiftyone/utils/huggingface.py | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/fiftyone/utils/huggingface.py b/fiftyone/utils/huggingface.py index f29494eb60..14bdbc5e4b 100644 --- a/fiftyone/utils/huggingface.py +++ b/fiftyone/utils/huggingface.py @@ -86,19 +86,19 @@ def push_to_hub( dataset_type (None): the type of the dataset to create label_field (None): controls the label field(s) to export. Only applicable to labeled datasets. Can be any of the following: - - the name of a label field to export - - a glob pattern of label field(s) to export - - a list or tuple of label field(s) to export - - a dictionary mapping label field names to keys to use when - constructing the label dictionaries to pass to the exporter + - the name of a label field to export + - a glob pattern of label field(s) to export + - a list or tuple of label field(s) to export + - a dictionary mapping label field names to keys to use when + constructing the label dictionaries to pass to the exporter frame_labels_field (None): controls the frame label field(s) to export. The "frames." prefix is optional. Only applicable to labeled video datasets. Can be any of the following: - - the name of a frame label field to export - - a glob pattern of frame label field(s) to export - - a list or tuple of frame label field(s) to export - - a dictionary mapping frame label field names to keys to use when - constructing the frame label dictionaries to pass to the exporter + - the name of a frame label field to export + - a glob pattern of frame label field(s) to export + - a list or tuple of frame label field(s) to export + - a dictionary mapping frame label field names to keys to use when + constructing the frame label dictionaries to pass to the exporter data_card_kwargs: additional keyword arguments to pass to the `DatasetCard` constructor """ @@ -178,8 +178,7 @@ def load_from_hub( config_file=None, **kwargs, ): - """ - Load a dataset from the Hugging Face Hub into FiftyOne. + """Load a dataset from the Hugging Face Hub into FiftyOne. Args: repo_id: the Hugging Face Hub identifier of the dataset From 047947a080c83f0e29eb8037125996932ab756d6 Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Thu, 28 Mar 2024 13:41:39 -0700 Subject: [PATCH 22/65] fix api docstring bullet list indent --- fiftyone/utils/huggingface.py | 48 +++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/fiftyone/utils/huggingface.py b/fiftyone/utils/huggingface.py index 14bdbc5e4b..e4ed72733c 100644 --- a/fiftyone/utils/huggingface.py +++ b/fiftyone/utils/huggingface.py @@ -52,14 +52,6 @@ logger = logging.getLogger(__name__) -def get_cache(): - g = globals() - if "_files_to_download" not in g: - g["_files_to_download"] = [] - - return g["_files_to_download"] - - def push_to_hub( dataset, repo_name, @@ -86,19 +78,23 @@ def push_to_hub( dataset_type (None): the type of the dataset to create label_field (None): controls the label field(s) to export. Only applicable to labeled datasets. Can be any of the following: - - the name of a label field to export - - a glob pattern of label field(s) to export - - a list or tuple of label field(s) to export - - a dictionary mapping label field names to keys to use when - constructing the label dictionaries to pass to the exporter + + - the name of a label field to export + - a glob pattern of label field(s) to export + - a list or tuple of label field(s) to export + - a dictionary mapping label field names to keys to use when + constructing the label dictionaries to pass to the exporter + frame_labels_field (None): controls the frame label field(s) to export. The "frames." prefix is optional. Only applicable to labeled video datasets. Can be any of the following: - - the name of a frame label field to export - - a glob pattern of frame label field(s) to export - - a list or tuple of frame label field(s) to export - - a dictionary mapping frame label field names to keys to use when - constructing the frame label dictionaries to pass to the exporter + + - the name of a frame label field to export + - a glob pattern of frame label field(s) to export + - a list or tuple of frame label field(s) to export + - a dictionary mapping frame label field names to keys to use when + constructing the frame label dictionaries to pass to the exporter + data_card_kwargs: additional keyword arguments to pass to the `DatasetCard` constructor """ @@ -290,6 +286,14 @@ def _get_fiftyone_version(self, kwargs): """ +def _get_cache(): + g = globals() + if "_files_to_download" not in g: + g["_files_to_download"] = [] + + return g["_files_to_download"] + + def _populate_config_file( config_filepath, dataset, @@ -752,7 +756,7 @@ def convert_media_field(sample_dict, row): sample_dict[media_field_key] = filepath # cache the file info to download later - get_cache().append((url, filepath)) + _get_cache().append((url, filepath)) return convert_media_field @@ -845,7 +849,7 @@ def convert_mask_field(sample_dict, row): url = row_content[field_name] sample_dict[field_name] = fol.Segmentation(mask_path=filepath) - get_cache().append((url, filepath)) + _get_cache().append((url, filepath)) def convert_label_field(sample_dict, row): pass @@ -982,9 +986,9 @@ def _add_parquet_subset_to_dataset(dataset, config, split, subset, **kwargs): dataset.add_samples(samples) ## Download images in batch - urls_and_filepaths = get_cache() + urls_and_filepaths = _get_cache() _download_images_in_batch(urls_and_filepaths) - get_cache().clear() + _get_cache().clear() def _configure_dataset_media_fields(dataset, config): From 4e2f6746ae270a1ce5aa04b0a4322354f4ce9a9e Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Thu, 28 Mar 2024 14:21:08 -0700 Subject: [PATCH 23/65] changing heading levels --- docs/source/integrations/huggingface.rst | 119 +++++++++++++++++------ 1 file changed, 88 insertions(+), 31 deletions(-) diff --git a/docs/source/integrations/huggingface.rst b/docs/source/integrations/huggingface.rst index f8d89a571e..29d0800a4e 100644 --- a/docs/source/integrations/huggingface.rst +++ b/docs/source/integrations/huggingface.rst @@ -10,10 +10,19 @@ FiftyOne integrates natively with Hugging Face's you can load, fine-tune, and run inference with your favorite Transformers models on your FiftyOne datasets with just a few lines of code! -.. _huggingface-setup: +FiftyOne also integrates with the `Hugging Face Hub `_, +so you can push datasets to and load datasets from the Hub with ease. + +.. _huggingface-transformers: + +Transformers Library +____________________ + + +.. _huggingface-transformers-setup: Setup -_____ +----- To get started with `Transformers `_, just install the @@ -21,12 +30,13 @@ To get started with .. code-block:: shell - pip install transformers + pip install -U transformers -.. _huggingface-inference: + +.. _huggingface-transformers-inference: Inference -_________ +--------- All `Transformers models `_ @@ -47,10 +57,10 @@ on the following sample dataset: dataset = foz.load_zoo_dataset("quickstart", max_samples=25) dataset.select_fields().keep_fields() -.. _huggingface-image-classification: +.. _huggingface-transformers-image-classification: Image classification --------------------- +^^^^^^^^^^^^^^^^^^^^ You can pass `transformers` classification models directly to FiftyOne dataset's @@ -164,10 +174,10 @@ model's name or path as a keyword argument: session = fo.launch_app(dataset) -.. _huggingface-object-detection: +.. _huggingface-transformers-object-detection: Object detection ----------------- +^^^^^^^^^^^^^^^^ You can pass `transformers` detection models directly to your FiftyOne dataset's @@ -277,10 +287,10 @@ name or path as a keyword argument: session = fo.launch_app(dataset) -.. _huggingface-semantic-segmentation: +.. _huggingface-transformers-semantic-segmentation: Semantic segmentation ---------------------- +^^^^^^^^^^^^^^^^^^^^^^ You can pass a `transformers` semantic segmentation model directly to your FiftyOne dataset's @@ -373,10 +383,10 @@ model's name or path as a keyword argument: session = fo.launch_app(dataset) -.. _huggingface-monocular-depth-estimation: +.. _huggingface-transformers-monocular-depth-estimation: Monocular depth estimation --------------------------- +^^^^^^^^^^^^^^^^^^^^^^^^^^ You can pass a `transformers` monocular depth estimation model directly to your FiftyOne dataset's :meth:`apply_model() ` @@ -423,10 +433,10 @@ model's name or path as a keyword argument: session = fo.launch_app(dataset) -.. _huggingface-zero-shot-classification: +.. _huggingface-transformers-zero-shot-classification: Zero-shot classification ------------------------- +^^^^^^^^^^^^^^^^^^^^^^^^ Zero-shot image classification models from `transformers` can be loaded directly from the :ref:`FiftyOne Model Zoo `! @@ -511,10 +521,10 @@ FiftyOne format: Some zero-shot models are compatible with multiple tasks, so it is recommended that you specify the task type when converting the model. -.. _huggingface-zero-shot-detection: +.. _huggingface-transformers-zero-shot-detection: Zero-shot object detection --------------------------- +^^^^^^^^^^^^^^^^^^^^^^^^^^ Zero-shot object detection models from `transformers` can be loaded directly from the :ref:`FiftyOne Model Zoo `! @@ -560,10 +570,10 @@ FiftyOne format: Some zero-shot models are compatible with multiple tasks, so it is recommended that you specify the task type when converting the model. -.. _huggingface-batch-inference: +.. _huggingface-transformers-batch-inference: Batch inference ---------------- +^^^^^^^^^^^^^^^ When using :meth:`apply_model() `, @@ -615,10 +625,10 @@ pattern below: See :ref:`this section ` for more information about performing batch updates to your FiftyOne datasets. -.. _huggingface-embeddings: +.. _huggingface-transformers-embeddings: Embeddings -__________ +---------- Any `transformers` model that supports image classification or object detection tasks — zero-shot or otherwise — can be used to compute embeddings for your @@ -633,10 +643,10 @@ samples. detection, or base model, FiftyOne will extract embeddings from the `last_hidden_state` of the model's base encoder. -.. _huggingface-image-embeddings: +.. _huggingface-transformers-image-embeddings: Image embeddings ----------------- +^^^^^^^^^^^^^^^^ To compute embeddings for images, you can pass the `transformers` model directly to your FiftyOne dataset's @@ -713,10 +723,10 @@ see if the model can be used to generate embeddings: image = Image.open(dataset.first().filepath) embedding = model.embed(np.array(image)) -.. _huggingface-text-embeddings: +.. _huggingface-transformers-text-embeddings: Text embeddings ---------------- +^^^^^^^^^^^^^^^ Zero-shot image classification and object detection models from `transformers` can also be used to compute embeddings for text: @@ -760,10 +770,10 @@ property: ) print(model.can_embed_prompts) # False -.. _huggingface-batch-embeddings: +.. _huggingface-transformers-batch-embeddings: Batch embeddings ----------------- +^^^^^^^^^^^^^^^^ You can request batch inference by passing the optional `batch_size` parameter to @@ -774,10 +784,10 @@ to dataset.compute_embeddings(model, embeddings_field="embeddings", batch_size=16) -.. _huggingface-patch-embeddings: +.. _huggingface-transformers-patch-embeddings: Patch embeddings ----------------- +^^^^^^^^^^^^^^^^ You can compute embeddings for image patches by passing `transformers` models directly to your FiftyOne dataset's @@ -804,10 +814,10 @@ method: embeddings_field="embeddings", ) -.. _huggingface-brain-methods: +.. _huggingface-transformers-brain-methods: Brain methods -_____________ +------------- Because `transformers` models can be used to compute embeddings, they can be passed to :ref:`Brain methods ` like @@ -891,3 +901,50 @@ model: view = dataset.sort_by_similarity("A photo of a dog", k=25) session = fo.launch_app(view) + + +.. _huggingface-hub: + +Hugging Face Hub +________________ + +FiftyOne integrates with the `Hugging Face Hub `_ +to allow you to push datasets to and load datasets from the Hub with ease. This +integration simplifies the process of sharing datasets with the machine learning +and computer vision community, and allows you to easily access and work with +many of the most popular vision and multimodal datasets available! + + +.. _huggingface-hub-setup: + +Setup +----- + +To push datasets to and load datasets from the `Hugging Face Hub `_, +you will need the `Hugging Face Hub Python client `_, +which you can install via PyPI: + +.. code-block:: shell + + pip install -U huggingface_hub + + +To push a dataset to the Hub, and in many cases to even access a dataset on +the hub, you will need to have a `Hugging Face Hub account `_. + +Hugging Face handles authentication via tokens, which you can obtain by +logging into your account and navigating to the +`Access Tokens `_ section of your profile. +At the bottom of this page, you can create a new token with write or read access +to the Hub. Once you have your token, you can set it as an environment variable: + +.. code-block:: shell + + export HF_TOKEN= + + +.. _huggingface-hub-push-dataset: + +Pushing datasets to the Hub +--------------------------- + From 750c75a3f4bcb10722f1959203a6c0ab7ef146a0 Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Thu, 28 Mar 2024 14:35:35 -0700 Subject: [PATCH 24/65] change default push to public --- fiftyone/utils/huggingface.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fiftyone/utils/huggingface.py b/fiftyone/utils/huggingface.py index e4ed72733c..c039fa9319 100644 --- a/fiftyone/utils/huggingface.py +++ b/fiftyone/utils/huggingface.py @@ -58,7 +58,7 @@ def push_to_hub( description=None, license=None, tags=None, - private=True, + private=False, exist_ok=False, dataset_type=None, label_field=None, From 025a61edfeea8349f99c2ef43bc0ed92c93e6887 Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Thu, 28 Mar 2024 15:09:28 -0700 Subject: [PATCH 25/65] basic push_to_hub docs --- docs/source/integrations/huggingface.rst | 94 +++++++++++++++++++++++- 1 file changed, 93 insertions(+), 1 deletion(-) diff --git a/docs/source/integrations/huggingface.rst b/docs/source/integrations/huggingface.rst index 29d0800a4e..76e7ee318c 100644 --- a/docs/source/integrations/huggingface.rst +++ b/docs/source/integrations/huggingface.rst @@ -940,7 +940,7 @@ to the Hub. Once you have your token, you can set it as an environment variable: .. code-block:: shell - export HF_TOKEN= + export HF_TOKEN="" .. _huggingface-hub-push-dataset: @@ -948,3 +948,95 @@ to the Hub. Once you have your token, you can set it as an environment variable: Pushing datasets to the Hub --------------------------- +If you are working with a dataset in FiftyOne and you want to quickly share it +with others, you can do so via the :func:`push_to_hub() ` +function, which takes two positional arguments: + +- the FiftyOne sample collection (a |Dataset| or |DatasetView|) +- the `repo_name`, which will be combined with your Hugging Face username or + organization name to construct the `repo_id` where the sample collection + will be uploaded. + + +As you will see, this simple function allows you to push datasets and filtered +views containing images, videos, point clouds, and other multimodal data to the +Hugging Face Hub, providing you with incredible flexibility in the process. + +.. _huggingface-hub-push-dataset-basic: + +Basic usage +^^^^^^^^^^^ + +The basic recipe for pushing a FiftyOne dataset to the Hub is just two lines of +code. As a starting point, let's use the example +:ref:`Quickstart dataset ` dataset from the +:ref:`FiftyOne Dataset Zoo `: + +.. code-block:: python + :linenos: + + import fiftyone as fo + import fiftyone.zoo as foz + + dataset = foz.load_zoo_dataset("quickstart") + + +To push the dataset to the Hugging Face Hub, all you need to do is call +:func:`push_to_hub() ` with the dataset +and the desired `repo_name`: + +.. code-block:: python + :linenos: + + import fiftyone.utils.huggingface as fouh + + fouh.push_to_hub(dataset, "my-quickstart-dataset") + + +When you run this code, a few things happen: + +- The dataset and its media files are exported to a temporary directory and + uploaded to the specified Hugging Face repo. +- A `fiftyone.yml` config file for the dataset is generated and uploaded to + the repo, which contains all of the necessary information so that the dataset + can be loaded with :func:`load_from_hub() `. +- A Hugging Face `Dataset Card `_ + for the dataset is auto-generated, providing tags, metadata, license info, and + a code snippet illustrating how to load the dataset from the hub. + + +Your dataset will be available on the Hub at the following URL: + +.. code-block:: shell + + https://huggingface.co/datasets//my-quickstart-dataset + + +Pushing a |DatasetView| to the Hub works in exactly the same way. For example, +if you want to push a filtered view of the `quickstart` dataset containing only +predictions with high confidence, you can do so by creating the view as usual, +and then passing that in to :func:`push_to_hub() `: + +.. code-block:: python + :linenos: + + import fiftyone.utils.huggingface as fouh + + # create view with high confidence predictions + view = dataset.filter_labels("predictions", F("confidence") > 0.95) + + # push view to the Hub as a new dataset + fouh.push_to_hub(view, "my-quickstart-high-conf") + +When you do so, note that the view is exported as a new dataset, and other +details from the original dataset are not included. + +.. _huggingface-hub-push-dataset-advanced: + +Advanced usage +^^^^^^^^^^^^^^ + +The :func:`push_to_hub() ` function +provides a number of optional arguments that allow you to customize how your +dataset is pushed to the Hub, including whether the dataset is public or private, +what license it is released under, and more. \ No newline at end of file From 97a7241744dda7e688b076afa5934d6b1c59b8d0 Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Thu, 28 Mar 2024 15:21:08 -0700 Subject: [PATCH 26/65] updating code snippet for loading dataset --- fiftyone/utils/huggingface.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fiftyone/utils/huggingface.py b/fiftyone/utils/huggingface.py index c039fa9319..4c4b2e3253 100644 --- a/fiftyone/utils/huggingface.py +++ b/fiftyone/utils/huggingface.py @@ -274,7 +274,7 @@ def _get_fiftyone_version(self, kwargs): ```python import fiftyone as fo -import fiftyone.utils.huggingface_hub as fouh +import fiftyone.utils.huggingface as fouh # Load the dataset dataset = fouh.load_from_hub("{repo_id}") From 8eb5a0ee8a18b9e77c8bd3996a22187f77f7a3e8 Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Thu, 28 Mar 2024 15:27:12 -0700 Subject: [PATCH 27/65] pushing to hub advanced usage section --- .../integrations/hf_push_advanced_example.jpg | Bin 0 -> 271845 bytes docs/source/integrations/huggingface.rst | 53 +++++++++++++++++- 2 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 docs/source/images/integrations/hf_push_advanced_example.jpg diff --git a/docs/source/images/integrations/hf_push_advanced_example.jpg b/docs/source/images/integrations/hf_push_advanced_example.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a0a38d43c92201ebf82fdb25f33507d91485f6a8 GIT binary patch literal 271845 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 IL@XjjJqRI9TUl}=J?@O<3)hSxsv3-! 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 function provides a number of optional arguments that allow you to customize how your dataset is pushed to the Hub, including whether the dataset is public or private, -what license it is released under, and more. \ No newline at end of file +what license it is released under, and more. + +FiftyOne's :func:`push_to_hub() ` +function supports the Hugging Face Hub API arguments `private` and `exist_ok`. + +- `private` (bool): Whether the dataset should be private. If `True`, the + dataset will be private and only accessible to you. If `False`, the dataset + will be public and accessible to anyone with the link. Defaults to `False`. +- `exist_ok` (bool): Whether to overwrite an existing dataset with the same + `repo_name`. If `True`, the existing dataset will be overwritten. If `False`, + an error will be raised if a dataset with the same `repo_name` already exists. + Defaults to `False`. + +For example, to push a dataset to the Hub as private, you can do the following: + +.. code-block:: python + :linenos: + + import fiftyone.utils.huggingface as fouh + + fouh.push_to_hub(dataset, "my-private-dataset", private=True) + + +You can also specify the `tags`, `license`, and `description` of the dataset, +all of which will propagate to the `fiftyone.yml` config file and the Hugging +Face Dataset Card. For example, to push a video action recognition dataset with +an MIT license and a description, you can do the following: + +.. code-block:: python + :linenos: + + import fiftyone as fo + import fiftyone.zoo as foz + import fiftyone.utils.huggingface as fouh + + dataset = foz.load_zoo_dataset("quickstart-video") + + fouh.push_to_hub( + dataset, + "my-action-recognition-dataset", + tags=["video", "action-recognition"], + license="mit", + description="A dataset of videos for action recognition tasks", + ) + + +The pushed dataset will be available on the Hub and the dataset page will look +like this: + +.. image:: /images/integrations/hf_push_advanced_example.jpg + :alt: Pushing a dataset to the Hugging Face Hub with advanced options + :align: center \ No newline at end of file From a9d6801dda0480a24f0e803d60e6df7aa91b76ae Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Thu, 28 Mar 2024 15:44:02 -0700 Subject: [PATCH 28/65] examples for advanced push section --- docs/source/integrations/huggingface.rst | 53 +++++++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/docs/source/integrations/huggingface.rst b/docs/source/integrations/huggingface.rst index 574c592026..0d807e6936 100644 --- a/docs/source/integrations/huggingface.rst +++ b/docs/source/integrations/huggingface.rst @@ -1090,4 +1090,55 @@ like this: .. image:: /images/integrations/hf_push_advanced_example.jpg :alt: Pushing a dataset to the Hugging Face Hub with advanced options - :align: center \ No newline at end of file + :align: center + + +.. note:: + + The `tags` argument can be a string or a list of strings. The tag `fiftyone` + is automatically added to all datasets pushed with FiftyOne, communicating + that the dataset was created with FiftyOne and can be loaded with the + :func:`load_from_hub() ` function. + + +The license is specified as a string. For a list of supported licenses, see the +`Hugging Face Hub documentation `_. + +The `description` argument can be used for whatever you like. When the dataset +is loaded from the Hub, this description will be accessible via the dataset's +:meth:`description ` property. + +Additionally, you can specify the "format" of the uploaded dataset. By default, +the format is the standard :ref:`FiftyOneDataset ` format, +but you can also specify the data is uploaded in any of these +:ref:`common formats `. For example, to push the +quickstart dataset in :ref:`COCO ` format, with a +Creative Commons Attribution 4.0 license, you can do the following: + +.. code-block:: python + :linenos: + + import fiftyone as fo + import fiftyone.zoo as foz + import fiftyone.utils.huggingface as fouh + import fiftyone.types as fot + + dataset = foz.load_zoo_dataset("quickstart") + dataset_type = fot.dataset_types.COCODetectionDataset + + fouh.push_to_hub( + dataset, + "quickstart-coco", + dataset_type=dataset_type, + license="cc-by-4.0", + label_fields="*" ### convert all label fields, not just ground truth + ) + + +.. note:: + + The `label_fields` argument is used to specify which label fields to convert + to the specified dataset type. By default when using some dataset formats, + only the `ground_truth` label field is converted. If you want to convert all + label fields, you can set `label_fields="*"`. If you want to convert specific + label fields, you can pass a list of field names. \ No newline at end of file From cc7f2c0295366a14aa5624ce92a6701483838728 Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Thu, 28 Mar 2024 16:24:22 -0700 Subject: [PATCH 29/65] loading from hub via local config docs --- docs/source/integrations/huggingface.rst | 105 ++++++++++++++++++++++- 1 file changed, 104 insertions(+), 1 deletion(-) diff --git a/docs/source/integrations/huggingface.rst b/docs/source/integrations/huggingface.rst index 0d807e6936..53118086a2 100644 --- a/docs/source/integrations/huggingface.rst +++ b/docs/source/integrations/huggingface.rst @@ -1141,4 +1141,107 @@ Creative Commons Attribution 4.0 license, you can do the following: to the specified dataset type. By default when using some dataset formats, only the `ground_truth` label field is converted. If you want to convert all label fields, you can set `label_fields="*"`. If you want to convert specific - label fields, you can pass a list of field names. \ No newline at end of file + label fields, you can pass a list of field names. + + +.. _huggingface-hub-load-dataset: + +Loading datasets from the Hub +----------------------------- + +To load a dataset from the Hugging Face Hub, you can use the +:func:`load_from_hub() ` function. +This function supports loading datasets in any of the +:ref:`common formats ` supported by FiftyOne, as well +as image-based datasets stored via `Parquet `_ files, +as is common with datasets from the +`datasets `_ library which have +been uploaded to the Hugging Face Hub. Below, we will walk through all of the +ways you can load datasets from the Hub. + +In its simplest usage, the :func:`load_from_hub() ` +function only requires the `repo_id` of the dataset you want to load. For example, +to load the :ref:`private dataset ` that +we pushed to the Hub earlier, you can do the following: + +.. code-block:: python + :linenos: + + import fiftyone.utils.huggingface as fouh + + dataset = fouh.load_from_hub("/my-private-dataset") + + +.. note:: + + As long as you have an environment variable `HF_TOKEN` set with your Hugging + Face token (with read access), you can load gated datasets that you have + access to from the Hub. + + +.. _huggingface-hub-load-dataset-from-repo-config: + +Loading datasets from repo configs +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +When you push a dataset to the Hub using +:func:`push_to_hub() `, a `fiftyone.yml` +config file is generated and uploaded to the repo. This file contains all of the +information necessary to load the dataset from the Hugging Face Hub. More +generally, any repo on the Hugging Face Hub that contains a `fiftyone.yml` or +`fiftyone.yaml` file (assuming the file is correctly formatted) can be loaded +using the :func:`load_from_hub() ` +function by passing the `repo_id` of the dataset, without needing to specify any +additional arguments. + +For example, to load the `quickstart` dataset that we pushed to the Hub earlier, + +.. code-block:: python + :linenos: + + import fiftyone.utils.huggingface as fouh + + dataset = fouh.load_from_hub("my-quickstart-dataset") + + +.. _huggingface-hub-load-dataset-from-local-config: + +Loading datasets from local configs +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +If the repo was uploaded to the Hugging Face Hub via FiftyOne's +:func:`push_to_hub() ` function, then +the `fiftyone.yml` config file will be generated and uploaded to the repo. +However, some common datasets like `mnist `_ +were uploaded to the Hub using the `datasets` library and do not contain a +`fiftyone.yml` or `fiftyone.yaml` file. If you know how the dataset is structured, +you can load the dataset by passing the path to a local yaml config file that +describes the dataset via the `config_file` keyword argument. + +For example, to load the `mnist` dataset from the Hub, you might have a local +yaml config file like this: + +.. code-block:: yaml + + format: ParquetFilesDataset + classification_fields: label + + +To load the dataset from the Hub, you can pass the `repo_id` of the dataset and +the path to the local yaml config file: + +.. code-block:: python + :linenos: + + import fiftyone.utils.huggingface as fouh + + dataset = fouh.load_from_hub( + "mnist", + config_file="/path/to/mnist.yml" + ) + + +For a comprehensive list of the supported fields in the yaml config file, see +here **TODO**. + + From edcbc4c93300e8aafea0421b33cce9fe4dad161a Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Thu, 28 Mar 2024 16:29:32 -0700 Subject: [PATCH 30/65] hub loading from kwargs docs --- docs/source/integrations/huggingface.rst | 33 ++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/docs/source/integrations/huggingface.rst b/docs/source/integrations/huggingface.rst index 53118086a2..28b73318fb 100644 --- a/docs/source/integrations/huggingface.rst +++ b/docs/source/integrations/huggingface.rst @@ -1245,3 +1245,36 @@ For a comprehensive list of the supported fields in the yaml config file, see here **TODO**. +.. _huggingface-hub-load-dataset-from-kwargs: + +Loading datasets with config kwargs +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +In addition to loading datasets from repo configs and local configs, you can +also load datasets from the Hub by passing the necessary config arguments +directly to :func:`load_from_hub() `. +This is useful when you want to load a dataset from the Hub that does not have +a `fiftyone.yml` or `fiftyone.yaml` file, and the structure of the dataset is +simple enough that you can specify the necessary arguments directly. + +For example, to load the `mnist` dataset from the Hub, you can pass the `format` +and `classification_fields` arguments directly: + +.. code-block:: python + :linenos: + + import fiftyone.utils.huggingface as fouh + + dataset = fouh.load_from_hub( + "mnist", + format="ParquetFilesDataset", + classification_fields="label" + ) + + +This will tell FiftyOne that the data is stored in Parquet files, and that the +`label` field should be treated as a classification field, to be converted into +a |Classification| field in the dataset. + + + From c6fe103257f2bd008920283f1bef97d10b7440da Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Thu, 28 Mar 2024 16:55:49 -0700 Subject: [PATCH 31/65] starting supported config fields section --- docs/source/integrations/huggingface.rst | 39 ++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/docs/source/integrations/huggingface.rst b/docs/source/integrations/huggingface.rst index 28b73318fb..0c09f4cb0d 100644 --- a/docs/source/integrations/huggingface.rst +++ b/docs/source/integrations/huggingface.rst @@ -1274,7 +1274,40 @@ and `classification_fields` arguments directly: This will tell FiftyOne that the data is stored in Parquet files, and that the `label` field should be treated as a classification field, to be converted into -a |Classification| field in the dataset. - - +a |Classification| label field in the dataset. + + +.. _huggingface-hub-load-dataset-config-kwargs: + +Supported config fields +^^^^^^^^^^^^^^^^^^^^^^^ + +Whether you are loading a dataset from a repo config, a local config file, or +passing the config arguments directly, you can specify the following fields: + +- `format` (str): The format of the dataset. This can be any of the + :ref:`common formats ` supported by FiftyOne — just + pass the name of the format as a string. For example, to load a dataset in the + :ref:`COCO ` format, you can pass + `format="COCODetectionDataset"`. To specify that the dataset is stored in + Parquet files, you can pass `format="ParquetFilesDataset"` (or simply + `format="parquet"` for short). This is the only required field. +- `name` (str): The name of the FiftyOne |Dataset| to be created. If the + `repo_id` is cumbersome, this can be used to specify a simpler default name. + For example, for this `sheep dataset `_ + rather than using the `repo_id` `keremberke/aerial-sheep-object-detection`, you + can specify `name="sheep-detection"`. +- `filepath` (str): In FiftyOne, `filepath` is + `a default field `_ + that is used to store the path to the primary media file for each sample in + the dataset. For Hugging Face parquet datasets, primary media fields for image + datasets are typically stored in the `image` columns, so this is where + FiftyOne's :func:`load_from_hub() ` + looks by default. If the primary media field is stored in a different column, + you can specify the column name with the key `filepath`. For example, the + `COYO-700M dataset `_ + has the primary media field referenced in the `url` column. Specifying + `filepath="url"` will tell FiftyOne to look in the `url` column for the + primary media file path. Images will be downloaded from the corresponding URLs + and saved to disk. From 75b997d050b938264dc65ae11cb678981630f06a Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Fri, 29 Mar 2024 10:59:49 -0700 Subject: [PATCH 32/65] documenting all supported config args --- docs/source/integrations/huggingface.rst | 68 +++++++++++++++++++++++- 1 file changed, 66 insertions(+), 2 deletions(-) diff --git a/docs/source/integrations/huggingface.rst b/docs/source/integrations/huggingface.rst index 0c09f4cb0d..6926976a5d 100644 --- a/docs/source/integrations/huggingface.rst +++ b/docs/source/integrations/huggingface.rst @@ -1283,7 +1283,16 @@ Supported config fields ^^^^^^^^^^^^^^^^^^^^^^^ Whether you are loading a dataset from a repo config, a local config file, or -passing the config arguments directly, you can specify the following fields: +passing the config arguments directly, you can specify a number of fields. + +Broadly speaking, these fields fall into three categories: format specification, +media field specification, and label field specification. + + +Let's look at these categories in more detail: + + +**Format specification**: - `format` (str): The format of the dataset. This can be any of the :ref:`common formats ` supported by FiftyOne — just @@ -1297,6 +1306,15 @@ passing the config arguments directly, you can specify the following fields: For example, for this `sheep dataset `_ rather than using the `repo_id` `keremberke/aerial-sheep-object-detection`, you can specify `name="sheep-detection"`. + + +**Media field specification**: + +While not all Parquet datasets contain media fields, all FiftyOne |Sample| objects +must be connected to at least one media file. The following fields can be used +to configure the media fields in the Hugging Face dataset that should be converted +to FiftyOne media fields: + - `filepath` (str): In FiftyOne, `filepath` is `a default field `_ that is used to store the path to the primary media file for each sample in @@ -1310,4 +1328,50 @@ passing the config arguments directly, you can specify the following fields: `filepath="url"` will tell FiftyOne to look in the `url` column for the primary media file path. Images will be downloaded from the corresponding URLs and saved to disk. - +- `thumbnail_path` (str): The field containing the path to a thumbnail image + for each sample in the dataset, if such a field exists. If a `thumbnail_path` + is specified, this media file will be shown in the sample grid in the FiftyOne + App. This can be useful for quickly visualizing the dataset when the primary + media field contains large (e.g., high-resolution) images. For more information + on thumbnail images, see :ref:`this section `. +- `additional_media_fields` (dict): If each sample has multiple associated media + files that you may want to visualize in the FiftyOne App, you can specify + these non-default media fields in the `additional_media_fields` dictionary, + where the keys are the column names in the Hugging Face dataset and the values + are the names of the fields in the FiftyOne |Dataset| that will store the + paths. Note that this is *not* the same as :ref:`grouped datasets `. + + +**Label field specification**: + +FiftyOne's Hugging Face Hub integration currently supports converting labels of +type |Classification|, |Detections|, and |Segmentation| from Hugging Face +Parquet datasets to FiftyOne label fields. The following fields can be used to +specify the label fields in the Hugging Face dataset that should be converted to +FiftyOne label fields: + +- `classification_fields` (str or list): The column or columns in the Hugging + Face dataset that should be converted to FiftyOne |Classification| label fields. + contain classification labels. For example, if the dataset contains a `label` + field that contains classification labels, you can specify + `classification_fields="label"`. If the dataset contains multiple + classification fields, you can specify them as a list, e.g., + `classification_fields=["label1", "label2"]`. This is not a required field, + and if the dataset does not contain classification labels, you can omit it. +- `detection_fields` (str or list): The column or columns in the Hugging Face + dataset that should be converted to FiftyOne |Detections| label fields. If the + dataset contains detection labels, you can specify the column name or names + here. For example, if the dataset contains a `detections` field that contains + detection labels, you can specify `detection_fields="detections"`. If the + dataset contains multiple detection fields, you can specify them as a list, + e.g., `detection_fields=["detections1", "detections2"]`. This is not a required + field, and if the dataset does not contain detection labels, you can omit it. +- `mask_fields` (str or list): The column or columns in the Hugging Face dataset + that should be converted to FiftyOne |Segmentation| label fields. The column + in the Hugging Face dataset must contain an image or the URL for an image that + can be used as a segmentation mask. If necessary, the images will be downloaded + and saved to disk. If the dataset contains mask labels, you can specify the + column name or names here. For example, if the dataset contains a `masks` field + that contains mask labels, you can specify `mask_fields="masks"`. This is not + a required field, and if the dataset does not contain mask labels, you can + omit it. \ No newline at end of file From cc64b7b97a0eac5be0cab6929c8778061147def1 Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Fri, 29 Mar 2024 11:20:16 -0700 Subject: [PATCH 33/65] documents split and subset config --- docs/source/integrations/huggingface.rst | 39 ++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/docs/source/integrations/huggingface.rst b/docs/source/integrations/huggingface.rst index 6926976a5d..7144482135 100644 --- a/docs/source/integrations/huggingface.rst +++ b/docs/source/integrations/huggingface.rst @@ -1306,7 +1306,34 @@ Let's look at these categories in more detail: For example, for this `sheep dataset `_ rather than using the `repo_id` `keremberke/aerial-sheep-object-detection`, you can specify `name="sheep-detection"`. - +- `subsets` (str or list): The subset or subsets of the Hugging Face dataset that + are *compatible* with this config, and are *available* to be loaded. In + Hugging Face, the "dataset" in a repo can contain multiple "subsets", which + may or may not have the same schema. Take the + `Street View House Numbers `_ dataset for + example. This dataset has two subsets: `"cropped_digits"` and `"full_numbers"`. + The `cropped_digits` subset contains classification labels, while the + `full_numbers` subset contains detection labels. A single config would not be + able to specify the schema for both subsets, so you can specify the subset you + want to load (or if you are the dataset author, which subset you want to *allow* + people to load in this way) with the `subsets` field. For example, to load the + `cropped_digits` subset of the SVHN dataset, you can pass + `subsets="cropped_digits"`. Note that this is not a required field, and by + default all subsets are loaded. Also note that subsets are distinct from splits + in the dataset, which are handled by the `splits` field (see below). +- `splits` (str or list): The split or splits of the Hugging Face dataset that + are *compatible* with this config, and are *available* to be loaded. As is + standard for machine learning, many datasets are split into training, validation, + and test sets. The specific names of these splits may vary from dataset to + dataset, but :func:`load_from_hub() ` + identifies the names of all splits and by default, will assume that all of + these splits are to be loaded. If you only want to load a specific split or + splits, you can specify them with the `splits` field. For example, to load the + training split of the `CIFAR10 `_ + dataset, you can pass `splits="train"`. If you want to load multiple splits, + you can pass them as a list, e.g., `splits=["train", "test"]`. Note that this + is not a required field, and by default all splits are loaded. + **Media field specification**: @@ -1374,4 +1401,12 @@ FiftyOne label fields: column name or names here. For example, if the dataset contains a `masks` field that contains mask labels, you can specify `mask_fields="masks"`. This is not a required field, and if the dataset does not contain mask labels, you can - omit it. \ No newline at end of file + omit it. + + +.. _huggingface-hub-load-dataset-download: + +Configuring the download process +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +When loading datasets from the Hugging Face Hub, FiftyOne will download the \ No newline at end of file From fc9cfa83a34f4992739be9e2d75343d3cbb3f3f8 Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Fri, 29 Mar 2024 11:46:18 -0700 Subject: [PATCH 34/65] documents download process params --- docs/source/integrations/huggingface.rst | 40 +++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/docs/source/integrations/huggingface.rst b/docs/source/integrations/huggingface.rst index 7144482135..743d9c597f 100644 --- a/docs/source/integrations/huggingface.rst +++ b/docs/source/integrations/huggingface.rst @@ -1409,4 +1409,42 @@ FiftyOne label fields: Configuring the download process ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -When loading datasets from the Hugging Face Hub, FiftyOne will download the \ No newline at end of file +When loading datasets from the Hugging Face Hub, FiftyOne will download the +*all* of the data specified by the `repo_id` and the config. If no splits or +subsets are listed in the config, this means that all samples across all splits +and subsets will be downloaded. This can be a time-consuming process, especially +for large datasets, and sometimes you may only want to download a fixed number +of samples to get started exploring the dataset. + +FiftyOne's :func:`load_from_hub() ` +function supports a variety of arguments that allow you to control the download +process, from the maximum number of samples to be downloaded to the batch size +to use when making requests to the Datasets Server. Here are the supported +arguments: + +- `max_samples` (int): The number of samples to download from the dataset. If + not specified, all samples will be downloaded. +- `batch_size` (int): The batch size to use when making requests to the Datasets + Server. Defaults to 100, which is the max batch size allowed by the Datasets + Server. +- `num_workers` (int): The number of worker to use when downloading + media files. If not specified, the number of workers will be resolved by + looking at your :ref:`FiftyOne Config `. +- `splits` (str or list): The split or splits of the Hugging Face dataset that + you want to download. This overrides the `splits` field in the config. +- `subsets` (str or list): The subset or subsets of the Hugging Face dataset + that you want to download. This overrides the `subsets` field in the config. +- `overwrite` (bool): Whether to overwrite existing an existing dataset with the + same name. If `True`, the existing dataset will be overwritten. If `False`, + an error will be raised if a dataset with the same name already exists. Defaults + to `False`. +- `persistent` (bool): Whether to persist the dataset to the underlying database + after it is loaded. If `True`, the dataset will be available for loading in + future FiftyOne sessions by passing the dataset's name into FiftyOne's + :func:`load_dataset() ` function. + Defaults to `False`. +- `revision` (str): The revision (specified by a commit hash to the Hugging Face + repo) of the dataset to load. If not specified, the latest revision will be + loaded. + + From 4c49b3275cdde92b87c9f0251881d0b3d51ebe37 Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Fri, 29 Mar 2024 12:13:21 -0700 Subject: [PATCH 35/65] documents loading classification datasets --- docs/source/integrations/huggingface.rst | 97 ++++++++++++++++++++++++ 1 file changed, 97 insertions(+) diff --git a/docs/source/integrations/huggingface.rst b/docs/source/integrations/huggingface.rst index 743d9c597f..4d14f450b0 100644 --- a/docs/source/integrations/huggingface.rst +++ b/docs/source/integrations/huggingface.rst @@ -1448,3 +1448,100 @@ arguments: loaded. +.. _huggingface-hub-load-dataset-basic-examples: + +Basic examples +^^^^^^^^^^^^^^ + +Okay, so :func:`load_from_hub() ` is +*very* powerful, and can be used in a *ton* of ways. All of this flexibility +can be a bit overwhelming, so let's walk through a few examples to show you how +easy it is in practice to load datasets from the Hugging Face Hub. + +.. note:: + + To make these downloads as fast as possible, we recommend setting the + `max_samples` argument to a reasonable number, like 1000, to get a feel for + the dataset. If you like what you see, you can always download more samples! + + +**Classification Datasets**: + +Let's start by loading the +`MNIST `_ dataset into FiftyOne. All you +need to do is pass the `repo_id` of the dataset — in this case `"mnist"` — to +:func:`load_from_hub() `, specify the +format as `"parquet"`, and specify the `classification_fields` as `"label"`: + + +.. code-block:: python + :linenos: + + import fiftyone.utils.huggingface as fouh + + dataset = fouh.load_from_hub( + "mnist", + format="parquet", + classification_fields="label", + max_samples=1000 + ) + + session = fo.launch_app(dataset) + + +The same exact syntax works for the `CIFAR-10 `_ +and `FashionMNIST `_ datasets, +which are also available on the Hub. In fact, you can load any of the following +classification datasets from the Hub using the same syntax, just by changing the +`repo_id`: + +- `CIFAR-10 `_ (use `"cifar10"`) +- `ImageNet `_ (use `"imagenet-1k"`) +- `FashionMNIST `_ (use `"fashion_mnist"`) +- `Tiny ImageNet `_ (use `"zh-plus/tiny-imagenet"`) +- `Food-101 `_ (use `"food101"`) +- `Dog Food `_ (use `"sasha/dog-food"`) +- `ImageNet-Sketch `_ (use `"imagenet_sketch"`) +- `Oxford Flowers `_ (use `"nelorth/oxford-flowers"`) +- `Cats vs. Dogs `_ (use `"cats_vs_dogs"`) +- `ObjectNet-1.0 `_ (use `"timm/objectnet"`) + +A very similar syntax can be used to load classification datasets that contain +*multiple* classification fields, such as +`CIFAR-100 `_ and the +`WikiArt `_ dataset. For example, +to load the CIFAR-100 dataset, you can specify the `classification_fields` as +`["coarse_label", "fine_label"]`: + +.. code-block:: python + :linenos: + + import fiftyone.utils.huggingface as fouh + + dataset = fouh.load_from_hub( + "cifar100", + format="parquet", + classification_fields=["coarse_label", "fine_label"], + max_samples=1000 + ) + + session = fo.launch_app(dataset) + + +To load the `WikiArt `_ dataset, +you can specify the `classification_fields` as `["artist", "genre", "style"]`: + +.. code-block:: python + :linenos: + + import fiftyone.utils.huggingface as fouh + + dataset = fouh.load_from_hub( + "huggan/wikiart", + format="parquet", + classification_fields=["artist", "genre", "style"], + max_samples=1000 + ) + + session = fo.launch_app(dataset) + From 0404864e4cbb14d112256205b02ca35802b9cf8f Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Fri, 29 Mar 2024 12:53:53 -0700 Subject: [PATCH 36/65] documents loading detection datasets --- docs/source/integrations/huggingface.rst | 75 ++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/docs/source/integrations/huggingface.rst b/docs/source/integrations/huggingface.rst index 4d14f450b0..7a24d74788 100644 --- a/docs/source/integrations/huggingface.rst +++ b/docs/source/integrations/huggingface.rst @@ -1545,3 +1545,78 @@ you can specify the `classification_fields` as `["artist", "genre", "style"]`: session = fo.launch_app(dataset) + +As touched upon earlier, you can also load a classification *subset* of a +dataset. For example, to load the `cropped_digits` subset of the +`Street View House Numbers `_ dataset: + +.. code-block:: python + :linenos: + + import fiftyone.utils.huggingface as fouh + + dataset = fouh.load_from_hub( + "svhn", + format="parquet", + classification_fields="label", + subsets="cropped_digits", + max_samples=1000 + ) + + session = fo.launch_app(dataset) + + + +**Detection Datasets**: + +Loading detection datasets from the Hub is just as easy. For example, to load +the `MS COCO `_ dataset, +you can specify the `detection_fields` as `"objects"`, which is the standard +column name for detection features in Hugging Face datasets: + +.. code-block:: python + :linenos: + + import fiftyone.utils.huggingface as fouh + + dataset = fouh.load_from_hub( + "detection-datasets/coco", + format="parquet", + detection_fields="objects", + max_samples=1000 + ) + + session = fo.launch_app(dataset) + + +The same syntax works for many other popular detection datasets on the Hub, +including: + +- `CPPE - 5 `_ (use `"cppe-5"`) +- `WIDER FACE `_ (use `"wider_face"`) +- `License Plate Object Detection `_ + (use `"keremberke/license-plate-object-detection"`) +- `Aerial Sheep Object Detection `_ + (use `"keremberke/aerial-sheep-object-detection"`) + + +Some detection datasets have their detections stored under a column with a +different name. For example, the `full_numbers` subset of the +`Street View House Numbers `_ dataset +stores its detections under the column `digits`. To load this subset, you can +specify the `detection_fields` as `"digits"`: + +.. code-block:: python + :linenos: + + import fiftyone.utils.huggingface as fouh + + dataset = fouh.load_from_hub( + "svhn", + format="parquet", + detection_fields="digits", + subsets="full_numbers", + max_samples=1000 + ) + + session = fo.launch_app(dataset) \ No newline at end of file From e45317d2cdc99945e7d42d88c27442926df9027a Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Fri, 29 Mar 2024 12:59:11 -0700 Subject: [PATCH 37/65] adds note about other detection formats --- docs/source/integrations/huggingface.rst | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/docs/source/integrations/huggingface.rst b/docs/source/integrations/huggingface.rst index 7a24d74788..3d3669a29c 100644 --- a/docs/source/integrations/huggingface.rst +++ b/docs/source/integrations/huggingface.rst @@ -1619,4 +1619,13 @@ specify the `detection_fields` as `"digits"`: max_samples=1000 ) - session = fo.launch_app(dataset) \ No newline at end of file + session = fo.launch_app(dataset) + + +.. note:: + + Not *all* detection datasets on the Hub are stored in a format that is + currently supported by FiftyOne. For instance, the + `Fashionpedia `_ + dataset has detections stored in Pascal VOC format, which is not the `standard + Hugging Face format `_. \ No newline at end of file From b510fffe94ed0252ce3ceb45262bcba8eba8d3f9 Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Fri, 29 Mar 2024 13:09:06 -0700 Subject: [PATCH 38/65] documents loading segmentation datasets --- docs/source/integrations/huggingface.rst | 72 +++++++++++++++++++++++- 1 file changed, 71 insertions(+), 1 deletion(-) diff --git a/docs/source/integrations/huggingface.rst b/docs/source/integrations/huggingface.rst index 3d3669a29c..71e607a9db 100644 --- a/docs/source/integrations/huggingface.rst +++ b/docs/source/integrations/huggingface.rst @@ -1628,4 +1628,74 @@ specify the `detection_fields` as `"digits"`: currently supported by FiftyOne. For instance, the `Fashionpedia `_ dataset has detections stored in Pascal VOC format, which is not the `standard - Hugging Face format `_. \ No newline at end of file + Hugging Face format `_. + + +**Segmentation Datasets**: + +Loading segmentation datasets from the Hub is also a breeze. For example, to +load the "instance_segmentation" subset from +`SceneParse150 `_, all you +need to do is specify the `mask_fields` as `"annotation"`: + +.. code-block:: python + :linenos: + + import fiftyone.utils.huggingface as fouh + + dataset = fouh.load_from_hub( + "scene_parse150", + format="parquet", + subsets="instance_segmentation", + mask_fields="annotation", + max_samples=1000 + ) + + session = fo.launch_app(dataset) + + +Many other segmentation datasets on the Hub can be loaded in the same way, such +as `ADE 20K Tiny `_: + +.. code-block:: python + :linenos: + + import fiftyone.utils.huggingface as fouh + + dataset = fouh.load_from_hub( + "nateraw/ade20k-tiny", + format="parquet", + mask_fields="label", + max_samples=1000 + ) + + session = fo.launch_app(dataset) + + +In other cases, because there are now *multiple* image columns — one for the +sample image and one for the mask — the naming convention for the dataset might +be different, and you may need to explicitly specify the `filepath`. For example, +to load the +`Sidewalk Semantic `_ +dataset: + +.. code-block:: python + :linenos: + + import fiftyone.utils.huggingface as fouh + + dataset = fouh.load_from_hub( + "segments/sidewalk-semantic", + format="parquet", + filepath="pixel_values", + mask_fields="label", + max_samples=1000 + ) + + session = fo.launch_app(dataset) + + +.. note:: + Once you have the dataset loaded into FiftyOne, you may want to set the dataset's + `mask targets `_ to specify the names of the classes + represented in the segmentation masks. \ No newline at end of file From b79fdf6ea0147a33e95e851f86dc127516843553 Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Fri, 29 Mar 2024 13:36:41 -0700 Subject: [PATCH 39/65] Documents loading unlabeled datasets --- docs/source/integrations/huggingface.rst | 104 ++++++++++++++++++++++- 1 file changed, 103 insertions(+), 1 deletion(-) diff --git a/docs/source/integrations/huggingface.rst b/docs/source/integrations/huggingface.rst index 71e607a9db..9d43579451 100644 --- a/docs/source/integrations/huggingface.rst +++ b/docs/source/integrations/huggingface.rst @@ -1698,4 +1698,106 @@ dataset: .. note:: Once you have the dataset loaded into FiftyOne, you may want to set the dataset's `mask targets `_ to specify the names of the classes - represented in the segmentation masks. \ No newline at end of file + represented in the segmentation masks. + + +**Unlabelled Image Datasets**: + +Some datasets on the Hub contain images and metadata in the form of features, +but do not explicitly contain classification, detection, or segmentation labels. +This is common for text-to-image tasks, as well as captioning and visual question +answering tasks. These datasets can also be converted and loaded into FiftyOne! +Once the dataset is loaded into FiftyOne, you can process the data and generate +labels for whatever tasks you are interested in. + +Let's look at a few examples: + +For `DiffusionDB `_, you +can load the dataset as follows: + +.. code-block:: python + :linenos: + + import fiftyone.utils.huggingface as fouh + + dataset = fouh.load_from_hub( + "poloclub/diffusiondb", + format="parquet", + max_samples=1000 + ) + + session = fo.launch_app(dataset) + + +Here are some other popular datasets on the Hub that can be loaded following the +same syntax: + +- `Nouns `_: (use `"m1guelpf/nouns"`) +- `New Yorker Caption Contest `_: + (use `"jmhessel/newyorker_caption_contest"`) +- `Captcha Dataset `_: + (use `"project-sloth/captcha-images"`) +- `MathVista `_: (use `"AI4Math/MathVista"`) +- `TextVQA `_: (use `"textvqa"`) +- `VQA-RAD `_: (use `"flaviagiammarino/vqa-rad"`) +- `ScienceQA `_: (use `"derek-thomas/ScienceQA"`) +- `PathVQA `_: (use `"flaviagiammarino/path-vqa"`) + + +Many other popular datasets on the Hub can be loaded in the same way, with slight +modifications to `filepath` or other arguments as needed. Here are a few examples: + +For `COYO-700M `_, we just +need to specify the `filepath` as `"url"`: + +.. code-block:: python + :linenos: + + import fiftyone.utils.huggingface as fouh + + dataset = fouh.load_from_hub( + "kakaobrain/coyo-700m", + format="parquet", + filepath="url", + max_samples=1000 + ) + + session = fo.launch_app(dataset) + + +For `RedCaps `_, we instead use +`"image_url"` as the `filepath`: + +.. code-block:: python + :linenos: + + import fiftyone.utils.huggingface as fouh + + dataset = fouh.load_from_hub( + "red_caps", + format="parquet", + filepath="image_url", + max_samples=1000 + ) + + session = fo.launch_app(dataset) + + +For `MMMU `_ +(A Massive Multi-discipline Multimodal Understanding and Reasoning Benchmark for +Expert AGI), we use `"image_1"` as the `filepath`: + +.. code-block:: python + :linenos: + + import fiftyone.utils.huggingface as fouh + + dataset = fouh.load_from_hub( + "MMMU/MMMU", + format="parquet", + filepath="image_1", + max_samples=1000 + ) + + session = fo.launch_app(dataset) + From 75b60ef46eb692e0caf0b3acb4aefe25789739cb Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Fri, 29 Mar 2024 13:53:13 -0700 Subject: [PATCH 40/65] documents advanced loading --- docs/source/integrations/huggingface.rst | 96 ++++++++++++++++++++++++ 1 file changed, 96 insertions(+) diff --git a/docs/source/integrations/huggingface.rst b/docs/source/integrations/huggingface.rst index 9d43579451..4be2b1d9e6 100644 --- a/docs/source/integrations/huggingface.rst +++ b/docs/source/integrations/huggingface.rst @@ -1801,3 +1801,99 @@ Expert AGI), we use `"image_1"` as the `filepath`: session = fo.launch_app(dataset) + + +.. _huggingface-hub-load-dataset-advanced-examples: + +Advanced examples +^^^^^^^^^^^^^^^^^ + +The :func:`load_from_hub() ` function +also allows us to load datasets in much more complex formats, as well as with +more advanced configurations. Let's walk through a few examples to show you how +to leverage the full power of FiftyOne's Hugging Face Hub integration. + + +**Loading Datasets from Revisions**: + +When you load a dataset from the Hugging Face Hub, you are loading the latest +revision of the dataset. However, you can also load a specific revision of the +dataset by specifying the `revision` argument. For example, to load the last +revision of DiffusionDB before NSFW scores were added, you can specify this via: + +.. code-block:: python + :linenos: + + import fiftyone.utils.huggingface as fouh + + dataset = fouh.load_from_hub( + "poloclub/diffusiondb", + format="parquet", + subset="2m_random_1k", ## just one of the subsets + max_samples=1000, + revision="5fa48ba66a44822d82d024d195fbe918e6c42ca6" + ) + + session = fo.launch_app(dataset) + + +**Loading Datasets with Multiple Media Fields**: + +Some datasets on the Hub contain multiple media fields for each sample. Take +`MagicBrush `_ for example, which +contains a `"source_img"` and a `"target_img"` for each sample, in addition +to a segmentation mask denoting the area of the source image to be modified. To +load this dataset, you can specify the `filepath` as `"source_img"` and the +target image via `additional_media_fields`. Because this is getting a bit more +complex, we'll create a local yaml config file to specify the dataset format: + +.. code-block:: yaml + + format: ParquetFilesDataset + name: magicbrush + filepath: source_img + additional_media_fields: + target_img: target_img + mask_fields: mask_img + + +Now, you can load the dataset using the local yaml config file: + +.. code-block:: python + :linenos: + + import fiftyone.utils.huggingface as fouh + + dataset = fouh.load_from_hub( + "osunlp/MagicBrush", + config_file="/path/to/magicbrush.yml", + max_samples=1000 + ) + + session = fo.launch_app(dataset) + + +**Customizing the Download Process**: + +When loading datasets from the Hub, you can customize the download process by +specifying the `batch_size`, `num_workers`, and `overwrite` arguments. For +example, to download the `full_numbers` subset of the `Street View House Numbers +`_ dataset with a batch size of 50 and 4 +workers, you can do the following: + +.. code-block:: python + :linenos: + + import fiftyone.utils.huggingface as fouh + + dataset = fouh.load_from_hub( + "svhn", + format="parquet", + detection_fields="digits", + subsets="full_numbers", + max_samples=1000, + batch_size=50, + num_workers=4 + ) + + session = fo.launch_app(dataset) \ No newline at end of file From 6114d74a867d9c3b24cd04a5fbc89e68de5100d9 Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Fri, 29 Mar 2024 13:55:27 -0700 Subject: [PATCH 41/65] adds breadcrumb to config args --- docs/source/integrations/huggingface.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/integrations/huggingface.rst b/docs/source/integrations/huggingface.rst index 4be2b1d9e6..2ad481fbeb 100644 --- a/docs/source/integrations/huggingface.rst +++ b/docs/source/integrations/huggingface.rst @@ -1242,7 +1242,7 @@ the path to the local yaml config file: For a comprehensive list of the supported fields in the yaml config file, see -here **TODO**. +:ref:`Supported config fields `. .. _huggingface-hub-load-dataset-from-kwargs: From d619c0e8e8162575bac910bf2441d929ed51b0b7 Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Fri, 29 Mar 2024 13:59:20 -0700 Subject: [PATCH 42/65] Documents loading gated datasets --- docs/source/integrations/huggingface.rst | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/docs/source/integrations/huggingface.rst b/docs/source/integrations/huggingface.rst index 2ad481fbeb..25f218598c 100644 --- a/docs/source/integrations/huggingface.rst +++ b/docs/source/integrations/huggingface.rst @@ -1896,4 +1896,27 @@ workers, you can do the following: num_workers=4 ) + session = fo.launch_app(dataset) + + +**Loading Gated Datasets**: + +Like public datasets, you can also load gated datasets from the Hub, as long as +you have the necessary permissions. If your Hugging Face token is set as an +environment variable `HF_TOKEN`, this is as simple as specifying the `repo_id` +of the dataset. If you don't have your token set, or you need to use a specific +token for a specific dataset, you can specify the `token` argument. You can do +so following this recipe: + +.. code-block:: python + :linenos: + + import fiftyone.utils.huggingface as fouh + + dataset = fouh.load_from_hub( + "my-private-dataset-repo-id", + token="", + ... + ) + session = fo.launch_app(dataset) \ No newline at end of file From f0e82c2a3e21076e8dde7b74227f5374ad91e27c Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Fri, 29 Mar 2024 14:07:28 -0700 Subject: [PATCH 43/65] adds num_workers arg for downloading --- fiftyone/utils/huggingface.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/fiftyone/utils/huggingface.py b/fiftyone/utils/huggingface.py index 4c4b2e3253..05811f3d70 100644 --- a/fiftyone/utils/huggingface.py +++ b/fiftyone/utils/huggingface.py @@ -167,6 +167,7 @@ def load_from_hub( subsets=None, max_samples=None, batch_size=None, + num_workers=None, overwrite=False, persistent=False, name=None, @@ -202,6 +203,7 @@ def load_from_hub( kwargs["subset"] = subset kwargs["max_samples"] = max_samples kwargs["batch_size"] = batch_size + kwargs["num_workers"] = num_workers kwargs["overwrite"] = overwrite kwargs["persistent"] = persistent kwargs["name"] = name @@ -732,10 +734,13 @@ def _download_image(url_and_filepath): logger.warning(f"Failed to download image from {url}: {e}") -def _download_images_in_batch(urls_and_filepaths): - max_workers = fo.config.max_thread_pool_workers or os.cpu_count() - with ThreadPoolExecutor(max_workers=max_workers) as executor: - executor.map(_download_image, urls_and_filepaths) +def _download_images_in_batch(urls_and_filepaths, num_workers): + if num_workers <= 1: + for url_and_filepath in urls_and_filepaths: + _download_image(url_and_filepath) + else: + with ThreadPoolExecutor(max_workers=num_workers) as executor: + executor.map(_download_image, urls_and_filepaths) def _build_media_field_converter( @@ -944,6 +949,10 @@ def _add_parquet_subset_to_dataset(dataset, config, split, subset, **kwargs): if max_samples is not None: num_rows = min(num_rows, max_samples) + num_workers = fou.recommend_thread_pool_workers( + kwargs.get("num_workers", None) + ) + batch_size = kwargs.get("batch_size", DATASETS_MAX_BATCH_SIZE) if batch_size is not None and batch_size > DATASETS_MAX_BATCH_SIZE: logger.debug( @@ -987,7 +996,7 @@ def _add_parquet_subset_to_dataset(dataset, config, split, subset, **kwargs): ## Download images in batch urls_and_filepaths = _get_cache() - _download_images_in_batch(urls_and_filepaths) + _download_images_in_batch(urls_and_filepaths, num_workers) _get_cache().clear() From 75ee44cd6f6f40126b16c7aa6f06ba12a2143b9e Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Fri, 29 Mar 2024 14:16:06 -0700 Subject: [PATCH 44/65] remove unnecessary max_samples --- docs/source/integrations/huggingface.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/source/integrations/huggingface.rst b/docs/source/integrations/huggingface.rst index 25f218598c..3a19ea002b 100644 --- a/docs/source/integrations/huggingface.rst +++ b/docs/source/integrations/huggingface.rst @@ -1666,9 +1666,10 @@ as `ADE 20K Tiny `_: "nateraw/ade20k-tiny", format="parquet", mask_fields="label", - max_samples=1000 ) + # only 20 samples in the dataset + session = fo.launch_app(dataset) From de658d8fde2cbb9946baeb87987cb116ce0c3646 Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Fri, 29 Mar 2024 14:20:36 -0700 Subject: [PATCH 45/65] access warning --- docs/source/integrations/huggingface.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/source/integrations/huggingface.rst b/docs/source/integrations/huggingface.rst index 3a19ea002b..8f871b30e4 100644 --- a/docs/source/integrations/huggingface.rst +++ b/docs/source/integrations/huggingface.rst @@ -1685,6 +1685,8 @@ dataset: import fiftyone.utils.huggingface as fouh + # Note: you need access to the dataset to load it! + dataset = fouh.load_from_hub( "segments/sidewalk-semantic", format="parquet", From c77166768a99b02d0c7be69d2fab7cd7533f10a9 Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Fri, 29 Mar 2024 14:21:02 -0700 Subject: [PATCH 46/65] removes globals cache --- fiftyone/utils/huggingface.py | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/fiftyone/utils/huggingface.py b/fiftyone/utils/huggingface.py index 05811f3d70..316542e5d8 100644 --- a/fiftyone/utils/huggingface.py +++ b/fiftyone/utils/huggingface.py @@ -288,14 +288,6 @@ def _get_fiftyone_version(self, kwargs): """ -def _get_cache(): - g = globals() - if "_files_to_download" not in g: - g["_files_to_download"] = [] - - return g["_files_to_download"] - - def _populate_config_file( config_filepath, dataset, @@ -760,8 +752,7 @@ def convert_media_field(sample_dict, row): sample_dict[media_field_key] = filepath - # cache the file info to download later - _get_cache().append((url, filepath)) + return (url, filepath) return convert_media_field @@ -854,7 +845,8 @@ def convert_mask_field(sample_dict, row): url = row_content[field_name] sample_dict[field_name] = fol.Segmentation(mask_path=filepath) - _get_cache().append((url, filepath)) + + return (url, filepath) def convert_label_field(sample_dict, row): pass @@ -971,6 +963,8 @@ def _add_parquet_subset_to_dataset(dataset, config, split, subset, **kwargs): tags.append(subset) for start_idx in range(0, num_rows, batch_size): + urls_and_filepaths = [] + end_idx = min(start_idx + batch_size, num_rows) rows = _get_rows( @@ -986,7 +980,9 @@ def _add_parquet_subset_to_dataset(dataset, config, split, subset, **kwargs): for row in rows: sample_dict = {} for convert in feature_converters.values(): - convert(sample_dict, row) + res = convert(sample_dict, row) + if res is not None: + urls_and_filepaths.append(res) sample_dict["row_idx"] = row["row_idx"] sample_dict["tags"] = tags @@ -995,9 +991,7 @@ def _add_parquet_subset_to_dataset(dataset, config, split, subset, **kwargs): dataset.add_samples(samples) ## Download images in batch - urls_and_filepaths = _get_cache() _download_images_in_batch(urls_and_filepaths, num_workers) - _get_cache().clear() def _configure_dataset_media_fields(dataset, config): From b1e38821c28c607c96d0edbed840f40385c277e9 Mon Sep 17 00:00:00 2001 From: brimoor Date: Wed, 3 Apr 2024 09:12:53 -0400 Subject: [PATCH 47/65] implementation/doc updates --- fiftyone/utils/huggingface.py | 255 ++++++++++++++++------------------ 1 file changed, 122 insertions(+), 133 deletions(-) diff --git a/fiftyone/utils/huggingface.py b/fiftyone/utils/huggingface.py index 316542e5d8..4d8f0b407f 100644 --- a/fiftyone/utils/huggingface.py +++ b/fiftyone/utils/huggingface.py @@ -30,13 +30,13 @@ "huggingface_hub", callback=lambda: fou.ensure_package("huggingface_hub") ) + DATASETS_SERVER_URL = "https://datasets-server.huggingface.co" DEFAULT_MEDIA_TYPE = "image" DATASET_METADATA_FILENAMES = ("fiftyone.yml", "fiftyone.yaml") DATASETS_MAX_BATCH_SIZE = 100 DEFAULT_IMAGE_FILEPATH_FEATURE = "image" FIFTYONE_BUILTIN_FIELDS = ("id", "filepath", "tags", "metadata") -REPO_TYPE = "dataset" SUPPORTED_DTYPES = ( "int8", "int16", @@ -63,13 +63,15 @@ def push_to_hub( dataset_type=None, label_field=None, frame_labels_field=None, + token=None, **data_card_kwargs, ): """Push a FiftyOne dataset to the Hugging Face Hub. Args: dataset: a FiftyOne dataset - repo_name: the name of the dataset repo to create + repo_name: the name of the dataset repo to create. The repo ID will be + ``{your_username}/{repo_name}`` description (None): a description of the dataset license (None): the license of the dataset tags (None): a list of tags for the dataset @@ -84,7 +86,6 @@ def push_to_hub( - a list or tuple of label field(s) to export - a dictionary mapping label field names to keys to use when constructing the label dictionaries to pass to the exporter - frame_labels_field (None): controls the frame label field(s) to export. The "frames." prefix is optional. Only applicable to labeled video datasets. Can be any of the following: @@ -94,7 +95,8 @@ def push_to_hub( - a list or tuple of frame label field(s) to export - a dictionary mapping frame label field names to keys to use when constructing the frame label dictionaries to pass to the exporter - + token (None): a Hugging Face API token to use. May also be provided via + the ``HF_TOKEN`` environment variable data_card_kwargs: additional keyword arguments to pass to the `DatasetCard` constructor """ @@ -109,6 +111,10 @@ def push_to_hub( else: tags = _get_dataset_tags(dataset) + # do this now in case HF login fails before we do anything expensive + hf_username = hfh.whoami(token=token)["name"] + repo_id = hf_username + "/" + repo_name + with etau.TempDir() as tmp_dir: config_filepath = os.path.join(tmp_dir, "fiftyone.yml") @@ -129,17 +135,17 @@ def push_to_hub( tags=tags, ) - hf_username = hfh.whoami()["name"] - ## Create the dataset repo - repo_id = os.path.join(hf_username, repo_name) hfh.create_repo( - repo_id, repo_type="dataset", private=private, exist_ok=exist_ok + repo_id, + token=token, + repo_type="dataset", + private=private, + exist_ok=exist_ok, ) ## Upload the dataset to the repo - api = hfh.HfApi() - + api = hfh.HfApi(token=token) api.upload_folder( folder_path=tmp_dir, repo_id=repo_id, @@ -175,7 +181,7 @@ def load_from_hub( config_file=None, **kwargs, ): - """Load a dataset from the Hugging Face Hub into FiftyOne. + """Loads a dataset from the Hugging Face Hub into FiftyOne. Args: repo_id: the Hugging Face Hub identifier of the dataset @@ -186,17 +192,22 @@ def load_from_hub( subsets (None): the subsets of the dataset to load max_samples (None): the maximum number of samples to load batch_size (None): the batch size to use when loading samples - overwrite (True): whether to overwrite an existing dataset with the same name + num_workers (None): a suggested number of threads to use when + downloading media + overwrite (True): whether to overwrite an existing dataset with the + same name persistent (False): whether the dataset should be persistent - name (None): the name of the dataset to create - token (None): the Hugging Face API token to use to download the dataset - config_file (None): the path to a config file to use to load the dataset, - if the repo does not have a fiftyone.yml file - **kwargs: optional keyword arguments — for future compatibility + name (None): an optional name to give the dataset + token (None): a Hugging Face API token to use. May also be provided via + the ``HF_TOKEN`` environment variable + config_file (None): the path to a config file on disk specifying how to + load the dataset if the repo has no ``fiftyone.yml`` file + **kwargs: keyword arguments specifying config parameters to load the + dataset if the repo has no ``fiftyone.yml`` file + Returns: - a FiftyOne Dataset + a :class:`fiftyone.core.dataset.Dataset` """ - kwargs["splits"] = splits kwargs["split"] = split kwargs["subsets"] = subsets @@ -213,26 +224,27 @@ def load_from_hub( config = _get_dataset_metadata(repo_id, revision=revision, **kwargs) if config is None: raise ValueError(f"Could not find fiftyone metadata for {repo_id}") + return _load_dataset_from_config(config, **kwargs) class HFHubDatasetConfig(Config): + """Config for a Hugging Face Hub dataset. + + Args: + name: the name of the dataset + repo_type: the type of the repository + repo_id: the identifier of the repository + revision: the revision of the dataset + filename: the name of the file + format: the format of the dataset + tags: the tags of the dataset + license: the license of the dataset + description: the description of the dataset + fiftyone: the fiftyone version requirement of the dataset + """ + def __init__(self, **kwargs): - """ - Config object for a Hugging Face Hub dataset - - Args: - name: the name of the dataset - repo_type: the type of the repository - repo_id: the identifier of the repository - revision: the revision of the dataset - filename: the name of the file - format: the format of the dataset - tags: the tags of the dataset - license: the license of the dataset - description: the description of the dataset - fiftyone: the fiftyone version requirement of the dataset - """ ## Internals self._repo_type = kwargs.get("repo_type", None) self._repo_id = kwargs.get("repo_id", None) @@ -262,10 +274,10 @@ def _get_fiftyone_version(self, kwargs): DATASET_CONTENT_TEMPLATE = """ - This is a [FiftyOne](https://github.com/voxel51/fiftyone) dataset with {num_samples} samples. ## Installation + If you haven't already, install FiftyOne: ```bash @@ -279,8 +291,8 @@ def _get_fiftyone_version(self, kwargs): import fiftyone.utils.huggingface as fouh # Load the dataset +# Note: other available arguments include 'split', 'max_samples', etc dataset = fouh.load_from_hub("{repo_id}") -## can also pass in any other dataset kwargs, like `name`, `persistent`, etc. # Launch the App session = fo.launch_app(dataset) @@ -296,7 +308,6 @@ def _populate_config_file( license=None, tags=None, ): - config_dict = { "name": dataset.name, "format": dataset_type.__name__, @@ -308,6 +319,7 @@ def _populate_config_file( if description is not None: config_dict["description"] = description + if license is not None: config_dict["license"] = license @@ -316,13 +328,8 @@ def _populate_config_file( def _get_dataset_tasks(dataset): - """Get the tasks that can be performed on the given dataset.""" - def _has_label(ftype): - return ( - len(list(dataset.get_field_schema(embedded_doc_type=ftype).keys())) - > 0 - ) + return bool(dataset.get_field_schema(embedded_doc_type=ftype).keys()) tasks = [] if _has_label(fol.Classification) or _has_label(fol.Classifications): @@ -335,7 +342,6 @@ def _has_label(ftype): def _get_dataset_tags(dataset): - """Get the tags of the given dataset.""" tags = ["fiftyone"] tags.append(dataset.media_type) tags.extend(_get_dataset_tasks(dataset)) @@ -344,7 +350,6 @@ def _get_dataset_tags(dataset): def _generate_dataset_summary(repo_id, dataset): - """Generate a summary of the given dataset.""" return DATASET_CONTENT_TEMPLATE.format( num_samples=len(dataset), repo_id=repo_id, @@ -354,8 +359,6 @@ def _generate_dataset_summary(repo_id, dataset): def _create_dataset_card( repo_id, dataset, tags=None, license=None, **dataset_card_kwargs ): - """Create a `DatasetCard` for the given dataset.""" - card_inputs = { "language": "en", "annotations_creators": [], @@ -403,26 +406,28 @@ def _parse_subset_kwargs(**kwargs): class HFHubParquetFilesDatasetConfig(HFHubDatasetConfig): + """Config for a Hugging Face Hub dataset that is stored as parquet files. + + Args: + name: the name of the dataset + repo_type: the type of the repository + repo_id: the identifier of the repository + revision: the revision of the dataset + filename: the name of the file + format: the format of the dataset + tags: the tags of the dataset + license: the license of the dataset + description: the description of the dataset + fiftyone: the fiftyone version requirement of the dataset + label_fields: the label fields of the dataset + media_type: the media type of the dataset + default_media_fields: the default media fields of the dataset + additional_media_fields: the additional media fields of the dataset + """ + def __init__(self, **kwargs): - """ - Config object for a Hugging Face Hub dataset that is stored as parquet files - - Args: - name: the name of the dataset - repo_type: the type of the repository - repo_id: the identifier of the repository - revision: the revision of the dataset - filename: the name of the file - format: the format of the dataset - tags: the tags of the dataset - license: the license of the dataset - description: the description of the dataset - fiftyone: the fiftyone version requirement of the dataset - label_fields: the label fields of the dataset - media_type: the media type of the dataset - default_media_fields: the default media fields of the dataset - additional_media_fields: the additional media fields of the dataset - """ + super().__init__(**kwargs) + self.media_type = kwargs.get("media_type", DEFAULT_MEDIA_TYPE) self._build_name(kwargs) @@ -430,7 +435,6 @@ def __init__(self, **kwargs): self._build_label_fields_dict(kwargs) self._build_allowed_splits(kwargs) self._build_allowed_subsets(kwargs) - super().__init__(**kwargs) def _build_name(self, kwargs): self.name = kwargs.get("name", None) @@ -492,15 +496,6 @@ def _build_config(config_dict): return HFHubDatasetConfig(**config_dict) -def _instantiate_api(**kwargs): - token = kwargs.get("token", None) or os.getenv("HF_TOKEN") - if token is not None: - api = hfh.HfApi(token=token) - else: - api = hfh.HfApi() - return api - - def _get_headers(**kwargs): token = kwargs.get("token", None) or os.getenv("HF_TOKEN") if token is not None: @@ -508,14 +503,8 @@ def _get_headers(**kwargs): return None -def _get_dataset_metadata(repo_id, revision=None, **kwargs): - """ - Checks if a Hugging Face dataset can be converted to fiftyone. If it is, - it returns the metadata config loaded from the dataset's metadata file. - - If config_file kwargs is provided, it will use that file to load the config - """ - common_kwargs = dict(repo_type=REPO_TYPE, revision=revision) +def _get_dataset_metadata(repo_id, revision=None, token=None, **kwargs): + common_kwargs = dict(repo_type="dataset", revision=revision) config_file = kwargs.get("config_file", None) if config_file is not None: @@ -523,7 +512,7 @@ def _get_dataset_metadata(repo_id, revision=None, **kwargs): filename = os.path.basename(config_file) all_kwargs = dict(repo_id=repo_id, filename=filename, **common_kwargs) else: - api = _instantiate_api(**kwargs) + api = hfh.HfApi(token=token) for filename in DATASET_METADATA_FILENAMES: if api.file_exists(repo_id, filename, **common_kwargs): all_kwargs = dict( @@ -537,7 +526,8 @@ def _get_dataset_metadata(repo_id, revision=None, **kwargs): if config_file is None and "format" not in kwargs: return None - elif config_file is None: + + if config_file is None: config_dict = kwargs config_dict.update(**common_kwargs) config_dict["repo_id"] = repo_id @@ -545,32 +535,30 @@ def _get_dataset_metadata(repo_id, revision=None, **kwargs): with open(config_file, "r") as f: config_dict = yaml.safe_load(f) config_dict.update(**all_kwargs) + return _build_config(config_dict) def _ensure_dataset_compatibility(config): - error_level = fo.config.requirement_error_level - req_str = config.version if req_str is None: return + try: req = Requirement(req_str) except: logger.warning( - f"Unable to parse dataset {config.name}'s fiftyone version requirement {req_str}." + f"Unable to parse dataset {config.name}'s fiftyone version requirement {req_str}" ) return if not req.specifier.contains(foc.VERSION): - exception = ImportError( - f"Dataset {config.name} requires {req_str} but you are running {foc.VERSION}, which is not compatible" + logger.warning( + f"Dataset {config.name} requires {req_str} but you are running fiftyone=={foc.VERSION}" ) - fou.handle_error(exception, error_level) def _get_download_dir(repo_id, split=None, subset=None, **kwargs): - path_walk = [fo.config.default_dataset_dir, "huggingface", "hub", repo_id] ## Note: for now don't support multiple revisions storage @@ -580,9 +568,7 @@ def _get_download_dir(repo_id, split=None, subset=None, **kwargs): path_walk.append(split) download_dir = os.path.join(*path_walk) - - if not os.path.exists(download_dir): - os.makedirs(download_dir) + etau.ensure_dir(download_dir) return download_dir @@ -606,7 +592,6 @@ def _load_dataset_from_config(config, **kwargs): return _load_parquet_files_dataset_from_config(config, **kwargs) else: return _load_fiftyone_dataset_from_config(config, **kwargs) - # def _get_allowed_splits(config, **kwargs): @@ -720,13 +705,11 @@ def _download_image(url_and_filepath): with open(filepath, "wb") as f: for chunk in r.iter_content(chunk_size=8192): f.write(chunk) - # Optionally, open and save the image to ensure it's valid - Image.open(filepath).save(filepath) except Exception as e: logger.warning(f"Failed to download image from {url}: {e}") -def _download_images_in_batch(urls_and_filepaths, num_workers): +def _download_images(urls_and_filepaths, num_workers): if num_workers <= 1: for url_and_filepath in urls_and_filepaths: _download_image(url_and_filepath) @@ -945,53 +928,57 @@ def _add_parquet_subset_to_dataset(dataset, config, split, subset, **kwargs): kwargs.get("num_workers", None) ) - batch_size = kwargs.get("batch_size", DATASETS_MAX_BATCH_SIZE) - if batch_size is not None and batch_size > DATASETS_MAX_BATCH_SIZE: - logger.debug( + batch_size = kwargs.get("batch_size", None) + if batch_size is None: + batch_size = DATASETS_MAX_BATCH_SIZE + + if batch_size > DATASETS_MAX_BATCH_SIZE: + logger.info( f"Batch size {batch_size} is larger than the maximum batch size {DATASETS_MAX_BATCH_SIZE}. Using {DATASETS_MAX_BATCH_SIZE} instead" ) batch_size = DATASETS_MAX_BATCH_SIZE - elif batch_size is None: - batch_size = DATASETS_MAX_BATCH_SIZE logger.info( - f"Adding {num_rows} samples to dataset {dataset.name} from {config.name} ({split}, {subset}) in batch sizes of {batch_size}..." + f"Downloading {num_rows} images from {config.name} ({split}, {subset})..." ) tags = [split] if subset != "default" and subset != config._repo_id: tags.append(subset) - for start_idx in range(0, num_rows, batch_size): - urls_and_filepaths = [] + with fou.ProgressBar(total=num_rows) as pb: + for start_idx in range(0, num_rows, batch_size): + urls_and_filepaths = [] - end_idx = min(start_idx + batch_size, num_rows) + end_idx = min(start_idx + batch_size, num_rows) - rows = _get_rows( - config._repo_id, - split, - subset, - start_index=start_idx, - end_index=end_idx, - revision=config._revision, - ) + rows = _get_rows( + config._repo_id, + split, + subset, + start_index=start_idx, + end_index=end_idx, + revision=config._revision, + ) + + samples = [] + for row in rows: + sample_dict = {} + for convert in feature_converters.values(): + res = convert(sample_dict, row) + if res is not None: + urls_and_filepaths.append(res) - samples = [] - for row in rows: - sample_dict = {} - for convert in feature_converters.values(): - res = convert(sample_dict, row) - if res is not None: - urls_and_filepaths.append(res) + sample_dict["row_idx"] = row["row_idx"] + sample_dict["tags"] = tags + sample = Sample(**sample_dict) + samples.append(sample) - sample_dict["row_idx"] = row["row_idx"] - sample_dict["tags"] = tags - sample = Sample(**sample_dict) - samples.append(sample) - dataset.add_samples(samples) + dataset.add_samples(samples, progress=False) - ## Download images in batch - _download_images_in_batch(urls_and_filepaths, num_workers) + _download_images(urls_and_filepaths, num_workers) + + pb.update(count=len(samples)) def _configure_dataset_media_fields(dataset, config): @@ -1027,7 +1014,8 @@ def _resolve_dataset_name(config, **kwargs): def _load_fiftyone_dataset_from_config(config, **kwargs): - logger.info("Loading parquet files dataset from config") + logger.info("Loading dataset") + overwrite = kwargs.get("overwrite", False) persistent = kwargs.get("persistent", False) max_samples = kwargs.get("max_samples", None) @@ -1062,7 +1050,8 @@ def _load_fiftyone_dataset_from_config(config, **kwargs): def _load_parquet_files_dataset_from_config(config, **kwargs): - logger.info("Loading parquet files dataset from config") + logger.info("Loading parquet files dataset") + allowed_splits = _get_allowed_splits(config, **kwargs) allowed_subsets = _get_allowed_subsets(config, **kwargs) From 3951c2cd853cb9ff72cc74703c4057dd677cde0c Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Wed, 3 Apr 2024 10:50:34 -0400 Subject: [PATCH 48/65] bump huggingface_hub version for token auth --- fiftyone/utils/huggingface.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/fiftyone/utils/huggingface.py b/fiftyone/utils/huggingface.py index 4d8f0b407f..2e12650de4 100644 --- a/fiftyone/utils/huggingface.py +++ b/fiftyone/utils/huggingface.py @@ -5,6 +5,7 @@ | `voxel51.com `_ | """ + from concurrent.futures import ThreadPoolExecutor import logging import os @@ -27,7 +28,8 @@ import fiftyone.types as fot hfh = fou.lazy_import( - "huggingface_hub", callback=lambda: fou.ensure_package("huggingface_hub") + "huggingface_hub", + callback=lambda: fou.ensure_package("huggingface_hub>=0.20.0"), ) From 8b74e3d6828b145fe6f433470ef82ecd7d953c36 Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Thu, 4 Apr 2024 12:41:46 -0400 Subject: [PATCH 49/65] Update docs/source/integrations/huggingface.rst Co-authored-by: Daniel van Strien --- docs/source/integrations/huggingface.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/integrations/huggingface.rst b/docs/source/integrations/huggingface.rst index 8f871b30e4..0eb7a25a36 100644 --- a/docs/source/integrations/huggingface.rst +++ b/docs/source/integrations/huggingface.rst @@ -929,7 +929,7 @@ which you can install via PyPI: pip install -U huggingface_hub -To push a dataset to the Hub, and in many cases to even access a dataset on +To push a dataset to the Hub, and in some cases, to access a dataset on the hub, you will need to have a `Hugging Face Hub account `_. Hugging Face handles authentication via tokens, which you can obtain by From dc3af96b3c6ad8c9252466ffc49dde111a74b471 Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Thu, 4 Apr 2024 12:43:14 -0400 Subject: [PATCH 50/65] Update docs/source/integrations/huggingface.rst Co-authored-by: Daniel van Strien --- docs/source/integrations/huggingface.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/integrations/huggingface.rst b/docs/source/integrations/huggingface.rst index 0eb7a25a36..8619a60279 100644 --- a/docs/source/integrations/huggingface.rst +++ b/docs/source/integrations/huggingface.rst @@ -1175,7 +1175,7 @@ we pushed to the Hub earlier, you can do the following: .. note:: As long as you have an environment variable `HF_TOKEN` set with your Hugging - Face token (with read access), you can load gated datasets that you have + Face token (with read access), you can load private or gated datasets that you have access to from the Hub. From cd7283320c004e57203dac0c1a43defbffacac1c Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Thu, 4 Apr 2024 12:43:32 -0400 Subject: [PATCH 51/65] Update docs/source/integrations/huggingface.rst Co-authored-by: Daniel van Strien --- docs/source/integrations/huggingface.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/integrations/huggingface.rst b/docs/source/integrations/huggingface.rst index 8619a60279..853729c296 100644 --- a/docs/source/integrations/huggingface.rst +++ b/docs/source/integrations/huggingface.rst @@ -1902,7 +1902,7 @@ workers, you can do the following: session = fo.launch_app(dataset) -**Loading Gated Datasets**: +**Loading Private or Gated Datasets**: Like public datasets, you can also load gated datasets from the Hub, as long as you have the necessary permissions. If your Hugging Face token is set as an From 93186903da9cb5dd94c2398973e7767d376ef930 Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Thu, 4 Apr 2024 12:43:47 -0400 Subject: [PATCH 52/65] Update docs/source/integrations/huggingface.rst Co-authored-by: Daniel van Strien --- docs/source/integrations/huggingface.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/integrations/huggingface.rst b/docs/source/integrations/huggingface.rst index 853729c296..d6562af190 100644 --- a/docs/source/integrations/huggingface.rst +++ b/docs/source/integrations/huggingface.rst @@ -1904,7 +1904,7 @@ workers, you can do the following: **Loading Private or Gated Datasets**: -Like public datasets, you can also load gated datasets from the Hub, as long as +Like public datasets, you can also load private or gated datasets from the Hub, as long as you have the necessary permissions. If your Hugging Face token is set as an environment variable `HF_TOKEN`, this is as simple as specifying the `repo_id` of the dataset. If you don't have your token set, or you need to use a specific From 43e6ce1acfc332bee3f4c87f85cb49e72dab7b4c Mon Sep 17 00:00:00 2001 From: brimoor Date: Thu, 4 Apr 2024 13:27:55 -0400 Subject: [PATCH 53/65] docs pass --- docs/source/integrations/huggingface.rst | 263 ++++++++++------------- 1 file changed, 110 insertions(+), 153 deletions(-) diff --git a/docs/source/integrations/huggingface.rst b/docs/source/integrations/huggingface.rst index 8f871b30e4..a866ec5bf7 100644 --- a/docs/source/integrations/huggingface.rst +++ b/docs/source/integrations/huggingface.rst @@ -902,54 +902,55 @@ model: session = fo.launch_app(view) - .. _huggingface-hub: Hugging Face Hub ________________ -FiftyOne integrates with the `Hugging Face Hub `_ -to allow you to push datasets to and load datasets from the Hub with ease. This -integration simplifies the process of sharing datasets with the machine learning -and computer vision community, and allows you to easily access and work with -many of the most popular vision and multimodal datasets available! - +FiftyOne integrates with the +`Hugging Face Hub `_ to allow you to +push datasets to and load datasets from the Hub with ease. This integration +simplifies the process of sharing datasets with the machine learning and +computer vision community, and allows you to easily access and work with many +of the most popular vision and multimodal datasets available! .. _huggingface-hub-setup: Setup ----- -To push datasets to and load datasets from the `Hugging Face Hub `_, -you will need the `Hugging Face Hub Python client `_, +To push datasets to and load datasets from the +`Hugging Face Hub `_, you will need the +`Hugging Face Hub Python client `_, which you can install via PyPI: .. code-block:: shell - pip install -U huggingface_hub - + pip install "huggingface_hub>=0.20.0" To push a dataset to the Hub, and in many cases to even access a dataset on -the hub, you will need to have a `Hugging Face Hub account `_. +the hub, you will need to have a +`Hugging Face Hub account `_. Hugging Face handles authentication via tokens, which you can obtain by logging into your account and navigating to the -`Access Tokens `_ section of your profile. -At the bottom of this page, you can create a new token with write or read access -to the Hub. Once you have your token, you can set it as an environment variable: +`Access Tokens `_ section of your +profile. At the bottom of this page, you can create a new token with write or +read access to the Hub. Once you have your token, you can set it as an +environment variable: .. code-block:: shell export HF_TOKEN="" - .. _huggingface-hub-push-dataset: Pushing datasets to the Hub --------------------------- If you are working with a dataset in FiftyOne and you want to quickly share it -with others, you can do so via the :func:`push_to_hub() ` +with others, you can do so via the +:func:`push_to_hub() ` function, which takes two positional arguments: - the FiftyOne sample collection (a |Dataset| or |DatasetView|) @@ -957,7 +958,6 @@ function, which takes two positional arguments: organization name to construct the `repo_id` where the sample collection will be uploaded. - As you will see, this simple function allows you to push datasets and filtered views containing images, videos, point clouds, and other multimodal data to the Hugging Face Hub, providing you with incredible flexibility in the process. @@ -980,7 +980,6 @@ code. As a starting point, let's use the example dataset = foz.load_zoo_dataset("quickstart") - To push the dataset to the Hugging Face Hub, all you need to do is call :func:`push_to_hub() ` with the dataset and the desired `repo_name`: @@ -992,30 +991,30 @@ and the desired `repo_name`: fouh.push_to_hub(dataset, "my-quickstart-dataset") - When you run this code, a few things happen: - The dataset and its media files are exported to a temporary directory and uploaded to the specified Hugging Face repo. - A `fiftyone.yml` config file for the dataset is generated and uploaded to the repo, which contains all of the necessary information so that the dataset - can be loaded with :func:`load_from_hub() `. -- A Hugging Face `Dataset Card `_ - for the dataset is auto-generated, providing tags, metadata, license info, and - a code snippet illustrating how to load the dataset from the hub. - + can be loaded with + :func:`load_from_hub() `. +- A Hugging Face + `Dataset Card `_ + for the dataset is auto-generated, providing tags, metadata, license info, + and a code snippet illustrating how to load the dataset from the hub. Your dataset will be available on the Hub at the following URL: -.. code-block:: shell +.. code-block:: text https://huggingface.co/datasets//my-quickstart-dataset - Pushing a |DatasetView| to the Hub works in exactly the same way. For example, if you want to push a filtered view of the `quickstart` dataset containing only predictions with high confidence, you can do so by creating the view as usual, -and then passing that in to :func:`push_to_hub() `: +and then passing that in to +:func:`push_to_hub() `: .. code-block:: python :linenos: @@ -1044,13 +1043,13 @@ what license it is released under, and more. FiftyOne's :func:`push_to_hub() ` function supports the Hugging Face Hub API arguments `private` and `exist_ok`. -- `private` (bool): Whether the dataset should be private. If `True`, the +- **private** *(bool)*: Whether the dataset should be private. If `True`, the dataset will be private and only accessible to you. If `False`, the dataset will be public and accessible to anyone with the link. Defaults to `False`. -- `exist_ok` (bool): Whether to overwrite an existing dataset with the same +- **exist_ok** *(bool)*: Whether to overwrite an existing dataset with the same `repo_name`. If `True`, the existing dataset will be overwritten. If `False`, - an error will be raised if a dataset with the same `repo_name` already exists. - Defaults to `False`. + an error will be raised if a dataset with the same `repo_name` already + exists. Defaults to `False`. For example, to push a dataset to the Hub as private, you can do the following: @@ -1061,7 +1060,6 @@ For example, to push a dataset to the Hub as private, you can do the following: fouh.push_to_hub(dataset, "my-private-dataset", private=True) - You can also specify the `tags`, `license`, and `description` of the dataset, all of which will propagate to the `fiftyone.yml` config file and the Hugging Face Dataset Card. For example, to push a video action recognition dataset with @@ -1084,7 +1082,6 @@ an MIT license and a description, you can do the following: description="A dataset of videos for action recognition tasks", ) - The pushed dataset will be available on the Hub and the dataset page will look like this: @@ -1092,7 +1089,6 @@ like this: :alt: Pushing a dataset to the Hugging Face Hub with advanced options :align: center - .. note:: The `tags` argument can be a string or a list of strings. The tag `fiftyone` @@ -1100,7 +1096,6 @@ like this: that the dataset was created with FiftyOne and can be loaded with the :func:`load_from_hub() ` function. - The license is specified as a string. For a list of supported licenses, see the `Hugging Face Hub documentation `_. @@ -1131,10 +1126,9 @@ Creative Commons Attribution 4.0 license, you can do the following: "quickstart-coco", dataset_type=dataset_type, license="cc-by-4.0", - label_fields="*" ### convert all label fields, not just ground truth + label_fields="*", # convert all label fields, not just ground truth ) - .. note:: The `label_fields` argument is used to specify which label fields to convert @@ -1143,7 +1137,6 @@ Creative Commons Attribution 4.0 license, you can do the following: label fields, you can set `label_fields="*"`. If you want to convert specific label fields, you can pass a list of field names. - .. _huggingface-hub-load-dataset: Loading datasets from the Hub @@ -1159,10 +1152,11 @@ as is common with datasets from the been uploaded to the Hugging Face Hub. Below, we will walk through all of the ways you can load datasets from the Hub. -In its simplest usage, the :func:`load_from_hub() ` -function only requires the `repo_id` of the dataset you want to load. For example, -to load the :ref:`private dataset ` that -we pushed to the Hub earlier, you can do the following: +In its simplest usage, the +:func:`load_from_hub() ` function +only requires the `repo_id` of the dataset you want to load. For example, to +load the :ref:`private dataset ` that we +pushed to the Hub earlier, you can do the following: .. code-block:: python :linenos: @@ -1171,14 +1165,12 @@ we pushed to the Hub earlier, you can do the following: dataset = fouh.load_from_hub("/my-private-dataset") - .. note:: As long as you have an environment variable `HF_TOKEN` set with your Hugging Face token (with read access), you can load gated datasets that you have access to from the Hub. - .. _huggingface-hub-load-dataset-from-repo-config: Loading datasets from repo configs @@ -1203,7 +1195,6 @@ For example, to load the `quickstart` dataset that we pushed to the Hub earlier, dataset = fouh.load_from_hub("my-quickstart-dataset") - .. _huggingface-hub-load-dataset-from-local-config: Loading datasets from local configs @@ -1212,11 +1203,12 @@ Loading datasets from local configs If the repo was uploaded to the Hugging Face Hub via FiftyOne's :func:`push_to_hub() ` function, then the `fiftyone.yml` config file will be generated and uploaded to the repo. -However, some common datasets like `mnist `_ -were uploaded to the Hub using the `datasets` library and do not contain a -`fiftyone.yml` or `fiftyone.yaml` file. If you know how the dataset is structured, -you can load the dataset by passing the path to a local yaml config file that -describes the dataset via the `config_file` keyword argument. +However, some common datasets like +`mnist `_ were uploaded to the Hub +using the `datasets` library and do not contain a `fiftyone.yml` or +`fiftyone.yaml` file. If you know how the dataset is structured, you can load +the dataset by passing the path to a local yaml config file that describes the +dataset via the `config_file` keyword argument. For example, to load the `mnist` dataset from the Hub, you might have a local yaml config file like this: @@ -1226,7 +1218,6 @@ yaml config file like this: format: ParquetFilesDataset classification_fields: label - To load the dataset from the Hub, you can pass the `repo_id` of the dataset and the path to the local yaml config file: @@ -1237,14 +1228,12 @@ the path to the local yaml config file: dataset = fouh.load_from_hub( "mnist", - config_file="/path/to/mnist.yml" + config_file="/path/to/mnist.yml", ) - For a comprehensive list of the supported fields in the yaml config file, see :ref:`Supported config fields `. - .. _huggingface-hub-load-dataset-from-kwargs: Loading datasets with config kwargs @@ -1268,15 +1257,13 @@ and `classification_fields` arguments directly: dataset = fouh.load_from_hub( "mnist", format="ParquetFilesDataset", - classification_fields="label" + classification_fields="label", ) - This will tell FiftyOne that the data is stored in Parquet files, and that the `label` field should be treated as a classification field, to be converted into a |Classification| label field in the dataset. - .. _huggingface-hub-load-dataset-config-kwargs: Supported config fields @@ -1288,28 +1275,26 @@ passing the config arguments directly, you can specify a number of fields. Broadly speaking, these fields fall into three categories: format specification, media field specification, and label field specification. - Let's look at these categories in more detail: - **Format specification**: -- `format` (str): The format of the dataset. This can be any of the +- **format** *(str)*: The format of the dataset. This can be any of the :ref:`common formats ` supported by FiftyOne — just pass the name of the format as a string. For example, to load a dataset in the :ref:`COCO ` format, you can pass `format="COCODetectionDataset"`. To specify that the dataset is stored in Parquet files, you can pass `format="ParquetFilesDataset"` (or simply `format="parquet"` for short). This is the only required field. -- `name` (str): The name of the FiftyOne |Dataset| to be created. If the +- **name** *(str)*: The name of the FiftyOne |Dataset| to be created. If the `repo_id` is cumbersome, this can be used to specify a simpler default name. For example, for this `sheep dataset `_ rather than using the `repo_id` `keremberke/aerial-sheep-object-detection`, you can specify `name="sheep-detection"`. -- `subsets` (str or list): The subset or subsets of the Hugging Face dataset that - are *compatible* with this config, and are *available* to be loaded. In - Hugging Face, the "dataset" in a repo can contain multiple "subsets", which - may or may not have the same schema. Take the +- **subsets** *(str or list)*: The subset or subsets of the Hugging Face + dataset that are *compatible* with this config, and are *available* to be + loaded. In Hugging Face, the "dataset" in a repo can contain multiple + "subsets", which may or may not have the same schema. Take the `Street View House Numbers `_ dataset for example. This dataset has two subsets: `"cropped_digits"` and `"full_numbers"`. The `cropped_digits` subset contains classification labels, while the @@ -1321,7 +1306,7 @@ Let's look at these categories in more detail: `subsets="cropped_digits"`. Note that this is not a required field, and by default all subsets are loaded. Also note that subsets are distinct from splits in the dataset, which are handled by the `splits` field (see below). -- `splits` (str or list): The split or splits of the Hugging Face dataset that +- **splits** *(str or list)*: The split or splits of the Hugging Face dataset that are *compatible* with this config, and are *available* to be loaded. As is standard for machine learning, many datasets are split into training, validation, and test sets. The specific names of these splits may vary from dataset to @@ -1334,7 +1319,6 @@ Let's look at these categories in more detail: you can pass them as a list, e.g., `splits=["train", "test"]`. Note that this is not a required field, and by default all splits are loaded. - **Media field specification**: While not all Parquet datasets contain media fields, all FiftyOne |Sample| objects @@ -1342,7 +1326,7 @@ must be connected to at least one media file. The following fields can be used to configure the media fields in the Hugging Face dataset that should be converted to FiftyOne media fields: -- `filepath` (str): In FiftyOne, `filepath` is +- **filepath** *(str)*: In FiftyOne, `filepath` is `a default field `_ that is used to store the path to the primary media file for each sample in the dataset. For Hugging Face parquet datasets, primary media fields for image @@ -1355,20 +1339,19 @@ to FiftyOne media fields: `filepath="url"` will tell FiftyOne to look in the `url` column for the primary media file path. Images will be downloaded from the corresponding URLs and saved to disk. -- `thumbnail_path` (str): The field containing the path to a thumbnail image +- **thumbnail_path** *(str)*: The field containing the path to a thumbnail image for each sample in the dataset, if such a field exists. If a `thumbnail_path` is specified, this media file will be shown in the sample grid in the FiftyOne App. This can be useful for quickly visualizing the dataset when the primary media field contains large (e.g., high-resolution) images. For more information on thumbnail images, see :ref:`this section `. -- `additional_media_fields` (dict): If each sample has multiple associated media +- **additional_media_fields** *(dict)*: If each sample has multiple associated media files that you may want to visualize in the FiftyOne App, you can specify these non-default media fields in the `additional_media_fields` dictionary, where the keys are the column names in the Hugging Face dataset and the values are the names of the fields in the FiftyOne |Dataset| that will store the paths. Note that this is *not* the same as :ref:`grouped datasets `. - **Label field specification**: FiftyOne's Hugging Face Hub integration currently supports converting labels of @@ -1377,7 +1360,7 @@ Parquet datasets to FiftyOne label fields. The following fields can be used to specify the label fields in the Hugging Face dataset that should be converted to FiftyOne label fields: -- `classification_fields` (str or list): The column or columns in the Hugging +- **classification_fields** *(str or list)*: The column or columns in the Hugging Face dataset that should be converted to FiftyOne |Classification| label fields. contain classification labels. For example, if the dataset contains a `label` field that contains classification labels, you can specify @@ -1385,7 +1368,7 @@ FiftyOne label fields: classification fields, you can specify them as a list, e.g., `classification_fields=["label1", "label2"]`. This is not a required field, and if the dataset does not contain classification labels, you can omit it. -- `detection_fields` (str or list): The column or columns in the Hugging Face +- **detection_fields** *(str or list)*: The column or columns in the Hugging Face dataset that should be converted to FiftyOne |Detections| label fields. If the dataset contains detection labels, you can specify the column name or names here. For example, if the dataset contains a `detections` field that contains @@ -1393,7 +1376,7 @@ FiftyOne label fields: dataset contains multiple detection fields, you can specify them as a list, e.g., `detection_fields=["detections1", "detections2"]`. This is not a required field, and if the dataset does not contain detection labels, you can omit it. -- `mask_fields` (str or list): The column or columns in the Hugging Face dataset +- **mask_fields** *(str or list)*: The column or columns in the Hugging Face dataset that should be converted to FiftyOne |Segmentation| label fields. The column in the Hugging Face dataset must contain an image or the URL for an image that can be used as a segmentation mask. If necessary, the images will be downloaded @@ -1403,7 +1386,6 @@ FiftyOne label fields: a required field, and if the dataset does not contain mask labels, you can omit it. - .. _huggingface-hub-load-dataset-download: Configuring the download process @@ -1422,31 +1404,31 @@ process, from the maximum number of samples to be downloaded to the batch size to use when making requests to the Datasets Server. Here are the supported arguments: -- `max_samples` (int): The number of samples to download from the dataset. If - not specified, all samples will be downloaded. -- `batch_size` (int): The batch size to use when making requests to the Datasets - Server. Defaults to 100, which is the max batch size allowed by the Datasets - Server. -- `num_workers` (int): The number of worker to use when downloading +- **max_samples** *(int)*: The number of samples to download from the dataset. + If not specified, all samples will be downloaded. +- **batch_size** *(int)*: The batch size to use when making requests to the + Datasets Server. Defaults to 100, which is the max batch size allowed by the + Datasets Server. +- **num_workers** *(int)*: The number of worker to use when downloading media files. If not specified, the number of workers will be resolved by looking at your :ref:`FiftyOne Config `. -- `splits` (str or list): The split or splits of the Hugging Face dataset that - you want to download. This overrides the `splits` field in the config. -- `subsets` (str or list): The subset or subsets of the Hugging Face dataset +- **splits** *(str or list)*: The split or splits of the Hugging Face dataset + that you want to download. This overrides the `splits` field in the config. +- **subsets** *(str or list)*: The subset or subsets of the Hugging Face dataset that you want to download. This overrides the `subsets` field in the config. -- `overwrite` (bool): Whether to overwrite existing an existing dataset with the - same name. If `True`, the existing dataset will be overwritten. If `False`, - an error will be raised if a dataset with the same name already exists. Defaults - to `False`. -- `persistent` (bool): Whether to persist the dataset to the underlying database - after it is loaded. If `True`, the dataset will be available for loading in - future FiftyOne sessions by passing the dataset's name into FiftyOne's +- **overwrite** *(bool)*: Whether to overwrite existing an existing dataset + with the same name. If `True`, the existing dataset will be overwritten. If + `False`, an error will be raised if a dataset with the same name already + exists. Defaults to `False`. +- **persistent** *(bool)*: Whether to persist the dataset to the underlying + database after it is loaded. If `True`, the dataset will be available for + loading in future FiftyOne sessions by passing the dataset's name into + FiftyOne's :func:`load_dataset() ` function. Defaults to `False`. -- `revision` (str): The revision (specified by a commit hash to the Hugging Face - repo) of the dataset to load. If not specified, the latest revision will be - loaded. - +- **revision** *(str)*: The revision (specified by a commit hash to the Hugging + Face repo) of the dataset to load. If not specified, the latest revision will + be loaded. .. _huggingface-hub-load-dataset-basic-examples: @@ -1464,8 +1446,7 @@ easy it is in practice to load datasets from the Hugging Face Hub. `max_samples` argument to a reasonable number, like 1000, to get a feel for the dataset. If you like what you see, you can always download more samples! - -**Classification Datasets**: +**Classification Datasets** Let's start by loading the `MNIST `_ dataset into FiftyOne. All you @@ -1473,7 +1454,6 @@ need to do is pass the `repo_id` of the dataset — in this case `"mnist"` — :func:`load_from_hub() `, specify the format as `"parquet"`, and specify the `classification_fields` as `"label"`: - .. code-block:: python :linenos: @@ -1483,12 +1463,11 @@ format as `"parquet"`, and specify the `classification_fields` as `"label"`: "mnist", format="parquet", classification_fields="label", - max_samples=1000 + max_samples=1000, ) session = fo.launch_app(dataset) - The same exact syntax works for the `CIFAR-10 `_ and `FashionMNIST `_ datasets, which are also available on the Hub. In fact, you can load any of the following @@ -1522,12 +1501,11 @@ to load the CIFAR-100 dataset, you can specify the `classification_fields` as "cifar100", format="parquet", classification_fields=["coarse_label", "fine_label"], - max_samples=1000 + max_samples=1000, ) session = fo.launch_app(dataset) - To load the `WikiArt `_ dataset, you can specify the `classification_fields` as `["artist", "genre", "style"]`: @@ -1540,12 +1518,11 @@ you can specify the `classification_fields` as `["artist", "genre", "style"]`: "huggan/wikiart", format="parquet", classification_fields=["artist", "genre", "style"], - max_samples=1000 + max_samples=1000, ) session = fo.launch_app(dataset) - As touched upon earlier, you can also load a classification *subset* of a dataset. For example, to load the `cropped_digits` subset of the `Street View House Numbers `_ dataset: @@ -1560,19 +1537,17 @@ dataset. For example, to load the `cropped_digits` subset of the format="parquet", classification_fields="label", subsets="cropped_digits", - max_samples=1000 + max_samples=1000, ) session = fo.launch_app(dataset) - - -**Detection Datasets**: +**Detection Datasets** Loading detection datasets from the Hub is just as easy. For example, to load -the `MS COCO `_ dataset, -you can specify the `detection_fields` as `"objects"`, which is the standard -column name for detection features in Hugging Face datasets: +the `MS COCO `_ +dataset, you can specify the `detection_fields` as `"objects"`, which is the +standard column name for detection features in Hugging Face datasets: .. code-block:: python :linenos: @@ -1583,12 +1558,11 @@ column name for detection features in Hugging Face datasets: "detection-datasets/coco", format="parquet", detection_fields="objects", - max_samples=1000 + max_samples=1000, ) session = fo.launch_app(dataset) - The same syntax works for many other popular detection datasets on the Hub, including: @@ -1599,7 +1573,6 @@ including: - `Aerial Sheep Object Detection `_ (use `"keremberke/aerial-sheep-object-detection"`) - Some detection datasets have their detections stored under a column with a different name. For example, the `full_numbers` subset of the `Street View House Numbers `_ dataset @@ -1616,12 +1589,11 @@ specify the `detection_fields` as `"digits"`: format="parquet", detection_fields="digits", subsets="full_numbers", - max_samples=1000 + max_samples=1000, ) session = fo.launch_app(dataset) - .. note:: Not *all* detection datasets on the Hub are stored in a format that is @@ -1630,8 +1602,7 @@ specify the `detection_fields` as `"digits"`: dataset has detections stored in Pascal VOC format, which is not the `standard Hugging Face format `_. - -**Segmentation Datasets**: +**Segmentation Datasets** Loading segmentation datasets from the Hub is also a breeze. For example, to load the "instance_segmentation" subset from @@ -1648,12 +1619,11 @@ need to do is specify the `mask_fields` as `"annotation"`: format="parquet", subsets="instance_segmentation", mask_fields="annotation", - max_samples=1000 + max_samples=1000, ) session = fo.launch_app(dataset) - Many other segmentation datasets on the Hub can be loaded in the same way, such as `ADE 20K Tiny `_: @@ -1672,11 +1642,10 @@ as `ADE 20K Tiny `_: session = fo.launch_app(dataset) - In other cases, because there are now *multiple* image columns — one for the sample image and one for the mask — the naming convention for the dataset might -be different, and you may need to explicitly specify the `filepath`. For example, -to load the +be different, and you may need to explicitly specify the `filepath`. For +example, to load the `Sidewalk Semantic `_ dataset: @@ -1692,19 +1661,18 @@ dataset: format="parquet", filepath="pixel_values", mask_fields="label", - max_samples=1000 + max_samples=1000, ) session = fo.launch_app(dataset) - .. note:: - Once you have the dataset loaded into FiftyOne, you may want to set the dataset's - `mask targets `_ to specify the names of the classes - represented in the segmentation masks. + Once you have the dataset loaded into FiftyOne, you may want to set the + dataset's `mask targets `_ to specify the names of + the classes represented in the segmentation masks. -**Unlabelled Image Datasets**: +**Unlabelled Image Datasets** Some datasets on the Hub contain images and metadata in the form of features, but do not explicitly contain classification, detection, or segmentation labels. @@ -1726,12 +1694,11 @@ can load the dataset as follows: dataset = fouh.load_from_hub( "poloclub/diffusiondb", format="parquet", - max_samples=1000 + max_samples=1000, ) session = fo.launch_app(dataset) - Here are some other popular datasets on the Hub that can be loaded following the same syntax: @@ -1746,7 +1713,6 @@ same syntax: - `ScienceQA `_: (use `"derek-thomas/ScienceQA"`) - `PathVQA `_: (use `"flaviagiammarino/path-vqa"`) - Many other popular datasets on the Hub can be loaded in the same way, with slight modifications to `filepath` or other arguments as needed. Here are a few examples: @@ -1762,12 +1728,11 @@ need to specify the `filepath` as `"url"`: "kakaobrain/coyo-700m", format="parquet", filepath="url", - max_samples=1000 + max_samples=1000, ) session = fo.launch_app(dataset) - For `RedCaps `_, we instead use `"image_url"` as the `filepath`: @@ -1780,12 +1745,11 @@ For `RedCaps `_, we instead use "red_caps", format="parquet", filepath="image_url", - max_samples=1000 + max_samples=1000, ) session = fo.launch_app(dataset) - For `MMMU `_ (A Massive Multi-discipline Multimodal Understanding and Reasoning Benchmark for Expert AGI), we use `"image_1"` as the `filepath`: @@ -1799,13 +1763,11 @@ Expert AGI), we use `"image_1"` as the `filepath`: "MMMU/MMMU", format="parquet", filepath="image_1", - max_samples=1000 + max_samples=1000, ) session = fo.launch_app(dataset) - - .. _huggingface-hub-load-dataset-advanced-examples: Advanced examples @@ -1816,8 +1778,7 @@ also allows us to load datasets in much more complex formats, as well as with more advanced configurations. Let's walk through a few examples to show you how to leverage the full power of FiftyOne's Hugging Face Hub integration. - -**Loading Datasets from Revisions**: +**Loading Datasets from Revisions** When you load a dataset from the Hugging Face Hub, you are loading the latest revision of the dataset. However, you can also load a specific revision of the @@ -1834,13 +1795,12 @@ revision of DiffusionDB before NSFW scores were added, you can specify this via: format="parquet", subset="2m_random_1k", ## just one of the subsets max_samples=1000, - revision="5fa48ba66a44822d82d024d195fbe918e6c42ca6" + revision="5fa48ba66a44822d82d024d195fbe918e6c42ca6", ) session = fo.launch_app(dataset) - -**Loading Datasets with Multiple Media Fields**: +**Loading Datasets with Multiple Media Fields** Some datasets on the Hub contain multiple media fields for each sample. Take `MagicBrush `_ for example, which @@ -1859,7 +1819,6 @@ complex, we'll create a local yaml config file to specify the dataset format: target_img: target_img mask_fields: mask_img - Now, you can load the dataset using the local yaml config file: .. code-block:: python @@ -1870,13 +1829,12 @@ Now, you can load the dataset using the local yaml config file: dataset = fouh.load_from_hub( "osunlp/MagicBrush", config_file="/path/to/magicbrush.yml", - max_samples=1000 + max_samples=1000, ) session = fo.launch_app(dataset) - -**Customizing the Download Process**: +**Customizing the Download Process** When loading datasets from the Hub, you can customize the download process by specifying the `batch_size`, `num_workers`, and `overwrite` arguments. For @@ -1896,13 +1854,12 @@ workers, you can do the following: subsets="full_numbers", max_samples=1000, batch_size=50, - num_workers=4 + num_workers=4, ) session = fo.launch_app(dataset) - -**Loading Gated Datasets**: +**Loading Gated Datasets** Like public datasets, you can also load gated datasets from the Hub, as long as you have the necessary permissions. If your Hugging Face token is set as an @@ -1922,4 +1879,4 @@ so following this recipe: ... ) - session = fo.launch_app(dataset) \ No newline at end of file + session = fo.launch_app(dataset) From 6cab1d02bba970ffc4566df22820c82bf3b3233c Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Thu, 4 Apr 2024 14:16:26 -0400 Subject: [PATCH 54/65] makes fiftyone version req optional --- fiftyone/utils/huggingface.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/fiftyone/utils/huggingface.py b/fiftyone/utils/huggingface.py index 2e12650de4..4b498b15a8 100644 --- a/fiftyone/utils/huggingface.py +++ b/fiftyone/utils/huggingface.py @@ -63,6 +63,7 @@ def push_to_hub( private=False, exist_ok=False, dataset_type=None, + min_fiftyone_version=None, label_field=None, frame_labels_field=None, token=None, @@ -80,6 +81,7 @@ def push_to_hub( private (True): whether the repo should be private exist_ok (False): if True, do not raise an error if repo already exists. dataset_type (None): the type of the dataset to create + min_fiftyone_version (None): the minimum version of FiftyOne required label_field (None): controls the label field(s) to export. Only applicable to labeled datasets. Can be any of the following: @@ -135,6 +137,7 @@ def push_to_hub( description=description, license=license, tags=tags, + min_fiftyone_version=min_fiftyone_version, ) ## Create the dataset repo @@ -309,16 +312,18 @@ def _populate_config_file( description=None, license=None, tags=None, + min_fiftyone_version=None, ): config_dict = { "name": dataset.name, "format": dataset_type.__name__, - "fiftyone": { - "version": f">={foc.VERSION}", - }, "tags": tags, } + if min_fiftyone_version is not None: + version_val = f">={min_fiftyone_version}" + config_dict["fiftyone"] = {"version": version_val} + if description is not None: config_dict["description"] = description From e50e353fe1d823ada60e55a8d13918bb821af6be Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Thu, 4 Apr 2024 14:29:11 -0400 Subject: [PATCH 55/65] document min_fiftyone_version --- docs/source/integrations/huggingface.rst | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/docs/source/integrations/huggingface.rst b/docs/source/integrations/huggingface.rst index d918849232..b618c5bf5d 100644 --- a/docs/source/integrations/huggingface.rst +++ b/docs/source/integrations/huggingface.rst @@ -1137,6 +1137,29 @@ Creative Commons Attribution 4.0 license, you can do the following: label fields, you can set `label_fields="*"`. If you want to convert specific label fields, you can pass a list of field names. + +Additionally, you can specify the minimum version of FiftyOne required to load +the dataset by passing the `min_fiftyone_version` argument. This is useful when +the dataset utilizes features that are only available in versions above a certain +release. For example, to specify that the dataset requires FiftyOne version `0.23.0`: + +.. code-block:: python + :linenos: + + import fiftyone as fo + import fiftyone.zoo as foz + import fiftyone.utils.huggingface as fouh + + dataset = foz.load_zoo_dataset("quickstart") + + fouh.push_to_hub( + dataset, + "quickstart-min-version", + min_fiftyone_version="0.23.0", + ) + + + .. _huggingface-hub-load-dataset: Loading datasets from the Hub From 9e1e7d5b02846d65d76ffc4b939cb707be23ee67 Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Thu, 4 Apr 2024 14:29:33 -0400 Subject: [PATCH 56/65] validation min_fiftyone_version --- fiftyone/utils/huggingface.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/fiftyone/utils/huggingface.py b/fiftyone/utils/huggingface.py index 4b498b15a8..aaa4615497 100644 --- a/fiftyone/utils/huggingface.py +++ b/fiftyone/utils/huggingface.py @@ -11,6 +11,7 @@ import os from packaging.requirements import Requirement from PIL import Image +import re import requests import yaml @@ -305,6 +306,11 @@ def _get_fiftyone_version(self, kwargs): """ +def _validate_fiftyone_version(version_string): + ## match to "a.b.c" where a, b, c are integers + return bool(re.match(r"\d+\.\d+\.\d+", version_string)) + + def _populate_config_file( config_filepath, dataset, @@ -321,6 +327,10 @@ def _populate_config_file( } if min_fiftyone_version is not None: + if not _validate_fiftyone_version(min_fiftyone_version): + raise ValueError( + f"Invalid fiftyone version requirement: {min_fiftyone_version}" + ) version_val = f">={min_fiftyone_version}" config_dict["fiftyone"] = {"version": version_val} From df1db86053dbdba87bb4b667608fe00cb0e68aa4 Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Thu, 4 Apr 2024 14:31:52 -0400 Subject: [PATCH 57/65] remove unused import --- fiftyone/utils/huggingface.py | 1 - 1 file changed, 1 deletion(-) diff --git a/fiftyone/utils/huggingface.py b/fiftyone/utils/huggingface.py index aaa4615497..43ce25ae1e 100644 --- a/fiftyone/utils/huggingface.py +++ b/fiftyone/utils/huggingface.py @@ -10,7 +10,6 @@ import logging import os from packaging.requirements import Requirement -from PIL import Image import re import requests From e4e78acc66562d381af190729db6b8f6df286789 Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Thu, 4 Apr 2024 15:19:22 -0400 Subject: [PATCH 58/65] adds preview_path option to preview dataset --- fiftyone/utils/huggingface.py | 59 ++++++++++++++++++++++++++++++----- 1 file changed, 52 insertions(+), 7 deletions(-) diff --git a/fiftyone/utils/huggingface.py b/fiftyone/utils/huggingface.py index 43ce25ae1e..37efad01a8 100644 --- a/fiftyone/utils/huggingface.py +++ b/fiftyone/utils/huggingface.py @@ -67,6 +67,7 @@ def push_to_hub( label_field=None, frame_labels_field=None, token=None, + preview_path=None, **data_card_kwargs, ): """Push a FiftyOne dataset to the Hugging Face Hub. @@ -101,6 +102,8 @@ def push_to_hub( constructing the frame label dictionaries to pass to the exporter token (None): a Hugging Face API token to use. May also be provided via the ``HF_TOKEN`` environment variable + preview_path (None): a path to a preview image or video to display on + the readme of the dataset repo. data_card_kwargs: additional keyword arguments to pass to the `DatasetCard` constructor """ @@ -157,6 +160,35 @@ def push_to_hub( repo_type="dataset", ) + # Upload preview image or video if provided + if preview_path is not None: + abs_preview_path = os.path.abspath(preview_path) + if not os.path.exists(abs_preview_path): + logger.warning( + f"Preview path {abs_preview_path} does not exist" + ) + + ext = os.path.splitext(abs_preview_path)[1] + path_in_repo = "dataset_preview" + ext + + try: + api.upload_file( + path_or_fileobj=abs_preview_path, + path_in_repo=path_in_repo, + repo_id=repo_id, + repo_type="dataset", + commit_message="Add preview", + ) + except: + logger.warning( + f"Failed to upload preview media file {abs_preview_path}" + ) + + # If fails, set preview to None + preview_path = None + + path_in_repo = path_in_repo if preview_path is not None else None + ## Create the dataset card card = _create_dataset_card( repo_id, @@ -164,6 +196,7 @@ def push_to_hub( description=description, license=license, tags=tags, + preview_path=path_in_repo, **data_card_kwargs, ) card.push_to_hub(repo_id) @@ -279,6 +312,9 @@ def _get_fiftyone_version(self, kwargs): DATASET_CONTENT_TEMPLATE = """ + +{preview} + This is a [FiftyOne](https://github.com/voxel51/fiftyone) dataset with {num_samples} samples. ## Installation @@ -365,15 +401,24 @@ def _get_dataset_tags(dataset): return sorted(list(set(tags))) -def _generate_dataset_summary(repo_id, dataset): - return DATASET_CONTENT_TEMPLATE.format( - num_samples=len(dataset), - repo_id=repo_id, - ) +def _generate_dataset_summary(repo_id, dataset, preview_path): + format_kwargs = { + "repo_id": repo_id, + "num_samples": len(dataset), + "preview": "", + } + if preview_path is not None: + format_kwargs["preview"] = f"\n![image/png]({preview_path})\n" + return DATASET_CONTENT_TEMPLATE.format(**format_kwargs) def _create_dataset_card( - repo_id, dataset, tags=None, license=None, **dataset_card_kwargs + repo_id, + dataset, + tags=None, + license=None, + preview_path=None, + **dataset_card_kwargs, ): card_inputs = { "language": "en", @@ -388,7 +433,7 @@ def _create_dataset_card( for key, value in dataset_card_kwargs.items(): card_inputs[key] = value - dataset_summary = _generate_dataset_summary(repo_id, dataset) + dataset_summary = _generate_dataset_summary(repo_id, dataset, preview_path) if dataset_summary is not None: card_inputs["dataset_summary"] = dataset_summary From 40f7b928fc80253946fbd0c7fdac77dc1554d712 Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Thu, 4 Apr 2024 15:30:59 -0400 Subject: [PATCH 59/65] documents preview_path --- .../integrations/hf_data_card_preview.jpg | Bin 0 -> 623363 bytes docs/source/integrations/huggingface.rst | 33 ++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 docs/source/images/integrations/hf_data_card_preview.jpg diff --git a/docs/source/images/integrations/hf_data_card_preview.jpg b/docs/source/images/integrations/hf_data_card_preview.jpg new file mode 100644 index 0000000000000000000000000000000000000000..12d717028fc722927d8bb6b83f31b5be7b6b5b3c GIT binary patch literal 623363 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

&LHA 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%0Dt{)mc|+9L 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 nu=wi0aT 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 z zBw)z%15KWyqDm)L3ByfXTDLC7vJuVg$3<4fQ-Q3cV|-Mv z7Rs&9i*%D%Dc--yae)crI!_5B4ZE#P@TnSh$iuX7JIfiZx`+YgoN2K31sW6ri>MI% zaEDMH8rl?CH5%Vn3cMnP`0K4;m{4gOan#X!UZ*R38|4o4_@|H_by5^iw{9lSC@Mql z-CO5%j?POoaCIBy10%)yVO*?T7|7q0N4!#|cFm4%M3{Pt@D#9({PFx$Fj8T8^+5Zb zz;?s^x$*W|2II&h&%bPvuy&491t=gwni>eMRBG7d<#AP`;=(0n3m+jQLFqh0&;mz$c z;2Lv|T8jpE4I#zt(^*-tEg>uOl2Hj!9H_ z>i&;>gwWpz!_;-03%@%fQ72Yx@rHM6)%e|etN`|oN#(N{N=-UB-F?^~%IRSs<@{3< zH6_1{7okFoaWOep?$gK&a7@0-b=g-W=}}v;35Os3LQibQ0Hp0$uuNFm$OEx3_kM}! zc@h_U*c-5ZS8U+fb^=J`&wYB}OMSjGXGbiQQu#edd1V@83!qhXPdF4$Zj?jN@7~O> z^KKqS-@|Y8I0824Gxp3g?V>&9So06_Q8%Zuk-~B?z840AM zfSx@Yqu%KU zUJ&P8gA1lHG+lgma^3w5(IO)Ru=Zaj^s094lPoU=KvB-1EGzHC9;&5YLWlTFC;HeO zP5gR^nR3~nv!jM#u%J(2-08XsL+(S;W6N8;{QWhC>2eBAnej^CpUDeHpj@>IJityHLkOR-Gl2 z-C!oC2T%}DcY3!$XJVp%D9vRiytGCzC;EJcq^AX-Za;zIy_2?+rfO2BKsAGE?P*3d z9EaY4%JdegTn&FeO1=&9Y_}8`DX>+G5tt}qk^_^T-hcO;+tz$Z{_U)iKa>IIkw~BM z=i5rq9wRU2>tzK~u0te_9u0Qq*wjIB@QjgO=f)^Y`XiQ>us-bTc~^eW)Odldh#b4J zJ@>#q&44#StwC9VDcH)N*VyUhzzoxwnsdt_bW?zJC;rDt@I}M_R8l{uaT|u0-{*zby{ow!N!v6o~+5h`{^xrz_C;p%HQ(y8Pwc}sam(yc> zy5jC`%((UDgQ``dQMpZy1TrA^O+-cPCjvi5MxG{|NyCt#Cvg{w zJVM0uYH?pJKnm=pRB`SkNuue?`JAJ#-WLh zG6hNXwca=Ayla2gWeL|u{x+Y2u|Uv{ZX zr+r_S)J)ROwt8(S1y@J8IBrUjpY&j!0qoM&MBI=1QuiHV3D0q| zKHfF4EG3RO3-Kp+(!5K&o2~H*EgxshMkF*v%i*@G`@z`8EYbVCcGd$4E@?`XJm!++ zXYZ6fdlWrW@S~6X7ed?Goi?*Y9yI-op|bShzuR`*dS5s{-%nAsE*gJnqp`you*3M* zcRtsfTEm$X6(CsFCcMWvXZ@eg4|0@teo6=OLR-p68?B^crL|t+JHR3ww zk1&YT{e;2JEA^S3)?s24b|3NFhGtikJNWk#G$!Lp8A;ujLt(G_+s9C@@)w<7#V*52Dbz4*H@H>CJ`qh%`a0F) z#ht5hal=owe496=Z(n*JLWO2!ab*crb&Dh*W)s^5w9`o?gWw5NOdx639eGnf+-afGG;iQJeM~4C=Dp}iDwBTSf4YvygCDX#Dy&tK z=~|_0$1i#jH`k`3ib_5efUQ=k)8})4K?gxI89{5y_jaYV1s=);Z9!$!qwKYZ@|f`R zHW=XX!t#%~C73Aprm5LO34j^4}EjE`#9pY1oxu%9_zl z_fYqzp&ja(Pvk^xIIZQcFZ}!IXD3h4RI^SFy-R>_#0TPDhw1@WDYxckYANx+3&?`q zbP|M-?6fT`F31k1qT;P&o=|2U>k^-i2xNwCqcuXUVr1+bBeVbE^z;SbLj1)$P5}`g zQP)_GMuPZh{I~$#_}wb-CsH*ws|5YQhi#I1*`Z2lr}dm9n5@&`W2sU6C?e>-)^seV z)<2`RLtqE;!zCVuFc=@kB)=B8+yhd7RKgDxJmc@JiI2=UJWspp(gpx zn9uy=&eL6+T|W`CbGdt^PsCr&0Xx?Y2rg)bvdz zrZkTLqwu`4ORBv|GMYc_SKQq}Gmx0aXyk*~RYibor(s=xja1(xA@#3aF+}=ml?ks* z4Y7;xJX^?oT!9C?ile@yO_sfDh^$TS^J1Wagiugwfq5UDG6A!I$5)~OZ<_Ie7val?Urs)j0ZhOs}5zy*JN#l zI^3w3hQXVQWuj;Z`*vW`3dstm?3W9r$WAL6L4ZDYaVvcmLX7;eeH1fkB^vzS)0hV1O*i`@_mEn2z? zDS+yMgCY>gHU@~o;7@o_+b};lhe5wWn zvm{u@ez?YGgnrd7i+RwmV>?``j&LC3yV7=MB`cHXW(X;yF7HFs^N&-A9LH^RC^f?; z&x$}kb?*KG|5rb#Q*55(HL-=5sRqt6NjTGZ*VDJy2{@b{N0a0PB*p*3@sGsH(t@)A z4YU3hLKSaGU-w!ItjS&n@zh=avR5IL*V*YPV@L)FY%9!nJoTq(e|Y+x?)@)t`2E(A zL=yr<0<3BBXV4yfMM19y7S|hwwF_4$>132hElyHeTj|@}V>9hBf&|O`Oq2%RT06Ud z7{9IXkRxDsJ1~h!{51Zj6{$pA=X_g_%6;ywz~DG&Wyi37%6*m|k?(OEDMZ7p803Bw zm<3i;FRD7r^3=ZKrP{sG4#9Xs3g)YBT1=ve$(MXAR$0CmUmC82LJ+L?)4-QU-uLX{ zMGGw5jk^uLpW3Khs^Y8Hvi5}n;xn^q6?CWy#CZTt$FoHC)QtM%SXpfT>@&_kB_vXE z_CBeuMJLY!{k6~9dk-#OCu&ESIWX{_L=Gkg4sCBIj_^*mbLzXtyS6)QLBDm<6dLcV zGrt~P=k?9-A<__VirDrkVk<`I2_Dj$M^kJC`08-fqT4@wo4B3L04vtQ>(|^kq<-{i zn!f*aeqTMM`Xf*aGZ&;hrK)CRmiguFo-bXxA6X0M?}kRKA9F}W2{Z9Nm=dJMVKg8o zCSJnt#Qu$zT!WK;%t7P_p zvZ$*(P4P~)_HAqvEM=@4e$@LjRu84B*D{5rnMumFvESl865hWty6H>1nKVh*jTjcVqPy{frtgR38VsVyc}?6nybS*&ucmzcG_a2XtCh{N5U~V_PVV zFrzv(;+cB^k7-d5vfx0VD>}HWJYPI<~PW?2Z)9gaa=w@|A2B>A3YB-}ZU0bh`IBtt>CgJxt{Kv4CN^40m*4oo$CT zvSr5B*$&ly9_C}Ycai@spO9ujpSRLsSbUv8=wA@`q)l|xAbtok7?X#>HU!8byg0-3 zR3o$?pXk)fR|dJjWc;}E*i799Aw>OsG@|iV_x(GLSw%MPm5U-3^D@5GVL$D|1?%m3 z#1YHNcD@Fhx#DAnKJ|7%Y`^^9VyvbL?HIUy->l+CL!d(H-vgxjQoyD7sccaU$o;M zbgEhEWi+s!4JTv(aPJ$*j+J1(Dz}}cDc>wmZ*Be1OX>ttPFV&f9lf7WY}t{i_3Q_V zE4j~WvHsQ8nDIiF23O5K{e*|kPAd-kS=y5ISHWJ+!QAv6YbsU#S3gV2@xs*Ns6=w% z6B{Vy(u&NNDGq-ulU*V`f@Ite##{gsi_F3LM-_imel*ksjZ3>+R?wFjfq#HJ@2v5T z)B9o|78xV*OMXWibP2D4A~}3)QgRIK?^5H5>)P5`PFw4HWo~B40d5@~V?%*Sq?83azFVA*AKr-_l=c)U(RLW1@H5BU?3!3L^^kFbq$? zA70_5CB<%rt=PKI_f2u-PG>VWvN}lX{<5bP_ESswvL}s*1pIv?Eip&RF_}aMfL%up?{w53QM$4Q_Kk0t0lCLYc1!6sfYiPfcuf9q z7em;K#&k~AhLO{{?1=xvp~gX6_qmAhagD#)@^QhT@EilrI$KuZ3NFj(Q#@_S>1dFQ z_Jse2NH%G=&8*GMI1uuRiDGn0v!Yi8QVDdfzRlt-Vr{k*ya4!(7e#zpB_dAlF9Qx{JRR_~62kT+U_Ci!<4C1Ovd{bSHWfk{S$J4^plPgmd=@MB!(! zCTDCfUrokA9oSD}L{_I$HaJLpPtvHsZmH;-Ap5Z%CeY^} zP6)S8f8H0YiPDQ1liqO-k(qN6MhU#dDnZmix8(CSuaw6AE5+v@Z2>E-TfS7_2?W?V zZZ!S|xgkc@Z=ODxnDmz@u*17%Cy^@iHimb_18)7X;{MntT?wbe@w<=Zar7KkJ~0LM z>+Fh&_TQ6TtatBOHq3GrcAm3jbKMd5P_C^FvP=)qhw4I=&pX0v9Oi4$q&Ln4@cT^+ z<-E{!j_Y0Q=!ma74g730Fd!nc6vn9JDW0VHC*kClo`@rM(GmbM4=C*w5ACI*Rz&PL zu=C%{0+lE!INd^`udvk(HD!h-L-&gyuJm~#L+t{r1J&@kGGRmD_?Z}l;-K0NLznS! zI?W>ExF~H>y&X7=e(4A^YF+nE)G>!%M?E0HL8Qm^3O9&M6S+y)fWJPd@o&+hMWY~^ z6SapPRqp+;!(gQ`(7n#A9$)d4#>8$6OZ@C->c5M&I*l#6PJIIa-l^ur%ItF)@b_P% zY2KdDw|^S#94}l7Dk_VapX8ND#$Qy(x;SMMq&tdB{itC~+W;i#Wkf=BT_Q7^^E$Y` z>aaR*2gPrIsN2`Q3Q3>tD|oCGchlT=v_co2T#|-#Jh*Vi*?(DRR=YYV=vo^q{^naW z$-=15b@#6vsI){2k^(M#<$MM9zqkoJCoO@raS2X3J5Yplj&GZRQ$88Lh^JA`tfQd5 z%tey+21lf&$ciB-%pHESwKbR`! zca&A4SwmbadaXV{EBRDNOtPKp8E|IQ) z3)DzZO^rkc)j5)3>UMRPBzLwQ-wwmMkAO=Bs#C&0&yy zW2RTC;yCJPTyIF)F}!!(CMt9^zyR5z6Q`P^`1i?&1bw5#IMt{=InNvT@FFG*>AZlY z|ML6%NTQHH&BmPH4RJVFzl^+P+*G>@Y7(C1f(|NPS{mHyuf!pm|9t>n5n8`trwa?( z%?!F#VfAl9`eBq`7hrDx;q1N2ev)ZQmjV8Rj(gW;z-e68^sN9@q#Ldo>6f-T{bhx; zAi!wD=sJjcZ$PQXbU9Eg9t^X;E!!~7=e^7#V-rgtLOnk{r=}E5S5fMFo;v4`uIAxF zMvy#KvP2*3ON=RYV`+qWeJ_?C={4b$QE)}~NVe&Uxr?b){9eV8o}WI>YyPtDX9B$#SmT=f_b>)N4w%eI*s`4Y+V%O6;l zaBeC5=JI7QG$Ck_`52xH5kN9!rx#{xIiKhq=M>qWGZN{wOnOj!&g>uPq1h;5B=&Um z`^@mOcu&<+`cFqlf+gkH$Cv%Tj+eViI0gi+=z`R^h4fnIYl#)!t{EbpA1xgPVXC0%%dl=cG>@CCg-hi z1w+myN0B~XfCf?HRHI{{`)0gQE9;+>G+HVy1#%4pEuq%p?nU{3qNS3W0fo{u_kS@| z;Lp!>-`JfoP4Nza$V?Hr{xYY+4K$6@9_+NXH}FTnEbapU4YP=F<(NT5TzWrG$_Z3@ zH`tL^o-ZN8k(3jwMc_7@YBJT4D;hWg)2acruC{Heni>~r6*%9}zpA`X7ukqSMghS{ zQm8LL{58bGp=AGMW%lw_6bkMX`S;MZVFnM~=OP&vWMSXWOOe+M`l34}f?=@8oa2Wx z;F?9JbkyZQvm`@a=O@6cA_y@$RRBaXasaTVLdw`$Furfl8rvZsR^#Wc^ zm3OHNPm7<_8fZ6<9K@5Xt3v4Lxy$;?T3+;3k)rdC`CtD?d-Tuy1lHQ%lZ+~^I(SsovaS5~M2%ItVW2S{(%Rb&C-%nSH7QTSs+u<9}iAy`q|my0+0E z0t#pZMLH2dP>?27TC9K~AOeE4h=@oRX`x0$dK0CIQ~{A1=|v#)-dpG`v;dKW5&|il z?facG&iKE(b1wdiZ~S*jM)ul!uQlgdvpn;eHIrelecdISFJ15M%;eapvlxp$LmMjn zEvbvZ%rQ1Wzfr}N4=}SkxuMUzG}Evt=f<~(`=xgm$&&|=C0Hh+Y=)v(Ba8jr#8^qk zbZaqDw*!jj*eym!tPIAv*x5x{tKTzjqzwx2e{WBha58CiI&JF7J$-%LJaL1LFD7AW z?fk`DN$(f@!=X2hWlsBQfUst4{zKyIYN}U1e0g*N^5-e#_$)=MdIDsvFt_byUeFjr z?{n$z63p`=E#*e!pLNocm0>PRJ~I|-S|=bgLE!98Sy8ok6{<0AG&gYbnrbO+%UFZK zz@RQ^X@i~gg0eJw0_yC`*x{i9r};-6pwfE`MGcgK?khR$Jzl4&zXnj4Xsio`-G!zL zfV#HN0_H$gE9|$>;{5u55@Z+tPiN-;FI|@Z|NQsAIx`Rd4=%XF=}jiiT9P&agYp#g z7W{`+RQC1a`qWgnCJusyKbWjyL3vt+mgjD~{C2R&(m(Bf0qfCyxY&xjYSc@Dj^_8d z`%z;&U)3iGNiiZXa);ztZvT~(k|j=E@wyjs<5I_&fOoEQKE~N_N$|OIrsy_-8zZ)f ze_1>n;Fm87TUvQ3*_gkKQ8A8qxU4sG1L8i6r|)gucdHvSSUMA041k0sjiz?S5}UtBRgEe{JHl z#a;sbX;T8;*5rh@11>VPZ~rYJqjV$He7eNCdF z3gOj8$Xs3e2Vvj`4};!oXK%bmqE0}ysg*TlM!Ee`e-aS8wgq+q!hfnv*rK_bGqgxB=s=%ZAXC1m9O9|W`6G>fm3hDfbD&~EyPn})P%MU;YGKGyPLiJuT&H*#sPoTSkMmt14i z+FpN=ZTE;Ke5B>lS^11MM6E$ZHdUXFJ+|V|;|EBU8~b=*r)H~|xIzSDM}EBUr}dCe zK;&=GnMa2wpeAErHN77;rV-p)M_9rr5MR~vO$sk01=6N;oVTpQ!AJp3C+MK0{ z=3+U0Y`ebaYWrQf^J&vLltxfJOO$nQBoaASpg|@M9qCcTw?1kMzS?Cr?>VlSf%W2Abf24@3+e^|r^_X*L=7HY2-j^-n6zDXbuNNTHBOro3>u;v$zcWSn0*AX0 zSsxIsMSyYiiyHkhQ`>98->+6T6QA`Bohu1;Emy~=8p{$aF)cDI{H%7(bH(WXxI58h zh);>2bT#ob&V_28YW1^80vT^2@|0t772Cz4fooR~qxD7(=cK%5O<_3oD%yISxO{|{ z@$>>S0Ii6QlnPv6d5y2X_}%XGZdANX&pWf>D(hXO&_n<;9HBk-YE)GvTW!`AqH?-s zT30r;#JdS+SxBuU+on31US1k`@e7;Q8YW7l&6A_A-D=;whaFQFpqWtX{&1;&?HKUXJw zW?Z_JiW423u2qo=hVUMUM}{LSysay~Jnb_&6;}e1+ThBxGVWGEX2(gLs zqI<6#3?31xam9JqGOQa#k^ETeJAL<=`FiUsg;LO9RY}{k2vIh=W<8OM>x!crK zTN0vKofAcpC~OZv`=sUWEBki|>wNwN8Ge7~YCblDzDO$5j3goX)4}^*FS$(>Qb&0m zz}VPK@W{Y9$d%b6g#%{Ie^Q4`+)M+-n4BE{9D zT2ijfOjqwn_Im_j$KSTy%NWo+y>1u1n@QI+6S3ZIbD{Xft7}X@DoapZ(zWq#C1H-mGzdv_ zO8xYBz!?WihL62Z%BzPC+`||@nH>F86lhW8+RwjPT>1UiY6ZHItFaHYIROC9p9_4t zNq>YMRCYYdBZtY@f{5n0)~1Y-sXN0^K>D7i1F>>`|yzHOWAt zrKM(0-C|}ob**ZZ^p$LkqKvRd)4HvWo!jBxLcz*!r5V($YA0dJaP zFC&@)CR@QrO};*NIkR<{?)biwNEdpNIZE`bk*j!W$l|P&r;;t#g;gQ4| zm!m{^V7GEA#LC<@-z?F!P}k5_YRM%8Fz6_DT3!uo>2WD8!y+3jvgW?M*fO7!AYyT z>In6#=s^+UE5w4_H~}0+ze9GPI+%A@5T(WeMCxuRFU%uG zck)Bw4tW_%no&4i(b71?P6na)wmK6DO!0~X|5+Adifck?{gUYgHg?&PxO_4&jcP%_)sJXZjV-3Zn$CpJ<{1x ztd+0)yM*)>)fpE$?=(yk}}pzwTTY+)1U_ zTM;zF&vv6yG1PL)udaBOW&gAtqQ`ukoWUZ0lrG|#&`*Y78LBvSV5S*JJ-@K= z_F2yUbFl4-n{~VTHOr*ESQ2+0qUFW1pA&89pP=NVGfu1|ywu|R<4(^pjcfu(=-5kX zM8CVL#uZF|H0qo(-?E~ewT4?pUQ}0v4R-3KjsO~LyzBx@@4xHOFu$vW#$-j*FAGmkvHpvN`YpmLytTpprTg5r)_0xTdh zQLG`=$@ko|#(V)eRlQ|tg-C1@(M=y2uKEDwd2E$I?DvIHZVh%i&vTAJcK}7>@uJ+S z?ux3I8prrqNu^fZi=*4R01y@4I2ihkf z);z)%E!atuMtw$f-4^I1=S3h|^p|1(HR<-?2-U~E6$^v0I%^H(G;VFo0+o3>mU^5` z0Ja)ob0wq7UEG8zq;EqL<>-RaC~MKvGAthzg>ehoqLPm1zHi4s87yAXbgM)+w%W>Kk#84cuHmnkz$ z%X?tjnW$yI^tMrib{~@c35Z6GxGgjVp6or+6LjH(=Z3u*lRU2+KtOe*s#-0VHjO#o z*=JWIp^IXtA~CLC0Tc3*Gx;3|)5{OmTYbDx4(`~8D25Yr#1t5N2 zojbrkIXW$`~yGhV;xF=4k;a?AGzP-ioTv0H#IRQDzpNs5+baIfmZ3^9~(7 z$G2a06Tq1<#QLQAtw}kbU+ag=i^24o)qKfnUYL)NBoAaOkD_A{ibf91bIu7{|yy3@dx4)nB3ojAS=1*Cgq zQB`U>AkoBux~zNl#}~H7X!lpbQf_Odg?8UUY^Z`K%33*CLrZ(mlbFQ}9J@q7pC2z= z?+sZ_)h#{UQjCejOMWQbLb`VV@1*zu>))|CewKX;aE>x;JJ{V62oo6yuHC-g4e@O~ z(o?{td=9uE_^^4vtCRpD1ibmLN!;XzT7dE0BIqM?0@D4BAk?WveQqdrFq_J_hoR7pH&+_7Pzk@gs&G=2kse_UgG9OJzCdgN zsAj@)5CDIxoTkK*coyL5JN@f~At|0MKJ%aV={i=?bh!D&JT@80O^MdYGvy6`O&<%m>5&duo zTVk4xTp#7P{~?h1`S9!S&7N*vk$b(-$(TlQ?99JQar!?H%(@+VCQi-R?SuftCq#uX zjx_@xYF_XF1iH@%rrlnc{u1cGrtcrL{yhyq4D>1xGe7i4d3J56$yy*j%J+6L&3H(~ zKMdQIKFi%qQS&dH%2=w#aa6RZLf+?G(7hT8D8z?xJ5?z{q4x8bz2>qulfxK!h;Fic z)J9d2X}gX?*RvqYu?lT6RK%i~emzsnFg;Dv`D0_cg)_D?P2t+N=RzHVvn+pktJx;O z*7NnZc3Pkn3dOG@IfF!>p1Hmm=ehWjEjHIv8jGk%sDIu`yTBclh@sljCA*>_y5p?| zQt`t-I`od9$Qr5?Txv=XvY`sJE^~=AbvVb`*FTUBRDGl=9ReKdD(=G)J>3Ebu&(3;(vV9w|kf--|oT|8_i38g%Px=Alobi}RmY806$y`{` zVLix2UjpYs+JYI*TCS;2yX8L`P|&ySH_h#kcgWBO&ZiBHKUANM*wb)d$o>Hk4KH?v zOl@IA@_hF0E?L~2*RXA=u;tsE`5@j0BhRSYnEeuQ|;CFA&1Wwm( zbr^rjF3#9^cb`ehUrmbkcDJntivQS#z#gFXO^Phk4KtqI6}o z-4znSTq8;q;>lwjY=XYfeZQMB$`&llaR zq1+5+aSgT^`f$E!K`atBkP5m)b z4zNgB6Wxd1sZvcqoWbf~}ye5h3!mQ|GhZ7LDpTrMq-IU!MB8qI&mp<$Wu6BVi zfrkz~I4jb+brwH!?~>ur)b?&wr(9$(HoCb?JbF}}*YEzQISV+bBy=DKLv;^5jI*_V zKUe0kk@b8UkjRyv$$poFjHeA<$vJ*5%h2!u-bPdc=1*d9S0Gfz2Fr0R}-Xo1-54=T=H4kX*1yeWsC)hF{!_ylJcw{}|ogyTt zcJB;88!#XnC7^C^l$u)!H0gV0Kk_MUG#0okRAomFN%vwlB=LAh4IT^!(pFnDG{xAn zKPz+1=Pk?&qtzi&uOGuF>#0kyyZ!i}w({B(mybt|&Vy;9dawp_L>o8|%Hii*s99_; zz&N%&awhTma&?Lz&s7kJH~Wp6N{U^z@Z7$orAGL@OR4U@?zR&7{30$9il*+>;ZDRb z3|m8op$u7;_4O&Hd5%HKJ!%TY1xae$GcHYph`q`UcoEC1ne*D%3ga^6MvNlR3Xc1c zL6v8WS}t%}zl*r!7B}h1@df$@GQB&-VlygVLj;{->R`ItalF%9sryM#J)C`OG+{}J z+L;WL72KfQI{~HtMl1mKG@;-C@+qVIFs5D#!va)jUVVFc^Q`V=tLPXoya}t{OO_8n zzfUxdX1|-O9wHx0lGTuqplNH7V+q?ulPJWuh}y5fVX8Q0Vx&%AUEa{}Tk+RB(pA|j){*$&q~ z2%7`j$fLBt%8sE8iDxF{77 zbYVm@b>%`C@FpDBNiJlaX2zLluyG5B#k&b{5V|Nn;8Y0-t4nAjRsoTXJ&9}5J;k13 z4}zdl{ZSaEyxdp63=qr|oq)>F?SV~~sS{9pS=zEzwG{c*B7o>mSfgE~Ce+({OE;E& z;jlgo=|-swl_ZKIBB6i2U9Goy$Bh`ZZWhQ+*BmL*SwconC)&jHKD*xfcK2_R%Th$0 z{iV4RkOA{#s&K+LfSNQAdeNObQBR!@Nx$;_vrm4Xzc{+y2tV3xT2;(}tNawp^pz){ zzV5m~=V{iMTjCu|EzsCkPa>V%u*5hT#{|~$5(zjHva?3zA8~Y2D$?Mct|rTu1svuO z5z6msgLwilx*h8ju|e+kL>|YyF%Y!lS3e%rd2^D-aI!PAbFWa!m5_U}*GUX_-iMm6 zdGKo*gORo7u|U&92*eDGxlFc>2StAaVYlQXs|rLEDr;xu@;|6Y0@19Wq`?*eDQRrt ztG=JT<{WQ~063p__kO-58e_B)XrS9T_`?FZFMn@qX}v>bs(pMt)Mf3RG)qt3QN;9x zpB0hlajvnx-xI^BDijrh+$Vb5TGWCrl(1Q^&bifn;fBke07}{Q7=0IL6Skc4s8m%J zZV{um!Sao?q~`)c)|C<;f9*8f2DCOm zZwVESqZw6n0UjEZRIr0svY^1Yrk2baq1Yc|noEQ2R3II*#QBFJe3yEico9cJ?sB5> zYQnBEl-mTYR&9G_JbfOdSiX^Wt1DoHxOgje2RQdQEYK8jm#Ayi(BP7;{k_Zi^Au51 z^Dl-NJyuI$>w=;%*<*KNL5#oyZRzIyxbrls|TGbglR-jmN=LjMcL_ zHFoDGVqa|kx;nSt%iw#lXXjE~X{FFyx9QlHg@_@opNFkpJvK_PG`*#!#Q?+cv(=?w zNRalj5_cm6ULgI(LGPB{lHM&SO{}05Khv%bPhXo^hvI&!2dyDBgBBOs&6D(4=Wna^ z=Be-cF=u#_+lf@$#%>;RG)W6<0*pO;>;)gO~M{fC~hQ0y60!bbL2X8 zdGMJ4w0Fli2h|iCd9in`dnxkpxF=)D^a6#Q^yk71I9SRUdleBZ&`bm)tx(B(WIZO* zoPndyJ7YCQ60q+N6_yV-UUKjZbEyo|euAO9|1%&B{&Sw>u*?)FI#9XPJ85b4dBCk{ zUo3~YkG4P%dTjeuv-XvS%-0WUA56c!6z^RG_5jU?H+vZ%5m{JM#77U4&$6b08^Dsp zco%y4fFp#BtE+-m{lN997<9_6w>**!s>8DwfS~9+I$ye+Z+c6etSN49u5ajyg%cpv^;@ViAC_vQ|#h;%m2o--#o( z8?h~V)1umh;NKMlRmkLF_lNGAVXs_{*P83dJjbtQj7pW__%8Uzl8l!gEP!Z|T|L9_ zSJYE{1ThZ|VrU>uls4YTH6&4yh?kpAuDZ*Wet++`CF63=sXLflcn$5++9AI52u7oe zzPSSqc+o}WwRqMgwLk^Bm~djwJs&0W8cxpgo;5}tnoT$AK?M-@pKAb$IeXUw7eWcN zZGi`6r!nlZHm)vEae?>6lb@|gxpn3bO|nhths72 zNb!60j|+K+^uKZ;qhxdacR4#0`Ow(d{|?;9Dvph}{Xdn>|2wL*|DVd{k^ixk&BreQ zg6?5}qLSQ(IKXhyqLBT{)EfYf$R6b9zbuVdZ;_&MTX4aa+j>w zUa-n3jc=^zFEUeF&XsE7IFpRLbj`}VCM?T4t4Y7z)_Wn?*lxg8Q|eu9=19yq_*-nl zi)dM%x7~SG<|FLK1{8dQSVYHMyVlh~%j+zO!K3F7uFeUB6r34R*87qW+Sj|~_BGCGHicX!+?De>xzAP)LG1zy{3`n!NIG%T$Ypka@@@WVC{3`nSY0kC^{4=Xf}<%CAyl4zgAn;ID((vys} zIq7sItN~&#h;01V$4r(2%!rEsX9rPDcGaYFp@nVri9bbuon!Dc(uLHJ{#vr$0g_98(`lO+6AwefKo2 zSoAQ3CPc!Pz!7c9<8jwqq*evrOZ!*5j?~|`Bq99?5ChtP81{EsA$KRtk>^hV$@b}l z-y@EdGL7)7ualh9KbDYu@8eOys(0kY|Af7cldZYl#aJD4OIP9h*~M(mzY9C6Er-pY zH!rdz-a7krCnWB!J}K9IS}ITiH-iK9e71Iti)Eq?R|F*3nvU0V=EKS4duvOx7eEng zmEcTO<4ixjMj)ESRhMSpPt_E3#Z_uFu|d*dj1;Bsf{u|T$awWpb1>ItaG zlOBMYms<$rl^Za=m{iqnip|7CE!Q{pjLaVzj}}{Hi1mJBW1`#g(jS%AE`H@}(%QO$ zWOhhvUYMtzO}OTup|>N?Yf?Sp?hqzabzX!Em#(HnOTZ}3-yU&<^pJ(qt+ zWUf+>HN~Rug;0ZQ`jz3E))j)7zVw>HoFj|4s10n-ck+P9I+<}2h~;Uj%9g+8I|`qn zO`(SaK&04g((bCG=-2He*AAfwr{zl0W@bMryJG(CP+4bK9d z8D5AgO+`+c6;|i(&{QkxeiK0W{VK0p+P5*iu0iQry8>!riILu3i`vbclk1TVr}T3y zKO8%9{6&Fj;w1TsUU3B11D>}{MyVyH>d*vlSWIQr80CcE>*BK$t{=*+LOrz=S- zhVQ2LfVWqP<(&K8B~kC-`SY&lDgK;u=^rRR>%UuswkDNnBrQLoZ{4wEqV8EHECKN4 zT#@hsCo%v$friw_b|}!dp1sz%Bd7H~Z@M%~p0nH9G}*>s4_cpBfM{V@a=OPtRWl9v zHjSa*+65p1f9qicjE)75nmUKAKT52li7((mK*H`oZQdrQwD+(~(>ll6m#R$X4!3xv z^-ScwR3V8M{bFobMExO>%}=WoEio~pUscCv9sU)1d>ws_m3ARc!F*=Un)as?2)zco zb!w0COxj;O*ILE+Nx=B9G$M->l=j(2L}Hb29X?q2&t?l1LNBIkeU7@0nPS)}l* z=1G91j<2%)M9P)QbXtoWpOOTxR*lf?X>O``Fv%vTlVjLBUbSG>-(TE%84}L3M%0m5 zo)U)LF!w6)mKWXLma=xrq3vx+a6S*hK%4)ZfEdg)n5J^PaYCwf3A`V;FfNX-8YKw< zaW+3DBOh=j<6D28K|UwFSl+|e=@8qaDQ|Au81!tvXYBKhC?)K*Rw@3F3Rk{9W1Ii} z&c+unjs&IMZq3(rXH>Mi))23g1)$SrErq8-od)iRf(To%VY&M+$Ug_5WGc|e0ln8r z=I^}(1PlSIh+S&Q3qryovC3zeR39Q*jjEA7ZyoR9LTSRnC6?D1d3kBLv# zW~%dk^DPkk*X{A3r|F{8sv>$Z%-3`@BiLueG0#o3kGzLYWt=h8?v@C$?0YWB$ z0MxY&{UlGVKpz_s&jyZMnx~mjC-tqs?d_rX%q0tINM@bo2NO zTZ^TvLV+l`mV^N<01Dj2m?pZg4~9`#5HyigXf`fBlX#e9l zbR9#1b^+YP%f3LLWgvFgRQ(V42mN2ZIv{aT24|Kt#_=bhJuE{3Vz85hi0iB-9#ZMi zK;v#8Y#v?^`OfFTrz^4{TWjV3N&9~uvzhGq z<4t9)wpQ=0dM4Ie?^N4Gfl!q=E7&xzc=I^AD)~^tKB%{qzJ||wve?kS+LJwOvS^~+ zS*X*EZLWHw^~(64+LwRIzX)&(-&5Kbs`GIUl*c1Q}1T{h)c;|ws>j?(a`wjxLGE3U*22>F_- zDLj%E*b1a!A;2X5Y9DOZGGjNzjv$@Nx={UMRz>jRYgA$^FW^hx9tHS?+THyPz`!BB z1N}Fl=PuW6kf-f4$bP^g=Ui}T{h0#A10F3YC6vaFoiwH5WBz&kTqD6)jr9K3v~;xAhHQs4jxNMaXOVpr}tqh#|Fp6fR=>r zAfT(X2Lif{KG=Wr0t4pd=XWRHD&W=R|2+)$Vf%Of&vO`oV7>jqS1ey-IXc&XsNYRP zs@Z>Z22kAp2-}As;L^-@fJje4NhvVVf8V@lx`4ykhBm}+Mt3Fqam&!0sfvk;hM+mb zVNX)!D>6bxDbd=k|E5*T5*X&6s^9Eg2C7n@`1rh^Z2t2KEU;nkZ_s8bIN~V$r*2e` zIlHn0K}>Vf$rrAE`Zq$0s7Mf`&npq{qBtx+L`wyO&b2WYiTG|o+6n0Hr2jN!YP<*@;V6 z=x2$@-UVK%DX0_lT%_Y=3uQ;lRKJIjyA@sVe%zU{|!hCf~=o1THUDx=WJ+vL%$~)ni3Ze9pY_!(G$t#dfGW zHxLZq_uDvcnNw3<8O4JP59r{0u~^GtqQh;gbFQZn_L~3*8k?Q63M%=t#y8qVGnL^D zHd^hboAS%gGisPVRJ~(kz_ZrhT$BPk%6+vx{)wuH3mFKp%4&9K(f9~~FXjPc=h%-) zi`SFhMz^~uD$FQ}w1kyjk;1Dgg0rPakkQKT(YfI^Emqs>Js|OYp%lNw$v5aUD<^xY zzb04s{}6DN2n;OpdBCO7{;^x3ETLkzB{m{s*7GZ?du@HV^NSga$QmKRDsZ9XX>3-XY$k9V;eL7re=4Qjc+@3HUqR8CaX$=r; z1iv69QvF2a=Ip(%)`j=IF=v+<<3k#$o(E6lkESJHvcxamReRI8?}Lg^7ly-{O`lAU z&;C%lD)?wq`{IY1Elb};m)J%gLQK{4^9bb4-%3Zyls3LotzyzlPYCUP!4EVxKelS|A9E~)QT;!)szOr_<1`v5|W1+8h((64=Be$*FLI^UhQjgez*uWKVMTcQ~YMWM?T%%gspK) zKz3XFdj$c}8W|Zp;j;7P4NIHSfXvoV0C!2DJ}C{4cY@f*z>*->vB%cC?Qb^5Dz}Y^ zArM-CRDB3<_^N@hcdp=*3-jJ4Q z+Gcpif*D=?vc?8HwH6mcp?@DHNEG zn!c){b8FCIKsyQ_6&@%-(>4&_*^4lK-)T{>XzsgY>vO6j20Oy-8TSo}Ki zDhq$;mXX=Gz;}$wpOsi78KnwJ6xts{CH2#{cxY3akwd{B#P>aJ|fJN5Wn=4i^5(n$w9 zegBOOQNrbKEJauuwy3kLFTZ$q{+Ly|!>phU{=;oth{u|eR zFvJ4q*kJo%_E7z`W&Xzl4@WDxUz7Qo;nQZl^mU6MrZtC+Egg{_9hKM4ug(2;bw_+( zB7*&_6r)t3KO5?+s>NkrOLAV33}^r$b@7}X{t%syI=ryj=TW6^S0p}XlWRKFl=cf+ z4KwhYn)k$(fivuqy;K8$!f^V@qQ%~Q2E%nzCCZ&rvo5cmZT*(`-b{-Z>gD;kbmJZK z=f`MPbuqu&b`wh;N@j>RuTBNVOwx?lNcs4+6)l_bSFGBO!f_P>(rQfne_qv5ziMbh z{+XGPJ3u2nj|@GsSeJ0x?%8ug9vGnTWxpN%_qSEFO|^Fw-!`)uQ*<84{ckpQv z*0}H4s!>@rIF0t{x+?@xbk^EtRMTt-kb@&M{9&Dq*G*o{@mKwkP1^erXrOM-`c3Kf z1_(JN0d3>4qq9v{=^&#-#;-RFfIt|4!D<(_v|3T!c$3goasN7P<}}A?!a8&xX?D{s z>ze7rl*5*b(9H)+rb9ufOdM~k@_76)yyARZ>l@CuW5xG^2Jv`a>QcKuVzHlFvvqQ1 ztQ|Sc-Au(k%IN^?8;OLEm`Q)}<)eD>>6~idIr%lF)~LeHN-GcCGZ5#?(=Ehao0LVI635&a|8nQ?Ffs z_4zc-@oA7AJ26mN?=2X$`RNqsL3eVeU92k}{h4Ip5OW(tF=i%&x=xZTh?gl0ox$5$@w z50;N&+Uq%WSSZN>RZm^TgFcyL}1@5M-HG)QOrnLnX{TsNKJFs58O(1E^5;Ax+BRz!f8f~qI@~Tbr%ag!~h{d z!{6O+!Tsz&a!-gNZpW*KxzIT}ga}sH@PY*SfS})*%k@961o$KAj+@Xc zu9odL(NeC|72`!?qWdw7aFaIZQ<8>3fz0fkoZb#Fb~q&aO`TszT6_8QBG8n*5bmJM z(qHurKwP1yX>eq#4!tg3K6)T_iR}5YTSWaCU%GnUe8Xj@SBueq^j0l}@*N8*s(rZ#4!s?!;02V*)aucpy2DOmAkUVhIk@FLwz=6M-&^}J%S z{_}euqfKD=FAwRG(u;KL?#+&@&ggXwUJQvK>X~gFr;5UI z{vh9$X!5u+xJyZck1HABQ>z`zeGk8<&{r5EUb_0}ByA6)9YUrsxl z@{r4h`}ht@vS;(R9kp7A~2)2&Z%yusq{t{ zJ;#u6B+qhvvi;#(CAl43;jI7WKCNV`sUWv>bM1&T;-k)8SIfu838Sgy2D(}ATN!Hd z4(<@w^V9CC*+Z*?hR{h8eQgJYu6iOeDabG7JSTEsau=hN1` zrn(UuoC;>oj2x}y&ONwjqQzCkU>|)Ik%+^ZEIC!|C1Y>Ir#_ zA4f&ju+zW&ehrJ*G-fl8J@WgaFeI*GR7t)zm@rcMpzmjOwA}dcch4bQkj9Njw+mQv zL-d#Kp+zHC*XuhvPxm;X*29Swt>T*BQZTs68_PO1UBxWE)$#nTTt#W(oNlhE<8DIC z!IGGbv0^uuE&U#a_C2#)wOjV!iWcSHztWFSbN8!17f<;<#duD3K&=o$);Zg*LcVvN zVnB5C>q1{l$Z^P?E=@T;-|<5^>QwBT*5oPjlX(9hkK2?JQ0Ai=c`hkxU$;3mTAy@A zyjgaTvrn9hREL(HnUaVJvQQ=~J6$TodMi(pKyATE?#z{$G}yU)Jk%*I&Lub+f#Sk$6nFtP-g;EoWW9d~B-| zhx0p^J8vKNO6#4qr`jF9*q+AcMXS1x6nq^dTN^UH7s4u%aiMD3OfJ*los#jM^-OQzw4k8L2$_jygI ze37RZx98=FcdE{07#=zG0OuSxpmY?^2l>TuK709~w$#MdBbjcu@LcZ^&wk+olYiqh z;XsXBu~k~9@UxaEZ>TP)MCCc&GtPOG_e?G5VT(NRcuDUw$9NO6QM)g)-GX-B_3i}aJ`ZT)-r%D2T=C5?9&9>+fekNVI! zj$HtBFhgN^s{^0wcJnhOCT>VF#}GDUAi;gt;;v(y3PI%3xxdnRLbOvd`-Blsx(^woz4@+vk0+t6nF(F;{2a642DV+7cd{)XZz)l)C%(kJ zHhljW(ghdDBP(ycVe`sPb|T^@b~BwRP99AwbTLXuHbOuoa)wka$FKRg6Rf=Zuf__(|7Lfj@U*wwPY?zffm7Tv8&pc*lFDX z?VVEWp@7!Yr;^^nd>8jI`-SQJqyt;wj|1D^ER0@6dUS8dP=cKfI`$tRUOjzG32mMi z9u*{c7n)-QZj@J)r_m+e5DMd3p-Tw3|DnGkmGAsihxnb1W9@#2UuUkQc0<0&et(x! zjbBVpz#%TVgTbV{HgJjg_TD$f=CP}RR9%NbOO`?hExGPF&%cU$CIa~U2&vJI7q&wc7L1IOOg(4`zB-iCGKRdD${QmP0sp}V-Vhw`6 z!s<(-&O2;L@4nAw5=wkL`sG2mL6m?PYs?s~H%3=1H}mSyqG6Al5q;iVSH52xfBVDX z=l+onBf0!y1>F#cbpC@dc-N1O+pt$nYWb}Z!Tf3uA2k3Bj$Obny7fjXk-cW-EaB{` z`?Gfnc}K^LQ#PkP;|kz}tK(N9R@u8Qloix4d2gI4Di~kYjvq;owB2!xL*)ZDvX3{5 zum5SYI%f}#XdukF6NK0h1^gStg7_bUlI)o~o?7{4n$uK8w&g?6L@K`MeG<7Rs$f;OA#x)-s} zvcL*|WZi?U3d+;622$?J9;kDq*BTEzFZb?;LtARMd>vfau7%>HS}C#o)dbHt{vmOX z3v-_XtoD)DYY3OH;@FAmrsVTO^Hxs{-^l=UAXdx#lG8nV+Y`^-wO3rUUqyoH%gT6m3-1*h^`t0cRaN-`bDvIK06ssQSvTTwL;qY(uKu?g z8)rDO#!r+`xU}!1)=){yWp&f!dft0}oKTGXK;wU5$-8u|`E!)bxXDXj5QD=;BM-^n z4I{21-P}I4JH>kUj#8K7J}xF3rDEJqL7-{Jnxr0NBkwuCDCU~y46 z_WRW_Q`6_g(uFS6UA-i|gIe_WJ^`@^H9_||0gnw;Xk<%RX!T8(lo#iO;FNhto`{fu z>!nW@tV(C0wbc;PE;?hYE-BnkhOcaHW~%LXRB3zdqW|+R9nWX(5Dk@Kc<6nY1xZCz zN+D5?T2?Uli^7dKf{&u9orVC8Q486jcY%f;dHbb8`MsIBG9je$19FYMCJbOn07}wY z6*!-ar25E50SrcuH;iP!MGv<(JQ0E9;Oiub8?)$%#pB34NcU#Nh@ZmQYCQsED%Pp` z3TCfA;AX}Qx|6wSFl(bgY3t>W$|9800^cUPOXaW}5R7|mlBegg`aCymhs~Eq?b|Vx zzayCC@BhW#TSc|C$MK%DltO_*4Yw94g`mYXr5wCKp+ImbTHIX%r9jaXFPh>`@Zjzg z4H}%_9yCZelXLIeowerSKFq8&GY?rS582skNA`d3-&a22eH{=b2D)p$azV6QOi_<9 zpe7Mqs|_xO_4Z&Gplsri%)$vlff|Pjw+dJPpky5L zF^u!2{$`UrT$k6sWZvz3DpFu!C>=eNlwI3TRZ7r+KRSzFFJq5vBlNDnMs%Oq1XFD} zoaEpJV-Gv1VJ0UjA(Hr_XF7;ajXHS6F)U8Ix(JVH=KB&Xaq&YI zoF;CECS0e;tbpEr!vsnY#lJ?n-*E;>UmpNUE?P5M^UF6~&1pGR=5a|hUY3K|>8fX% z!Qdvhu}x!e*@%Y+pKkh@y--J=ya372=rwIyIwJN#p8 zp^L-xRT+X#eecCTKT^$~GqQbV($Avc;aEl~xACxkU)hLU*YByL_x&I({#IP= z_GIIsbsthXHGlAJ!n=lylVa-Q-SY~3l@r2~6mE%R*D>pS8{K z*>xiWHG;KY7Q&(|^?=gaSya_e$B01<>@r@3pNfhEHAuDQ4NJ_&95OztAb{x@%@^`V zD2$)>n{U#y>w!^4OLad?SbE;e#V6Bhwpqib6r^G zh}T*GXmFP?@09dN?&$L_%N(bq@OG(ES!gDw z9D6`qdDo#2VSk;wof?XpXr*hX?o^!c4?AK&3BOPoB))|EcIX8L{JasIH)s&1mi zCdYuM)T0EOt^eU|&p-aqg9o#W7w7QMx)IL%Wxx{ujGY(t(-nw@VG;{_u2p1TaJu)Jt%YLV_u=I1{ji5UAv8u zeg5a^44ul%v-PP9r>7%{gZCH z8;1>C``xo2iaY2bElLl14uuCn+ft%ZfIVEdQk4E=ZTXAA`@Z<4y(&Zf^n#7fXQ!!& zp4ZiUiYP*g>xH6y5uHo&LIctInBP!d8rGyv_7!|M4mW8Kzi(dPZgU273Fx;u>0Td; zzGEu~&bL(Aj)FZz^%~fxPDIZ)Za_QR!EMamBE88r9z~t>RHV)t6R((De&M2ksaeF; z@TTy?7q3tx1AS@&Gp*bIwAq~NaXD%|6E$iJa=8Xc1sI2f65H5OTrs)X8Vh0E3Kx~^ z?qdXh@oejM`G+u!Ej?~1r@D;5a2E~LJDNp)R{Pvj-f@LDyO|Por&qM>SkvsbwNOQ~ zqf5p&cV6-MXmT7IrHycm_9~S2w-4Wts`TX(A|cy=xin~+d<_`D9-mwmu0Ayuq}96g zdhw1+>(SWAArj7;dvcgG)HCDq63+g-fd3kV3QSrbaZ;N6M(%)}%^! znTZKq8~kpxL^6;|AAu(}D2YG2KrzS$(4z~`Pu>F@0W~i&nTPf4JP-$Fk<`$?37Z-? z10{?x&rio=qzx(nU@KFOLj?tYU>H+#>GdY;CP$`s-@ntYo?SPP2!BIUbDC^VfRDHV zd7%r}>qAePRp6QvOJl`G%Nv1*dX`r&e)2$}9l?w@mN*zlp>Wg5DtQN`dVBJ{!Y4bqGQ zT~pUjFC=scTC{#u<1W{%2>nGJR75!bKwqTZ(-W?;Y0w>NRP?a;cG0>(6sLo3M(T&~I`(^^Jqezo7?`lgpVmbrUr^ zU@}+U0~PDToi}tj!+w^w^uecPO3|_865vt5CJfIzZCfGy?}W^0=NWl69-cgS6_^xY zl;<6#jAqLanTdwcMSmwBhICK1g@v(XaR|Fib#+Pb zd2l^tAF2vN5`K8X;CGG%tR2(tC5zYf<(41|2U+b|tPCxfpOwdUoJFGg)Z_oAYJ^uq zo9YkTXhptToEY7xF!UoGd5^3T2RT1L<&G73{s;aGnQ_?aCR z*RXyzyYn0et+%jm2V{7ziYSbC|75$Q^rLSxX)7_3E|;B2;o4_feq|MMUY2#4icWX! zsox87za#^W5INFu7`u~sdnc;CtCuZ(+?73L&aH0E-(}WYw|hmnT?!QOv?NfM_d*qJ zYOSZW?9~xsXMIuyNUGg@K5Y`fSZDVVlsfjKdxd}sX51F8@orh1 zxU&Vpk{J;wR(i}TdTk~YT)r&Gk4@_&L|WW7?hv|RKy-hmy~~Bc)`-97C{;fx`e-Bh zm47DtZWpqtrrU2Wx@?Wv5xp(#^Iq&%b}emML9GJcyLSMALMrEd~agOU7&pMto zL7R7vkuBhkoAAg@bZChZOn0cA&r*+t{Rk?9Y;EskI!Ta33*NMrLJsy>LM>RKb*{ed zEWyUc)`Y4bZINKF@#C&ZHDQM=a%-k=!IfXOO>O8-?3@(vu-qM~+8=gQ@kmy4+VF}| zxBot-z>Xi&=$OA$KHt-vPM0UsziBuH3VcTfb68h-wj_%4alt(LGS>2_7JW3j>$t6X zJ8q&rASC%WIBw+*!fA%taT5$9iYZ1qc&q`i)+lEX@dQz*p4H;i*(Nq!zGnB-T(9N~ zgVfR52-F_mXJnf}UOnHd|JfQG2kb_+xt6ihxHj40Jj~zy&iPK_b<*#M?&NTy?WTC5 zZ~mRqqd@bouA+=trZ5f6lauAK-auB!&=icsppRxfgQ(ko&=srGWj0Xms+8a7# zcv&(Q341AT)3S1C^wn+bCL3{oKMPugGRd%+Iq$DD&XcI*z;7DR-qkK{g?^h$Lgh7igGz^}cQrXstuOT@)zfSu z9$MG+dT>_lhT}5N>)v$W;jO^$DyXIR)LtplA(5ldKF=3}uc8lxx8X&w^jh9XTKS>} z@qVxU2ohGz5RqdEzrLMONT0!$17j7V}%X%dfpJfLym0t(|#SPU_fGlDs zsLocx!Lw@2;~X!0&!qxN4<5d_CmvqDAw-%hmQ?@5-W@G6+J(TgW< zt`8JuWbP?CG0p3e$vT&=02}j>5SJC^=(U0K-CnKA+V%Eu-uC+^@!H7t<|}ZA6u5_p zx`pKF`S=LMnIKu0HC1o&wa%*R!sMsqbSFMg*AAJ(-x7J~87~lBmP^vT!BjvZQR~Miv#BDWn%6pK$*pL5@ z0al~)`V}K!QfqzptXSn3_nZIpZA3j@Yu$gYJm+17&KlP`W642g`HQW5q7^jSt|D4xE>uXV-?zbiSZcp^-%1 z+sT|7-isJUs_XRo>+(1HDt|HseR6dTOOBX}uhlcm^L<+s)TVMrn!~7fmy1UV=N9A< zBOMfFE>c_yRR=yL-Msn#Ow|=@_1&^{2V&a8qVLC05IfT`vI#@AK!zt zmCUrnE^$>tAY9g?elh5NR3BF*PyxQ7@E=~?r3HsJ(LYzJ%~R>0X(=0}s-_akr^32R zKws%12f+>ni!yD`9@8ikQY?Aj{EMeJ*&>i5=eke-&Fj%6p4qP?_{8hPph;)33!#k_ zs=M|VBTq|{n9M)K{lJ~Cht1MLwas^mM^7XcV06HU3pxin#b`>-$D6AzCVKwB6Z@HD z;J4|p`3zI6loSyx?4Cf*tH750Z86*e=#I`32hGEoULDwfjh*y-D0uC~nT1DheU@+V zD({eaXVP_=993 z=S68woBv$++nha2jlRQ+4PTIYY6vy-whXpjqT?V9fBpT#Z9Bv%|En%{e|*7}=W-EM zg@XAW=g3@b*hIM%zC{a8#bpJAC*(n?HR|!IV=djS%1=Rl&_;zW* zApb;kc=bpWKPL{u(4Oh`?n)ry!04|0k1{Jsd;o9&CXN<-Q+w@@-C*TK){}HC(=pJW zO?`*QT*7&SuXy1H{F!!Yg3Wr%lk-_@=K)@ zWW7X%oS5^GFpw<1K3mu|R#<;(qG_ZlrA)NE*nfKDajnh(fm0l%$z9ZEI5@CDhO~_S z#cKuf5N*&J4DU0zeLl^ih$niCK7GJAbJVz>=Dv}7EzRg+I)6L+V)>2h>BvgdA~|08dwT*R^3cQ^u5y+TM^|mlrEeiBgBxDxoy~a z1?*EhR1;UD>=ASDF|<#Z{OkF>$C5apYV6Qmx=dPNioHo`TO#D$(y@w-bZ!ymm*Idy zd{oyBDd=hTXv%vwXv!IROMedJq)Sv@Bk-l4;(cWYw-snV43dmMCM0=A5x+0-xvG&Dp$ zH=t0Cx#7%#f}&$JkwE~Nr$j-sNkftWLJjA9%8gt{&my@k^= z+K6_)09>B}Oa2?g5Y|CmgHA>xAQ%7hb&>)(=2-Q6=@pdzn_lH=vcv#Q$SH4wRPAkQ zZnroia0-k%ycayi$en)z7vq9s3wL(fhGrS8TPf4;{>5Xy4MC1ILU4j*A5P$q1fy|h zM%uL_Nnmba><=@hl!Fi0t^4aMn5qvR#TGJuECrRZeQ&66A2uCo&&K4nXiyP$Zacg@ zo89I8{j9TzFq#Fb7svft7#yg;*|@Tw1t_bG>Oz(o2PUHz73OmioUu>+Wp4FN0&@BQ zKF$;ICBv~q!=^YUh(tH=)t%Exo9?kBP=JdQUs9BghKfd0!oO~WTH{AP6~PtVXr@x% z`{*W?OXC14r6+Mz_mV3p!{p*Tn*nKET#d`UQ0Lui%*r2s{c+8szt>bn{6fv9&pyxx z?+(B|Oub!RlTvlp>i(R_OU>J`c9{@WW6j1J>VDns!xiAGrO>5sLq{o{G+#7`^z|&| z?+=bV(;z|yjX9Mm*%cP9&#!Oo zDSxMNkgcYRM%K4DFs9^oShko-1$T;x;(@coXQ)DJ7t$9JrxtmW;-eUkG(goG=7f?r zQ_30Ug`BssCC?KtoIb*$+XTHsy5TWpY-L}Nx`ml+uwxb*)EHNJ*25ELKjPCyoTcy2 z@{=DF%_q$)<~fUAxGs*{e@txhJxE%4IiYjD-;?lj>oRg#b`;e0@0>$ao2Kn&zbw0w zEh_}hRb)tsJNQkQxOnV})(wo+NVDB9+zX?18sD5`0OxgnrfX;q9z8MN^F|@t9A>12 z{Z-nX&NFpvyiR4h!D>nQRKeWVh?$vv03e7=bUs$>X4M>-@&V)ECKzA*Mu+V+8}e6JMKlW%C@z9=?&lTsJbQY zRUb!!sV`*arwC4|z(ZfEA1sa2W_}Asx)~OS&kH`@IJabpYdbK>BErIcEfrW=@P|M$ zgBbW1kVSVw@)LC-xwVY{h)Aw$;yW@k()REA(1-BDU4Jq5^e!Z}_j~ z;NjU*+_s0h8w00=l=P8jomc5Bt_>#K59IJ4W$;K<8S(ZwNPKFYFkb%VS!P=H-eHx$ zpQB&WI&EsweV-2YP+!k*Ztyv=A%$e{)%$G**C+jxX@x3*a#zHs2K>ye(+=S3!-BuR zMp#XU)&&|Y=t+4Q8qV(k!L^kp&v!{Y@{9!39a21;a3i!`BS=^J0*s>nQe`GyX*G^g zm?Kd!OtjxTv`<}myM-5H4~UKKd<-~&t^m(%scqI56U`wF?YLu>ZfAKr#8g;HU2%2 z__S4c9Vz8`v}tAN6J*XZ?s*4j4wK?>dS)`nAFJB@@TmWaYNj!%a`N?*qZKmzuUjbf zVgF8Cb(lCS);NW8aWiV!6;7NRhpG@N>If#_A)PA zyUGXby+bz_+3X}0{phn8ZsTm|vizy&g3Y9Y3u{#9`PZ>R-(7nyK_7>pZ`q;@YRh$f z-u1((wZdJLk<16LRyi2_5N?Hc-%WJyy)z~Db=-^;>NRTd<9f zgdtyd#Y$2T>I_CcUTbF(n#GoYl``(Sj_io-`911oN|toKgl!A9v-vssIPN|J)CH_t ztk#uXi)tmPr<&3>?B4m3jSqj7f3VSpr&-Z9rQTe7Ouak&%0+p#*%^-+&eWrCIN(6j zX}B%Mgfg~SBMA_=rKM|5jJY((edf85L43@8*uuduNwXdr0&ea#r%gn*ztO}kjAJh| zTBpjwBVT)c-7Hg}hrwo==$0J23^*RPX~a4!qao_bRZfK%%NA9q-)sE8b=}}JqvG1b zQB33peV3iwr}M}_6?|+%wDRz8q68VH;QcJq7aXZ=XiL;+Nb~^NL zPGuT;tMmHW|M``7-ySv!)9kT!f${PBN-Vc!TnQ%)vh@01*3Gm;2n?sV2CQ?x*xT<0 z2@Ffjuk60?;R%LbEhwrd`eq!B71+U^h#S^Nt3`0hf?uhK%LkY1N?*3s_4z&_XODw4 z8&BjZdk|4h^KfT3-g8$tJBwo{X4+&L8quUKY(s;hbUsY{+tJgy9wW+6z&7{dtx)fT9*gL^xMU{i!-laJNd5E_-G%tbhtbZyF2*qQi&LjVt>6t8hckYT zgw4#kO~2rAR2q83SCqN+g^XZIiI^(%H7diuTk^s9tdOqjNG^;-dn&JxMVcg}u=-k$ zn67x^-efy+&%?+{omx-E#)to`ygrY#ANcmklQEerg+k@kGJGuaexRR;z%op9r-QabR`T)-y!#OoJZ@fSYz}LH$RwLv&xW zsCIw*ryHv#0~(U$h%ZTyP4hk?>2~F7eOQ{>R^MPFyqekW&!~oyq;G8Z4Tyv5%Ilw{ z{s*VB@e`1iZhBHriq?`n4v`zF2H7|Cl!Q+0_~#{*`W1zaVRHt-r>h|c z{ECw*rR?}g>_?gR6z`->TEwUs=P4#I+`u))EF4Y5*wELZ=@H%~LmxSsv2G*9H@(-x zxzdu(r}PoLNe+lEN7(`y%jKB1sGE{s4M)OS>29S^E+s4MV5=eR(nY@8FmX`SDK0a&e_`u&-jv4>S&}cxZX42C!GDdWf~dHQN8rp*S*`Z4rI6h+u)uc*&X~HwfAMS~g@Q5SGY+ib zX&TH!x#4@F6}|pqR;NuPtfSe9ht{ZAh0_Y_PmyBwS%yE}e#HW+V(Aq-8~elq06V)V z6mfiX-Z^|eFi@VFp58JfBpS@iJaWEohyMv24nKX^QrMdUqSekHt@87BFyE%`J0M$; z>EAWLwT!EWw*YJ|Tdme!YmAGq#_bUJ7o!bO#wi3BeNcyD8RCuw#k9pX@_KURjpC^6 z!`17ov4eJAmI_fHSN)YZ^hytIiiqrw@UYACi(rGxCM4j9I*#D3mNyRhNuR3aeRdN} zOc(ssCMr;iO<`FJI3?m2*f3BEkW+`w{E@t6<8*%1@CbJ=z+<}|)!k`_)3<`!Pl>)- zEVXO-JDto>GD=lz8;9a1LN85p?j$1YV;UP+TzBim?s)ns7;t7QBNlbn6{NU-fC448 z=p8vdD0{~@C3LX%_CZ~i-ofE_=8i9$dRNv7aT}quj{yLK2fR`*7UctV2Ggo}3gDSC>hs zTodWxy70q4B;h*5K$;B`k-t~U^9M=KWFtzfYf2_I3RJ#{=Hhtghs>hzP2y?PZbNN@ zpBoTyKROYfH*?4%TTvb`d9^o#xizOk`p(uN_Yt<9<(H~tqc(;?167U-Ss7bxsW_O( z8-Fd#?}(!1Z~7jg&Dfb_X6aP@(E`ehr3xEjMEE>VdZo`d^Y71G4tnoZKhPfVVAtba z{iLLV+sv3!(uOn+(2?=(-ro}@j|*&cufur697bb%NSm%%Eudo_-2{5Jw;!%5k3@$IyDUPQ z*6lBD=mQ9xy^JLjK4%&eqRd`i;1gc!%=Q874)J@unv5=^Y@696^c94r7U6qHqx+@;gKQze+OL2@_WD+jWEP z0ME+ZnRxrSaE{qWw=?JVds8--Sk)3YKia@!w=qfc_0{086RFbCw%4`-#=AF+qmZv- zSZsWm5$5Pg!F$790qd21UyEb2k6m&{IaQ64g1xS)Ny%*+WrWaFN`rE@ zt&xFmG*``SUV58LBQ@ZRM_{%<_ugD4XO7bidC*J!BT7q>3~hoBn6 z5VrrG1c@2W;^h37+>&EIjakO-FgWck7jPz07nlt06sRC*?_qjgg)0c4Za=rQlT|9E zp2Yzfl(_JC)NTLF^k7GmN}XKcQ49Ey)ouFze~2%nauo>K`gfhFW1qVJd`@V){i9(+ z>-#D+xhlD!RL*R<*b&Z`l>wq`au4o2G?L|a6o{15GQRj+JXEF~hcBcF8x}{QH1#$mZljfz)50-hYO4@A?IWSAVPVEATab@|)be z*UxrIxY1 z$}uFHj@VvZ&)^|CFL=C?My_lkYEJP3PLC6@4wXB6ABV5gaIu`y9c>HE>v>1g)z00C zz--Zi&8TQMox?ibntHqB{6`nUq4E$j2Oohk=F&`e75w*=nglqf`en89x5pQ#L-;^ zSahvG-m8GkZQuH$;zpG5Y(K3to}(-uJ6o9l+$IqrKWqY%{g4ibGtBJ88M72{MRj>$ zensot`#0LBIb^{X1TyDkgLM|t({UVWA1oXJJc>uGbX^$%oVnB&Z0RpdzIy=zU(HTU zgGdbbS%a*y7u_O}{1M_%iTinYIq(2mUc7tTjwJ#OL&*iPw#Tvv|C;)R12kU1fBISJ z4rGB?Gw`7uCwLc%>w^?nT|GHBArd4>-_qc)B$YTsu3&9XYJMB#36(}(V2MPQcTW!E z;C(G;xXy%j23f}HDr1Gs=u236iynI@u=;hF0`b_@2Uyyj-r7?poq($6jS{oNMf)~c zDE}rF-frmggY0JEi6PQ2&K(yh#O|Sf)*JNWY;#MN+~#CD5Pht=BqM>dK2!JAgvUaF zEY_^_TuN-c2|_uq?&c?)&SD?Yx4AI5i$G8e>O^jhA9SsY=`_=aLC}Gx$PGP1hmWtW z`emcRS)9#wESmUl9(-WZF#gcgmV4P#V=c+p zO;P)<-`%q*9HH--?^CiA5Q;BgYR^!*OHPJysXcs4cg^zc=&`{!{MS(5Q>GurFTP*S z-oKF2-;wjrBU)R;GZkmZR{+Wyql#@;cE7E4adfp<)1VsYpI?KZ5yf7^FAE}@raWfg zUToFZ!eh;kHZq$PrISLvicIX^4d_Nwj7jLZoueoqrQX4>TYX5Vr|El>#Q<>~_>1lX zMS_Du46+)Ehq*SyWd7apRKbuYH9YC0!QrVLBZ%zeAF|>A-Ya!6_ANt?-Olq;lI*!f z$|fJ>nhaAMZswWP7-1WKENCs6Tg5l zR?W_gK6wK%OUe*$Z5Z8GzAjQw}XZv-$Zydda;WJ?qoZa4DyWd{6G{zOe!M`~x=knZFw_5#$MAX+r0Ycnk z)G9ubG;gXJkw?Mh(WlM+Nf?B; zUCEv$h1csx*bT+&+5v$~tMP~(?H^#=?)GzE>V1^_yQz|$RF)pa&5xRxBZ+WkV`;eG z={36(5qXJ;d$GOo?JVi4*OS&G@sbufBIqRfSt;RuviPvqy^Uo?66k|cbd+Sz8~i4m zd0Jh$xS(G5RbDeOCzpYyH}#7Xxfpkur`w_)2Gl)iVv7zRN?=q7TnUxv1V2B%vrpI! zwEX~~!Ha(SoBo-)@(DM)0XhY8kdF`=u#92R(qbNgYUY!8& z4+;MiYi`#8f?HT0X0cI(u^;zJ90~>@aI+NxAD$Wy2rbjiDbo#2#gX4HK>x);JEn{T zjDX&c+7aI>Of$Tq>fQ18xc!8?wd_}G#=kdeNfkXjL*2{{U%ih}my4ZW{6~wtsd4GR z8L$V7(1D)B?WNohnHC&PxmNR#In+I!xY7)>jc2F0!l&m<{VLX0PDy#3+*xIQpK(2g5~>*M>!AnY{Ru`2Zy zX*SCdd^Thu8~;BzFk3lt-6uayte=Hg%PqKBN~#%DivuZNbzRD;x7UT-l7A*P7VR@n zonp**TJ0`oEJL9*Pe093{B3MfMaoOHMJsFB(mmmbPf}#EUUgCFj1mvDac&G~J;{r! z%U|mJ{(?bXmpR&+KX$wLu31~k9CcYfx%(VXvKRvig^J zZ_muQo6I82Sa+JT;#GAP|D zb*Z-g&oyXZ1g%|T^e_GGL2IXrF=%QBVaEB5OXOualSUmprs9Z|FNuMf4)kq5OM?6a zCV0z}TDT+JRQ~-?OYVK2b5$%M+MLz8PT2&`IAbe*$D zljpmyt;aW*S(X?<%*Q1qV9UsWT&&4w`A&QKX1ksZ=i;LxCtOyzK6(>z@nFV)rjZ8GxJ%la3Y4HeBV7y&ItCnUmEe z4x;@-3OY<1I$xre9$Ccp_ujBJStim>x2JHUU;nP=`vdm2Mzm98=6HwgYfP6R^mXY6 zTxkChc@G6ELp#!<>+RkKyJs2oSo(b2g;9eJp05{(GmXv`gPL0o}4Q_C+wtz|r5Pa7+;5fXlT+$>_<(Gzk(eQz(H){$j z^0 z%bHaPrHxxXen*}N%^M3tdY2pGYchtH8fjl0Ov{XbGx2WG9_wv|6SX5=pC3jnXXN0C zFUr*EE{nwav-<$xF8B+jTYbIj1+Aw-UD2iwHfIC4ZPb=c68OsVTY&?&Aoa%D>MWJ0 z-xGaiUoyy)xqY8P!q%JWP(pjO z9tT(T6FnsF`pCSQLR~?gi2=_?k~Kqey(pURhFraEd!H$r8E*e!49Pd!r~O2Uen79R zzyM+ZOl$^E{rqe#bvxsjr$US^ z@F>S_fx-KNDLJtX^E!hD_+xo^;KSz`WDPkV5pPUg<~(mSnX3NVjKQr?Pxaf$&yWps zJe}ho=gnFt-qHH7RJ_+=^mhftyC=B@_O7z$0~NX5TkCy)^>dTQj5D@p3N`#_!MM=a zm+q*%Jx_}==j*uona|?p@HOq@+Sa#zxssP?d&mQ-Z@tz#m&s{z8!P7Y5|s8Cr@pAk zycv&DZhUnrDzSLgAxgnLB~f~^t$;PU#k1u6MSv^8P}AZde? zJ@otbtM5rCr#M)7Xv$yZM;MKaO|*TFJfGNYd!_}pRKtPenCr<#C8taO$l(G;9i=*! zLp8mIJ4A6k_f{#E)BIS;dLL9YsPkXEy3q2?l%JAJ42fBCwJEMX3lEsQYzTsO@J0e) z*2StGraVq8r-gFEeUD}EtVs}v{6P2nIb)HQCe_F5q955ZcN3d3)|7wAn*Tu+yel|5 z;Q0LAg!mSMVBl54ef%}@G31#q=%0yE-*}agQ+TIzOViigeoCHDIz!peqfT)BStNmT z%PcLr`7?+22vWQ^#KP}i-!@Ay0*XV{jT2B(R;pm7R=XC{S^)wXGQulA2#jKQSd&&j zTR8yHS(EZ7w!J2q9V~*21X)*90+y@JvzkQ7qHRoliBz{;l$QpUK zjcD;G#7OVhiHBM6XXc1@400nF5(BBroapYX(1o#wCjV5&l)H}u{b(F|TSZO;&gpd` z->0i&$A}9e5;hGk*)Y@SCRIQ6#^#fc*vLs5#&^+RfN~K_r|1Q5hA*)+p}!)UVm89v zp7q!>}yA%YhSki} z(FMp=IBqBr)U{-jN$()l2yyN-?LsoeEbAYv0443VKO2kS zqEO@E`N=HH&z5H&YIr`tmQsu=+BFVYZKtF&p`P2*;8ddJ`&GEK*O~I&mtx@@CY-?_ zrhAdAmQb^4;&L_{SqFWAvFoRejd9-SXP63l>&tT%i~&Kt+rF*M9yP8(PhsV_xwSf> z&E*OM50BNyw7~q0CHVp3E#c33-{l38*kb{swI)IOV?D5+$m9$*VPA(tXj|iaLy$|I zwm02x^IhX;O}=7P`J4?M#9ge!+M^Kt#&qR6Gk7J7DphVD;qfahq0mA7X8Ey+>e(ZC zqlQPZ;-;|~voLSarQOMPHxt7=CSAU*F^)@Pc@OX_n$(hr#g#KSOO(0IA1zlJkhWAl zH6rF;yj1r+0cVT2pa)6m`VGw6ysXE>IH$=M@DyksjlAxp78^UYM*-JNq=&u0ZUBV` zpuM4&!QG_R^bqyFR=@REVRmzxG#Tm*cd!mX#)Gi^?=D&4k|1b4ER{=MDXNwPuWO#hl5n_+Q7BU)a4NPmiz!c??{qn{7^E@m6E|kuCdrmEZK=xJKiD zf4sa(N+6{`v4U@7ejm@z-1o4*_Pdt(Uf|g~B>Cw;g-Ek@A}6!0gi&e!CJkWbkKk?L<(m5Rl$AFj^twa~A8P*!rB$(}%a z$3lf)EXXo=V-4Gy8X9>QU9h!>Vu3C;QeY|HD-$wkdGopd!y#JGq ze9gKa`O{i`?Vi{(rL#v&J@4^0P|&bjjD~!`=k*z@pS#XKrH6b;{Ot_#}F{P*JG8i|aZoyq*n6Jk?_CN)0z9fw@(2&u3}#9I9QYxcUncTOO=lb&(u z19Kz!bBydKh4jx~Hb4HVDI->lfl9WCd+qLHKs0M()H_%Dy)pGkECb^M&y%RR?8{s| z4_^a~WqAn;83O2fG)62f!No`xb+&ak8an6j=%Aie=8Q`G9Rktev-TZ%)!vZswp*vyQljL9XLnNR!J!R4ok2BUxYFt`{ zdpI#dHnFLe=6n*>^Bw)vkDF8tdg_sqFL4b4))9o%a%WFg-SKEwC8fM|7D%utV|BEI z_Eg2;?5Bw*@q7Ldft)_^7wV@J3kUQiV{zw3mfQ0=)w4{+ANSjLe0Y0cl>5dUv#dC- zJq65yVQwi@n@OGoLwrUa;ka^=u=HVt{OJjo8}E(N2o3`;%vlJz`%>&Lihy?MOU9;9 zmB7U8uS5OFO_!V{K)>$fr-V2HU)#E-r;^ZI7U3>j$%6bqTqmyDIk1U~l$2D&A;+l% z@4z{o482}`_*xdtEGrZqdKc)JH9aY{J}>iP;ZFR$3h(gbEeQ?{hK^m?01ZDTuCGM>aM3r%m6#{}+#6vs6_I;xe^x zNLTMKa3*c}L4Dzxz4#UjSTKL_ZJA|!4Spi}pnUzy>s#w1AE%UKbBHen{-LGa>Dhd$ z;|AriD93B7H{bF5XEWmZH%%<|Kb~ozABS?0Z9dX?A=W1%OfIx#=3GI>cN$=MZ*2s$ zW^-@$l*DnbHJeoC@%=@3MCkc$!N3IVL;O!uch;q{x&0?AW{nT>l3=-VclsXyfA6H$ z)SqL<`hasc_J|n7Gb6nq`djOBoJZ)E?|xKVp&RzpU}Z02Ygrlp$dd=mIDMemIhdDl zXZbJQAfx>z(d|f}0?i54r6opnHRe6HxkhzmU5f{)h9z&v@s@GN3 zU;d9h(QqJ^SK@9M*1-$reKWqfvR~H>=2?uRtNtqN;8no8p!IL_pVS37$+Sk>Ms357 zEF9AHvO7_+%!E+=JCT!>=!@f*hD&Af@44ulJ0boT+sIb-Uf;z_X_|2-tHy6A6&jU# zHD_LS!vJ+WkdPr$tJ)FrD#d!sMy2s!#xB`9L z&fRXqJ3rhFeF|%vSao`g+)rNd$#is7A^$)rCU&3HeLsrhH(%gz+muvsOM)|HA50ga z+|8!wep_taY^@2IzYWIoA%Tk<-kTIiOWQPjx&S+agO`F&+c|)?T>b(>CUnk z)Ys;}>&|l595#$y$?%3?bV4V0snBoJsk&dDW$^4AO_?vj(U{rf`*A4we>S-G=Xv8+ zS>PJ66-K=v{Bg$B0Ko4_Nw4+as|J1ns>@5>r+J?EjH%QmvBb_8hpXX#@!~0z*MbCSGE7edp62QR6(@{OS6nnAvHO18CWYFlys=D z%i?XWj`uM~9G0=1u0_sgd>4pUGE-9zv>Wl@w$=ghV+#yPgU{-$FF3^9O~kRkM^GwtNXJ+*p zMV4i*?EE5d1WG1mKvfB{ifbXCrKCw-#ty{RQdA(>G*y(W|HuFw)RA4#>TFKXQ)Tum zCYHOzCol{ks39VKn&3=wntHFIxHm&o!wJ7UwU>MX=mgDPw=oDAJk+?7L?A!fA3pc#a0mbZLA?(ligP?qhW@SUdm{#6RMDcl*1aAdhCVjPU*$-lpp;(dtsoIVNC~&6F3*!is&Ns zDWxtT)28uCsHGO@a!2l>RBCX>kyOZUeoLd2MqZ+Le~YeX>5k?3{cCpeP>guZ_9}Ex z^_)=${Z$p3AgvI?OU%b#GIv%d2XKEU=O*|)`~Jw>QPk6A%1*;Bf%Qu%zIA#v#0!F{ zoB;mcV)l3rEdMV8OgeI>F}LgStNin)d9k-R|BVUo-|6o^WYVn{WH$c#3*(=uf4bJP z5AU?CXdSRSz2Y?KWF^pM=&AA*!lb$6Pygk)#(OR;k?)mjj3yHY@}*m~!#aww!2zzT zI-FtyFSYo86U$8R0J<00h}Hio-(}(TLANMz8HK4^pg9ZH3k3biSEzpPQ{%(Rz0Oz) z5|>=B_%W13+tdy|>b^tfv;H3v&Y}UaT&c%j@1uqqjUzmzofjWjNJSK1)eeo* z_ER@H=hBI6$`SCkZ*eGYE1|L!_Xbz`FERx@7CJ4Y;dviLWQtoqDo;^^sCz z-nl2vT7I$;i$W@$xmvdvw%{e~CylaO$Z}6;Iq)ax$qA5sXS!ELK3=`D ziOjP@XSc4fUD_})mSxxQ0Zr7gt+%w1*+*zK71(;yK@W#gv}YxcF(>QK;{&GcM+ytG z2-cUO+E9b{=4JIu9%umY-dRUAd(gwE)1VZgJ{6;xzF(1CgyF!}=x`(k5c|n0dsgu6 z(}VEa`IHR8s>xIxYxv3hh_ui2#y%qI#Ri&ujBl~f8Syf*qhAZT_;ESM!#eOVZa3?~ zXyVuAr|~5c7ka096_Y~YqXtNC>BUo%qhpDY)SGJp8EYo5ztd%PeQwa|KfgevH+}eo zIY^X5RW`EpFGtw`J>Xu5JRXyek4+pH+aI~-Nf+-(%+n*CyukJKG?`1X=gM-4ycrPD zp;%+}d5dqn&fxR2y>e4C)=)ryDF;n1qm(kC0pugCx}a!!)7#*&h)$3gr%A;m-_b-X zSRz}ttvS9VXEgHcaON|)M)7lGBYrovFPGpI?Mvg8>mGQxfiZ6rc5cAS)fmvOs_{zy z@*|4B8nq|RaV8~&>Gdt5<{7eo6F-j`Z~ruC1}5MtC~cG7U(!JbjWY!2`Nd}ma;Sod z0UP^^xt3nWS|`I$OZmqZFPVxPod&F6f@h)4Qzzo3YB8+oki0s6 z`vP91lwD?6Sq=NyPV_jB$*YdC=^x0~Xo;_4)2LH2^pt?gYF@?hpg!bT)zKT}DT!U~ zVji$e#aXs#qg`}uz?^B7Mqg0v^EKT^qweP^vB#o)DNIE(BM%Q>Y1-f)Gcayh)!2*S!qt87WL9;q z<@DrZe^KAL{>pZr4AH}Fd#?-83d+s=GnIv#rE5ZGIeYf+k^Va%LsQ-B07bg8N2KZF z%CEQblNdAhD=_wIl}nx&eMfSXTn=8P@|T#HnCW_bGxwvC{!mpb!hOv1sx@5WO%YD} zCF?WGm50R~eVOq}rb2GjTq{X0dG(sDl-iEHK9et%?AVhsh1`BfVJVZFs7(QEy%HIf zTD*OJQjvefM#yy--yp>PR9R)7HDUzfvlV+jXoCLT(gpxAg1z)S1+t;p3W0iB)3>^n zA9Jd+)Gkx+MBufxbtehE7){;fzIW;z$UQaf9}`qI>`ZU7)|jgVEY*D8(DXp=h3~LRXjH3u!*EFs^vjvGt#}C` zGFQ>Jc9QrJN$&uxT^uFFnmQ)AB;Dz-Cs1PvrGgeXwJ+|j2r_xMasdEnHfoPr=$(gC zj#<2hjl&<`%6*Ej>SIQg8E*_?qtR)Tsz!B-x!0L{UYEQ?)-RXIRIq{j2XbEE9olaH zRu^^Fn5n61%yei!5GuWpBD)muWrT;<1pzM~xMij0`V};F&|t&u8&fT^5w4f zd={2^Ncej7>Qxs4#r1S3|y27cKnI^6)|W&dom*Vpqc-LbB5wyX}QqGOTKI+JA0E9}eiR<$S=7 zFeo42fENXchTdy|Q=D%k0 zWqMXFqc{e3JMv@gDtLS(^pcXues2>;fH6-t(~egs!Yh@(NWLusD~~F1DOM|QzNYkX zjqtwtLfmb;ycrZ4~WuKTUp+vw7&qXB|+cqHS z98-R4RfIZRYWFl^4xGNNV2TaZxS?q^*Q9l0BYxTUxbg!*`U?*cB6`rke0WQ3DTi$L zH;M$!Mv_lscEECe_&5CCStiEm`xe56oRV|rngr9&_7?D?for!lbEHCd0G(9Y_(!v$ z9~*8@*fMS5+m<4s#I{dp}xkId4_kDli>dPA% z(a*L_2K_%cSCzH z>@a1D=+Hv_cr(vIor0j?)APr+Oq1dNIu|p*B2#6as}A5H0hH zwgHO-niH5H2Gzr_ir$ZL#==;Ph*@IcCh;5#?VX8@t3HXu(xX2VD4MtsF4TgKfBLxc zvL*8+<)kWmrE4FYuZBXoNx7Sa-xU#BCy_HG<&#R*C2LzcDE;kPy>`y%RV;61q3UmX z=@sLca*-6&WAnzgxi!h|ZGMxY!l~=Wdt0DcJGL=yT5&m%N8f-cd$QOKi(k}}(ZilQ z%_<^AMP?q0>a6Mg7v_{wtTh@DHrp4!+b?E`pFhc~Ij{VHv`jw-3>o*B4I;aRO{6~$ za>Dk%?U_#FjQPaZN-Ef#)2Y?sZ04OD-%y2EVwJT04tE`e{ZR8HadkCt{i0wkH5MiZ z5EabIy(98ngzMaLEc+VT5eze_sfoodj(x71GZxReDQw}=l}6u?_r*)chHC|079=ie z(%d-4J+%o1W;TSW^I!scuk8gFg(L$;t?Il;I__c?>DdR17ezO&cJX0MWen9fqln;4s7YOLgzF>Y^ z&wS87@ru9a@GcPGj)V6GEha$AzXkwY=QuAXvc5yBdLp!;AV0JB(!v5wr<+hAeie9q z_`R#bGo^Y1?XSvz?CoCWsfw`O%J%ROeC)~MQ~cXqGV7rIihJ;vTCo5aif z?p_dmkD((_QIGc!SluLM!6;{GeQrg%!T(~kRnx8=+GN~NRQF=eIN${`DRT9xpWxOg z`9nug>_lpAN?IL|s*M)>=>Z1tCVv8%WNYZnUHVa`mu7O>w`|l6Ig9$y+$bm6xo0Xa zhT^+J;d|y+IcFd~ly3HQZk@o87Iz4|CcS^PLB{xbGgWCe57lQs6l@~4G2h+!tLrjI zuK$6T+RNrJ&XGIxTgelA;@FYcK0K56C=S{ozLT>6yzVsd;<(?rrQ!8q_#V?;%>x~L z1lP`_Wt={8_%W16Y4%ORa_VVH(-FU6v1w|%NRr}ORr4DeP|Gp7z2sPtN}xW03t|Lq zCyzZTbwSK?La!cNJ2Sgb=ku9@^$-}n)aqn|%aimrY)k~5jNQD9d`B&-4DkIG5w5%f z_bo2lT6LG&hlVN0sAFD|(Zo}NT~oAve3{=V=4wi|%;6sja8BPFpct-sIc*cx&94G! zu9HaAaB?T*->TTQVsv428J;V8?%NQk0=2OsTt}bJ+u4)_&b+O^vol^k>WMtKI#V}^ zIjg*wVNNLlWvuiCHNCfV5h$34i`D~Raer}i7GXL0qM_=Dy>QL=Au6X>hPa{qSFGAqXFvV1F>vI#+ zcr%7Gtv&0M5-r__ za)IcdHKv38em8t{iMey7^ar!5qZcHN$PVeR+Kxe=^UzyM#(z`M_(K8eLhp^k@49|_ zFSRdaBmq$&E#+L4hjHQbTeMv+8|hHIR<^Bq8oCHHAW(+Y@z5v^73g^u368^m#ESLi z7r<7G@jfpm&%PB!^aRdND{+kTB%k`$ULoz?DqiE(2XuCrBn8IH>JE?W+=M(78AaQcvK9nR9myZu^KCsiYy z>uEzRB4`zY88sjc+^X2s@wsw7kb(L`LD3tDF|)^TuvV(#^JTyntpHm z%>3RsULHnLVozDrvz)xqp4+M|7)Dl^gmsn@gEaj{71wZfB)v6z1C4n#JkWYV49K1+#iZ!<5S(k zl41&SL;dgTzhMo&YKXe2nb7?C_0MjN|65z=-=F>45c5CV`uv4FZPx#8i2YZ{8~Y1+ z{~;~p|3BgNFXa6RYDe!+n-uPe0`(F!o{zt;#U&#B1LEb+Axo_*Q*z^- zf52h6#PyUFmk!UW?t%|UEs-m#7eErwE??3x=$MCW#XzwS#Vv%s#C$DwNV_L~^_ngf zIo4YfxSWg7NpnQs?eyTW%7yNIxMa%qP(22>Y%!tVEbHu70SiTo?Af8!R*Yl!)Y*{q zW`+qmr_fZc`pnxQwQfA?ephaP3!WMGjmt>VP>!eQZx^xfwlF z$hDe%yGq4UCgrURFz}($h2)G8^lAp2$x>m+Qey>AGg)h0YSYoGS{w7s)=Q zht{Wj*s5b9+Zk$kG!axs(+AoEaS}MHe(lvtDsJuNMwrTm=Dmt74>x~9`}h&zid_6> z7LX5^!vyoZ6v;!c+xM7hE3>8QQe$0|v4SA<&e8+sOLx?rt5OOW>^cna{J|(_B8dYH zAQOif31Yt`rG;BD4C)`B#mkGP-)c_O+Sc^^vd5b(K3BR9h=G$&n#_)awOzrv6xmqo zJ64vpg{0(jrFz{t{Ge>HHDW$Zhhaf^_eut!vPRpD!|D+)l!Bb|7VPcaKVhGxD_*$x z`l30&KStyWrGjlnT|{Qz9IIs_0q`55;Lgs0g>%;q((#l&dHedv?T|fjUEQgz)9MTF zg%sM2HQTEPA!ZoHM0J_vtrJkR^{weTlYZXEg{IfeMiy4Hb7g6{?A7AUZEP6M`D3&p zVDJ(uU=M`WQDfvKSdaVJ8}inAz9ZO^Z>`ij z)`H<}z+*0&!$Q>4hZ`d~++=D6C=5_D)!>3$ial@Mnhy9Cn#XGBwn5M7@Nr1yJ8$@H zkKqtWGAo*yn5yo);;Gg_;>WPofVLYR)}_>rhEKSs^va7mxSau`|%jcMUq zUc%k7?95>XleQQ8^yJ%PpWUGK^O#pu8#@RsF3%EQh^PzSJfI=m$SbJPv58Od;jvX>*{e8^w&2K6KG zW-7r;L$xm#XXoh6v;lDwLDv-@D3&H2*3 zgyJ7;XFcd3vbVz+pkBAT8BXIyV)N##YyJKk)uaS`riblWBYr3ge|X1kE~bc6y4@(J zp2UO;L;j&)oi{|DG}ReF$pM{4#)h%To0&Zu@yhylmtk0a(;rvE?0!S8hFl@@Ks-Oe z5U`bkjj-JiagkWM*}n1uWFxz)<72(H!RkA>_6;9}bCzXkgxrc4WZHUZcMM}aVO$?m zJ9DCOWqnL2p@N0tC#=o#s^td7w_@Ui&v>Ev-uFpZLur?$0%;sXCQQ1NUY6Dr_b}ZW z^`mWQuyFGdrVKZ`)ulN0tLlPod7y6h0fMFXTzAiI88+L8T&PRybWfjfS6!W!`FY^| z{NwBzYcd;OO9Mdl`=AKt&Y{R|%$ za26nB@Cn?z{=9dWTaaG*x_6%DPaF{M4;cpVv}gm~s`FF^T9<8HvtI1P4vQYg|Ckxx z%xws|a*lNQ^)QB2@8E3>|QVVYYNqHvAo+W2IU~ZNjBu<&= zsC;WvA(pp5m*F$wUGQ2+1bx2i-?6*@~?4vOALohgnnrcHVwn4n` z<=i%QTnPDIQzC~_A}et^&)$M;T@9w`O1d0R<1&Qun);3u^~Dzj!t;-zNH|O$7|VZQ zjC2G1BGs`Bp&fAfS(HVx7NQG30C}`8s%+(!RSp*Eg(cFWBdpMENr-2YK%_97UEuAa zWoo+iQbI!W!SPv;f2AT0gTG5wJZoxBK(2&vObGlAF)hBHHgtCAiBb`~&bHwyq5qW4 zr(=X>0LptJ4eRTJGt_z~OsT$P@-WeN3ofjAk@V4lktd%w3iN*Cip+#Y1uM2uHpB6x zGZsA>4-vsFawZ2xm2hzTs`f2_3l3 zu-ol=tsAS+jqAc6SxP8GH`T~|+|(uJI%&i;5`z226YI@B+o;|R{0&7};>R)=;*A?A zbkVE*3~}eDz4$Ji6q z*&b$<2@7tyi!YZNCxU7@IuByo_|cYq&3s~ZNPYf9#L$UY7Mfik`7Bdnq{*YE2qd$lwCupi#lbPA2p z2Gev7Ls6|?GwUk*K9Pf9CmzN)N1J_5d+RGj8`69B?EBSp0X2%EVstqVN@-6L)3k!` z0bV#>5F6}bH>-VIy}hC(iGdw>UIz1jzQw1sdX1W5UGpFt?D;hKQxsDlclvX$i^W_* z=M>`NU1Yt5`jf9cm0*WMzPkgSi?-PPYMnX#M^W|+mj%(4u~H;e!b4mZUVZ1hA<}P9 z96%;K`#M)XS>%{yHPsUNjKy2=ol!beUBA}8L6Pl<6==edb7C%YL`$a3>5&0k(0|=| z2u>z}KT*Ci*o*+5ZKWHt)Oq4;%Jcg31F8%(k7oS)vbUCM zou;AH?{fgcvDEOy{{A@n)wrIdxo>+5&CfD;y+$UcTVIk{{!mx%82hU@zGd%smg%Y< z+u4Fm^&Cv{W@nyvv0wa}csnX!G~R zUZ2m51^y>zamzU|fVy}9r97M|L<3FAa{02!ZLS7ce6n9DSpSw*D1q`iQ`XnwcA?Pm zSK@o{FaT=?O1g7FZso!o>*3cGshve)Dc$RebEJOpH0+H+lluJl%G_D-L?46^=bzi~ zj^JHgFe4;W9RVa9+O`cfPqJlJ{ zL3ROl(!{ih*t@KsE$@}_97=;lp?CKdxrXc0l= z`wY$uQ92*pFpsd^=zz`xrW^B{nU8aB7Ae#)rmbnZFsQN-=WUtdo%|Gx$pEq#jZQ_u zyPz>7+Pdfm!FzYyGFGUV`h;XzAEenz-SYC)wYr!0Ob4G2-nxbjOj?A;Bg0 z3g^^b=%flYJ1XBdd6KAhOTieq)RPkpVwVt}gz#^F-!^T(^ZvRM_%w83?1!c8GD=J? zQPr|91EG_Jfnv8?f2o76*t@mSk2Bi@yK(sGxKT-`-#bkGcr=0I7>99gT3dD;%&B#p zFGVcFjB7ETwNnA#@8${yfL0L7R1NPRQmpw-W~#7v3_;$SKH( z+Ui|%uD@T9NK-+>h6aX_Zj)w!>@5n?J;3NDP;_tdx?cLZ-<}9Un0)Ja&zJsi@ z-|Q3nu6IqzlkwNNcsJw*xB;aYw``<{Z-;P2m|^HKu_}An%Yp1KHlKX_w0gwE>A76w z2vT&1^ODWA86)^_|BCMOpyv;zv2U_@r1)u_^2Ko2Zx}kFnfl=}15Yfg^!LwYkT+u> z0n!+}mLr~Y6*t$}20+&*^H*mcAlUZaKx_4Hys$F6`6zNwdEvd6>XkzvD`boe!5JNV z!TOUBWmj&$CaLNt?0n+B#w_13oX?X=LXyaPx{DiUVM%>hzu>V$EMXlpy+?yL50R*w zAl)R~L9c)GKz|3$+HDfL%(I8 zjyg3BUr0yVmW1m$C+*D)+zW}IT4glQ_%uc%tC?4M1Gk2;fY5~~w&J3ufQY-pNaLCq z^{mAgaeyTRuGja}V~xBUS`%wpq>&|>;@kW@V|#vvJ{yLGa(bu9HZE#kpSF8h>@@73 z$e^`tiACz6UkRqfxaSz`yDK)^Ajc$u)!vmgcD;U-FrUE&;*v6Z*;0w9-7f}sy_Abb6?j<=WnahjviQ*>brO(kJ8=_cN`nvg8v~%t~;#qW?>NRhvkNnBiFRaByafsWe z=%>AlXUy!|WMjjSBO(9@B^&fGEW!`|_I3R!A|o-DhqhAoyO3F+&677`uNK{xUE*Ic zUTpe95s859ku~5GUkFbpj)SvA%ZEx!+^SXClCDwdD4l)CIc2*80B4K7a(lVH87ipF zYX1IzWXI=!hyVSzYxR%lTK#7wwXva<2&|4IJ^LJTx=u0hSi2|m$d+to9!a9c)#d6U zE8i&s5$vW98t4EYC9IMy-YYsdc~LUOqY&R1(+Wk!OZg^&+ZmhU%cC=Jk}fDV2Md4_ zxims|DNI=X*gC+{NHUR_-+sFZ7O@NIQ*3zYRcSMnVk~QBwcj1z5$M>t9Bh)6dS|Nm zj0Sl?_$tx|#ZpH9q0rts&Z%KVTa$i4xum@89Ah=^Dn56(_$@|CUnra6Vq4n;i37)B zfQt;pn059IPS@RHN38D*B^|`ve=41BGst`Y^S6k;sXX*)CoG!8Hgy7Lat(Ub6R@JV zR3fLIBC)Zq{x$w*{)QLZos9yU%(|9j^`b7498PyxO@rq#F&FsUn+Mtn6w?)+$8^ZH z#t*$|Oh`J6OnjNhrL}y$vXq>KHX5V4(Nh^=t(zF4&)gIIN;vTm_nz+UfiZ8>xz~%j zcV5wOR;WE9#zCJiJbJ9!vdCxkai&K5>QN7^$hdrxSlG$zqca!+dM{;xe$ zZB3mP@9pkfQ>Gwl$~U40`lVEkj>t+F;1CR;gD#M-(DMqiuW=_J0>l&I?-NLF3^4OC z_MTt2THG-HEP+A3YI_lA)?to%#U{9)j-uSm3MQ|9ixG-my02*smQ(8bB~Fyk&oQtt zz54j_5?WYcBj*~_c{D7CrOpLI6YD3hbO0-Pn@DUw5;^_#?sN|f-+1<}9k_j1#I=+1lHPBrp0Ssal>oqbdIT(Q z7<%kIK9NY@*PgE*_&G8fepxcI{inJUD)tl@opV*423>StlOKKQ6WQr#xV1C=`RkK_ zS0jDj`Y2Iqy1iu2&;ud?PcZCJwJ<|j-^2J53mZ`A`P81l+uD90mWtBm! zNRvxf)diPfZ!z0#LYS%C6)4L>KW&&)rTWh-{UI3rkA?c%t+Wm_6#RE8e=|le9SXSS zU>WPlQd2{F!2(Dhpe8--tDS2L#G4fF1;BNeLGk2{pDS(26T6b~ z&6ni|sScOx6C4s=J)FG5remyr;i0dQ(5>FSHQhZ8B$OUJLAoM|COfxCe{c9Lzf&%T zHuCW29=sZ6wwLirS?pyyQ}W~$A}uwKLuS>&C>XbK}>F^+*u0+k&BhsES-fL zVXIaxJ8#lu1SM|0GL+3KO<2AFD}=s)A(W8osmq=oSXG>}vt}#G5N{=K7%HXgoc7G{ zT~b+s9J=SmQ}cZxO}eKSwY&pq?r!W_3*g2uJ1fz94t*olt*zXbVg#rton2Xizi6=E z`Q8BNX>Riv06N1sU304Y_Utg?%ZxpSU&o(fB+s`q`Fi@9w8Zod)9g0rn(q6X{_;*p zJ$PzaqrbxV4*nh1zH}i(8t04NFvUgs2-kH?E*Z)>EN*hHCN)M)p>906>BGMVmk4ob z7=m)bT^YFvq2tJLhy-My?fP%Cxtp|fOFimOdP5rXCd{;HD8+bacw?Dc@t69>m(ZqA z*dqN{8#Rbb#cd^6XT*lsKdY*(s_~Iuv?T}FIXy_?(n?UPx!ta;dk;~wt>$hC}iC=2wtG>g0SgK=H)j*V@TwLF!3ZG4(a z%UBxLNlz!ZmMwk|wM>H*!#sp;nv%`1$K^mDa<~X0mEcb#TDfJLJ!Zue4fb`qoi7o} zZxkk}mS0<@(H@iCaA!^q=A=>37y_F=`oNZ$scxj15d3_K#pbMGr)gngP_)%=8MTHI z2s`~|e~nn7DGg?6e@)&Xktyozb-W`RPR=J6e0KxneN7*K1N>f& z>{c%z?eEvHF#RsQn*ulskbdD9OZ-88?t&{qv~Z@L#U9x-KX8FqF8YMFgjW@XYG5|1 z7qMuYqz}kD59nLCGh@il`Bmi{1;z5O1XZ%=F5KO^D8bHCvPJuA58Ko5fT1VSH{wkoL45Zh27alH zC*;}pXk%PtK>@m6sO#o>qSev#i{!MYj9j*R%3Qoxmi?q>rLm#tT}8J-T#$@#!el_z z1LqGzH{38rD;@0gX9NNQ}cn!Gb2g z3v9rE`{1`J*GgJ@w!f`nQuHY2W4GXL2XUHG)tI8Uq-$V+6|4&bPS@d3g?}Y18HFTHwW$ww`RvTZ8b?>&?Orh-1^P@cc z+kUu@>GYt;b7)k3n=oVqbg4}e1oZ&VX(tB%YKBa(s52)~Q2O2qOLTr+0^JVS|8!{mLyzKO&7cs!+rFKnvzhVh zUSnTlgk(f=wl5MILAr*6qBB+`m%`QW0b|yub`Pj04~O}>LJO6J=jn8SQ!FB*&7W7w zNSz2$oIhU874d*WhUe3hio6ubuApXPp)a001J}qw^C@VKE^kW0?O#A7C;DaxDyKaZDmAG?EZ!WYAbsCaq1kHl-&;&^TbUN5(xu^?3jhi#Y#UZmKJ^iz6hVT~c z>5rE-^n_DaU2ZjhraUYr6u;fgq}9O!MM8|RL{a~oneFac`e2lr?+XnHDILpAj%)BD zg_FuXl#6E(K@;sCnQ|E!VOyUl&&T#yl!9!n6lxiO)BhL~2@lD*{|v70Zv*te;VgyLR&yG;M#BW=4#L|>g{ zt>pvTOe@?U3epwY8?#_QXHywL%d?`}uIg8y8DO=r)dO2QdA#rl>w>v|?%Zw3^vRV| z{sFJ28w&BN_1%{J1`19A)?EQbt)nv%cGJ&09m*UX%%ea}0|WO&`M<<6p z=Vb4Rr-b%5%|fTwrb*Et%Pk1&FL@B1)^fS*(%^(-dF1Dp`;PA{6shL*9S<=nzE9dN z;DX5`;V6DyV_F>d=&ovr*SLheQ_8c?Yl&N2pK{8joS#Q~CQ73+`WR_LXwkm7jBca# z`N8+qHD**9%wfNv{u~Jh@wZNdD36SHQD3YVz$pjVXxvhn6@b-)F3#|AwhS@nMc0Lk z>1UjkgALy*uLj6XPb@LFT?`Sy!Gk@D3EJb(+UGU*cqKPR8Gbva$XtELs9Cq3gYM3$ zVIp*|LzQY zWvkXw{eI+iRPrbHe3866FV{8$5ZHoz*K^^;(iKt1@Xke!;OGn9=`a~o*^NOi9j&j*A6hj+$G?`c@bCCbjp+1;+w-n#3G7;x6km{DxA+UG`dMM z`WohS?h1%yG?c|a`atv7pm$aE4(A_=#|2pG{;l>AdPqUY9h??=V+9)Z3>_U``*UAH zGWL_-gYIVt#me-tv|AJ?%6Ol6%MV+BD5?&2H;P>UP|Q@}yp-;VJ#Y#vlJkZMK!ew5 z=tggS72Q{6^C@99jBrVUOn?qw!7oF1uplBAwaDH!4MA}6D)0nA?gHF#Ki}yl7jE<@ z0P`m4Hii#|P~f8;N|!xL5qUpko?6Fc(P(-awxtV$aDsVO{9DtC5+xuD{5dZh9;1d* zBvXppy%%I%68i)Z1x8XJfgk%JbNG-81k>;rwXM;QMW8o9z@R!&i zd{-ZwF$91CcEOO+ytBk+=Ur~y z8#jF=y@7%u2(32p^(2-xefN|R2IXkub6dKgu;8y?V_2+Uq#A4^!&)MeBiXGZZ+<0k zt$GIkjaEY(l@;7|UP*qp%b#9jGr!5dG8nUc`|Q*qo1o8iE?eDz0@-!pxk)1?;COI4 zkfCp#=7{Rj6Qj1>4WfSN2eST;N2Yh)vIPw9$mYQ;MOL(Mti(O@EnNJPX!XkcnVxv~ zkLx8A@qRtR3OquZk57TBKo2{q^HZ!lE_9{z()(FA=(FG$N!T!Vzt^{FQQoV!uN2{j z#DC;0dxy8!EZ@X16k($6o6vi^WJkM=N5(bP0A%XWnQrdmP4JDjZgfs3oDwJ3PK)j` zs9|<}S6wt)q5tv8^XCDNmp+GEVeG|ec8&0gTHpR9^ow!-tl_ft`f@je@2UETE?#79 zFaD7QTbYzuGz`KNLNOg8fUJD8sQNoi`h_G7_CdL-c3}1GVmk&!z7E|1OZtYe!_`1g z=O`;dAE%Aioh6Nsv$z=JjzjN`ZN$2@dBn-ah`)V3cnum5UhuBNEH}t<3Up2LBH;!u z*V)q%WyC-iSskzKh1n0+%QubG2FKpknw4und?QE`b2OO3% ze*WwUP*@{f!YQCPkZtf%Tuuk#Wo^r}(2>+q@OKg6@87!L+6_Hqy?~>jDSqs=aK-+a zHmljcWy$p4&HMh}Nw)R>@Lv8}R{cXPtNybBi~c<#EwSoZgz%ufklxLgY@ct<-`S+y z3484N_YEX0^?5(PC!aj+2yXmC0qN=FVOX_;YtIK&zv~lwB zdAF&Y$RWD6z$mE4!E9d-Niwd3nkh2Ph_#S-eVty7|1>t+L*{913C*b9SshyIo7 zYP1&L<$|A6n*nxY@BfB`5FS*Vr~-i6eagD0#dxiyUas$DERM#_b@q+&b=3Gboc9Xg zjk;r?PZ3zxcH+b)4tRojGT)=tGotCA5M!^S(gT6~q3Do;uO{p)VY$4CB2g_c5^X6t zPt&CjdeRR(4xUO(v0c1h@&eLlYR`e;!Diq%(Ak*UQ9f`YVrq|O*poAG9b`1tSuyyB z;^M{nHjWTKoG~VQ(T&8tb9-B7j{k+0y{HNQ+a9s}y}f46z0AQh1XgUvajFz({@bsW z(KzGrRE0xLZG+vokzAQi-g%881;Cn+ha1Mb#{m(JUF`f9F($^;9axJg^&hVyNn_VP z%eW4GV0r-%L4qs^PcYDSMg#}ef4b6J-QX#@v#hx(_XL=qU8(rR`Sj}RgQ*hmAhwVADTKOGA6dx+&SnavWKEMq zX0PgWg_r%(*}g1D?VG&yXs|rb;&}4hD|U?lK!IopcYZlwfZ=tQ71U^d=zn=SnEc!L z)GEO20)N^D5Iqi{%rKogE@{#CxJu%cXnL37M^?M4=M`k#ty(&K^K}(1`l_wNFW8^$ z=%5RZ__Qq217ZeT2J>{w*ljC2B(*%c<3u+-D0hRVedCIL`-luk%Vfg(w()mzFFfjR z`S)MTzyI0R;%_R6}ABy+U;2l!)4)EN(4lhDhiPrRW<-D^N*_%a4 zbL^-xHreqNWZ7D$yLkm^*H%ky&WWgwrpyN%(m7(aDG6i3%E-AV(26|&RL ze^XX6Dp%vnr+zitvLGijPZ}DY`loome9{#fv=S2Dq0%By79#PT)aL=O?YkAL&tTM$ zGNvpwbdP>RL`6NwvcVn70J+{zR?v%s`1*3)Y3?0810rrrfvTUn8FCS^OVZJ2s>FR& zvi6(6T8TV`sRtB+H9{EkKsz_53=fp8<_uptE?%GealgDl?V;S3jSl3P?YQcbH92UD zz)FK0?e>lZT@I01fzr$w73&tV|7fdgu-m_nxjB26!Dg_F@jWx;1}6=_5gO13uj1%l z@a|d!V5HwZLpQuT-pXUgA7MRWCL%50Gqt2s>}3TZwKN#X=fX>X;`Ir#W9pK{1OWQS zwERx6A89hq(eUNN9@A@)GB=i;4ov2kuTgYCLJ3;G+HON;0c^E43mnLK($$oi-PTEa zm1}^Hz7jR+CgEcgudh?%eP{1k&F-qW9!rpBLGia{SdXXXZ@mYK8P87LX zqYrpj+D!h1LP@xe`&f)abpf~`yjv67 z1c~wP0n~`ZYI1IC^5baH8)lM4yWV@_iB$YHqAtk|1_r854n{vlUS8%rpT>Gmd!OXs zL;~VGE3-bkAzn9nu%kZfVxK2n*uDDp0;0uGAJey|f|8zHAoD6O5fnZd*H=v}(hY8e zTM=e*?M4I>#%K`2f=P5WGDs~IfFXo@6VZjd1UiCP3Ch#8gXJRTzu|R~$nbNH2Iz5| zMFP)@u!rNpC|(O=y&2PaGGRR24%*K%4d0brIya^d1Q1v(Nd}{de<*fRpqr-^b0pe+ zrEckqOFMrkXj+_+rF*inAXAQj+x^TjmIH6Pj;=pSJ`$z>#s9m5)Njqv!x#pvQ>AUv<|qi6z{|O#?hu{zwl#1H*Tp z^c&}eVrk2{Ep!&Y%>_^;UsCnlvonr5{zH)ns?OOHT#;t#TehiW=QG_m8wcm6b(I~S z#R)yq<^AAriBBfGk8OgWf>zpNtboiliS#VR+Osv0DI&Ewdvf~JEeRgpoHgJZx@iG7 zZkwCjQ}ms@=wp#*6v#4(YEuchiSy5c%rA1|f(zVC@8!G8Z7sRh+06+Zt=)KVl=H#A zqp|_&0gB3|#y!FFfZ<(BjI}eh&7y_XKfrk-6XN#Px!xbLU+2L(TLiHyI7f`lUEBe3 z3BiJ#O4Y2S4@cCL*BZ+t2CGln_UJeo&NRQ*HI!-&wuDq$k*!Qv+4 z{@!&@x;&pIjY?!N2@jV=>AmlcZx1;`e7$8~$8#uK?vXzdLXRr7fS$x_6lpCuUY^|4=x9X74R;B(_l&C2C%Gb1Sv?sJ0cWjqmyy%f)@I zYERI^na*qHCm(eXtQ{T})Q|{$mW+1koyy>rJlSkUWV~!KyC=3F|4U7$!^UgvQKD?! z;dJL8ikO_b=-uSpMFOA|E!kVgJaq6(wnsi$5N-#%Qa#AS)N<1zOhm}#!v5FX)-Df4 z4@eIOcTp!0G2H{YxVvv3Dx7(Et?U)uY(M^^9`B{Y!*ZDIYc_HQ7o8>}SP2E%8%BB4 z;SNTEiWKvMP173{A%R%9Pz`$Q-@C{(=47Gp!fb z45MrPtp&7%BV8@KrynMFMu40aObxn)5fK_FLC0jqOal)LF7q)6N~WM;7>w7C2G!4KU2wi2Yz<7U;G2 z5R~x2NTnzMyOOCnf6F%Sr(k}VIH!j?GU++ zLw;lf2`b0jSGm*b%-QL6iDJQmFs(!wpmR9psQH`PKT*gbY|x z#VE}llsM2C4CYGAQ&va<)`mQh@^s4J`$J0QY9x?&I?-DzO@Ek5%(1JmLZ>cRtSh&x z(AOwlo#W2q;R`w5fPUIJ!;PcgBRd@V!T%Zutb$X22!xCm`>g-lTrK@5dj2x>&`UJ5 zGhQ&H9nYIKbOm9a!!_r0_OxDIu;^TJ_NzSl!C=uo85k_h2L|ZDv<$$Rq5*xCQY3)k ztl~c}Fbu5xNYvLDOiruOQR8mVCHtNE6X6pOB^xTof|#y4s(2 zHVp_u))w}d_!`ot=1v=K~a)$-x+M&bI^YvUu|9VhzXi^nR;BOMn%VURp6v zCQtC05Q9E*CODHiM+ltO6xcPnk7KAaxnFp{;5d*RdERi4<$|EMCXS>w7z7Dz-+uAGl z;us0`;!mVfQuQ|_s1J7G@`XD|GxEU-s@(jgayMx6ruhGfCyrGh$=u6=pSY*AbuQ;{6SXITfBxj1aO{1n05gF zo+PS67&oI5l|4lD-wkFg-r0kv;Ps1WhX~0QU0{F(&SEjA>z5F$Kr_@j0(=n)00=y} zOr{#c#luwYirP%3OvYh2M)e_(<>aSaFf$bAeD7gI^AXNTCC%CF0msqPOk@}h-CqZn z$p3M^aUre}UXXJVN3s3nz757bADjiUYZqyHYG`3m3cZs~( zF`C7vs+L^WzNKL?x)x2=i{M_j+W6@clxeSbMd)obSF=FX&jBeOA`mu$u8;OmuqM@~{C zaX4*1a-dS-4k5sUL<7a zfD9u+=WLcb8wGfq*ql7`I`ZRn@xJHi^~n>>HISIj$bG&2Y7}gag%R~r{Rl-4?NMMO zJ^do0#NN>kARIgKkdLQ;QQ=|U(=Si+$L^!FMirf9$Foew?r!9VZ9`cqd)#Asq`J0I zpO~57k1t*5)7q0><*9BW(zIH3)O#zgPZ2L9Ag6QVUtv3Ydv#QS3q{o-wQWIz7*3QM zajyfzaxaTvI?5UCYi?yVBG++XXKM$kk;%m~`&;wuHm8v_wm}7!gm_{SW*80K@~%P| zy@y6X+1#McdeTat5X1J>XvfJ)xVM}J%M-0+(`u#LWRJ+91k$fw7FjPvhGEazph#&e zvjGAFImGOZjD1C2*o<5s&65R<`0f|)V_TZef{xQ4ZmTvHq-KenSgb9ywVJY;QZ0vj zoe5tnCt6s9i}>_ii5}^8oe-?dE2bVHaX)A3lyd70*jHu8hxfuorPab#k}lEiaRN*weQYF@1aT-$XXwdeAnJ<&Cl0EI&mkL1$fA{ zIC8<9SR-+wg<(#WN`ohbBfw7g=THaDUGVd~Phn;x4o_GzHsyYhIt&mpe zxgMaJpp$Fab?Qvt3A@DMjO-=|#?_6_Z|n*g>zwNt(7v9LW0CVj=w-tB9=px*>oRDP zMTfGFbiH6nrVFZM?<@*V%4%~&8KZ9d$i$>S({XVNpO3XucWXw@Zg60iz|5EVMo*-fw&&(|a`ez$C{;WpXn9lTdxPY(1 z*!8(tkhq)mIm}6Ppv^t2Mt4d@kajLL@)A9ABJTnEvUbz?8&PU$;Cu-(2acjZQPg1O@@5v`2)#HxU8YC>C~Q@e1NDh7{o7^3*j_6PzLYDOV6eXA0HR~nSVd47ylU4Zck|o(CW+zOVdomcsV1{UQ$!7oTc%- zG`|AzoWacwFP}F>zLO*=W$bBdWg~Z^hq(~M2pem3=7o$~n@LkHi8oI9M&~d+e$1ll z^EM;)Wdk^)qoDR5tNPE!vZCCTRJJS7fhVd{m`VK}B9XoI?(K(2qqx<%J~9VoCA-ab zq{=>W+c?AHJe|Ocv_0KZmQhmnIMxZ3jC$Ia*I!5J{tP~P6W5ktluA%ekt1s#ZGin& zHOo>cZ>CW0i}gD@+BYA+-!uO((+UmGVinwWByAKGJ&uPZLvbYXdM4Sh11RQ_F3&EoA!v0w-DjXIva!?#d7h8B<7tK4D`(Da_ zCS7?|IObCM8ILk+&0=N-)%dhc{9F9KR`fSu?V{}GoNbP8Ks-$wVw(@7QHH@Rb)>az zSc=qSC|43^F|8T!&Uh=vj-mLUuONDu>R|B3unuL1Jk)&l!5hI!@$kwhmp~ZV&Y`j) z;!YT>N&Oc-du=+Zg+O!M!6@{zo2}?Kpi~aCOkTy48NUG{@D|KA16VTmM$h48}1%Hgwk^9K|*p=%)(1G}_aswrC%xL7hSs;udPKUX_Lp(Cf6c!MAudw=#seEnniB%=+|9dlyY!HdAvL^ z^g#cq&bXjE@|_&1sTnQbrKY?ZJBR$TuKBKGXsry!T7%@=m_ERJE;U(G1*@2k1lePh zd79eb;Q~Tu`7t)bvVFMs$VA&jWi4viSIG!I>|DJJ_Wejvxs?#H{i|2U2X52*izxP1wLLS#z%( zH-E-s3t)GryFkcwaDoOl~8neDj~L+J{&Hwism7-!wnpf2<{yvDUZnPFBX(0mkHHWRM+i47%M zS4*N>Z{Lb{V%LoJ5Y{!L^@zijpEt@3i8SCc=Rvbn{{bj3_Zu4!bNwvjoXh0{-g@;C zqE)_r>x+JGo~Y5BG^P?RKO`-;XL7zyqHk{GH5)5kY^+Os&7{~`nZW;|?3X(t#GmM^ z#Cajnm+qqFz)Z*d5sG<4@sd@Gxw%S7TaCO-&b|A2o(ochlb2mv%hqjsjOCXO^V4M< zV;3u-*f~kXI!L zr^{jZ?o|3$=|%$ei;)PW!of(OadGJ3VFy99fWayFBb?unnw*f!ZboHX0w64;>;w8O zGaRXR8?WL`xe6=+LWv2)Otfe$53ssclr&;ilu`v)&<}#^95_p?BefA+0LwGfX$hbu zR&@@`-Gn~ssnc;9ecuCBwTGmb4-rm)9QAS}?81W!lLpD%y$*DxrNh4;GnzRu87|n8 zyNxe$CRQ9UV$gwt4}t_gmiMl@DSp|CWxd6gd4Bd-djR{>x00Q}Z{9eTZ{z;}tvzP+ literal 0 HcmV?d00001 diff --git a/docs/source/integrations/huggingface.rst b/docs/source/integrations/huggingface.rst index b618c5bf5d..8b65bd3b3b 100644 --- a/docs/source/integrations/huggingface.rst +++ b/docs/source/integrations/huggingface.rst @@ -1030,6 +1030,39 @@ and then passing that in to When you do so, note that the view is exported as a new dataset, and other details from the original dataset are not included. +FiftyOne is a *visual* toolkit, so when you push a dataset to the Hub, you can +optionally include a preview (image, gif, or video) of the dataset, that will be +displayed on the dataset page. To do this, you can pass the `preview_path` +argument to :func:`push_to_hub() `, with +either a relative or absolute path to the preview file on your local machine: + +.. code-block:: python + :linenos: + + import fiftyone as fo + import fiftyone.zoo as foz + + import fiftyone.utils.huggingface as fouh + + dataset = foz.load_zoo_dataset("quickstart") + + session = fo.launch_app(dataset) + # Screenshot and save the preview image to a file + + fouh.push_to_hub( + dataset, + "my-quickstart-with-preview", + preview_path="/path/to/preview.jpg" + ) + +The preview file will be uploaded to the Hub along with the dataset, and will be +displayed on the dataset card! + +.. image:: /images/integrations/hf_data_card_preview.jpg + :alt: Pushing a dataset to the Hugging Face Hub with a preview image + :align: center + + .. _huggingface-hub-push-dataset-advanced: Advanced usage From d5ea06e787928ff174f21d28f14838dbdf136f82 Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Thu, 4 Apr 2024 15:49:02 -0400 Subject: [PATCH 60/65] improve name resolution --- fiftyone/utils/huggingface.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fiftyone/utils/huggingface.py b/fiftyone/utils/huggingface.py index 37efad01a8..d81e21eedf 100644 --- a/fiftyone/utils/huggingface.py +++ b/fiftyone/utils/huggingface.py @@ -1070,7 +1070,10 @@ def _add_dataset_metadata(dataset, config): def _resolve_dataset_name(config, **kwargs): name = kwargs.get("name", None) if name is None: - name = config.name + if hasattr(config, "name"): + name = config.name + else: + name = config._repo_id return name From b71e3fb58d265af784cb4a7020b1adedbffd5b6d Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Thu, 4 Apr 2024 18:10:44 -0400 Subject: [PATCH 61/65] only download necessary media files for FiftyOneDatasets --- fiftyone/utils/huggingface.py | 39 ++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/fiftyone/utils/huggingface.py b/fiftyone/utils/huggingface.py index d81e21eedf..55d880a4bb 100644 --- a/fiftyone/utils/huggingface.py +++ b/fiftyone/utils/huggingface.py @@ -1077,6 +1077,12 @@ def _resolve_dataset_name(config, **kwargs): return name +def _get_files_to_download(dataset): + filepaths = dataset.values("filepath") + filepaths = [fp for fp in filepaths if not os.path.exists(fp)] + return filepaths + + def _load_fiftyone_dataset_from_config(config, **kwargs): logger.info("Loading dataset") @@ -1086,12 +1092,27 @@ def _load_fiftyone_dataset_from_config(config, **kwargs): splits = _parse_split_kwargs(**kwargs) download_dir = _get_download_dir(config._repo_id, **kwargs) - hfh.snapshot_download( - repo_id=config._repo_id, repo_type="dataset", local_dir=download_dir - ) + + init_download_kwargs = { + "repo_id": config._repo_id, + "repo_type": "dataset", + "local_dir": download_dir, + } dataset_type_name = config._format.strip() + if dataset_type_name == "FiftyOneDataset": + # If the dataset is a FiftyOneDataset, we can smart only download the + # necessary files + hfh.snapshot_download( + **init_download_kwargs, + ignore_patterns="data/*", + ) + else: + hfh.snapshot_download( + **init_download_kwargs, + ) + dataset_type = getattr( __import__("fiftyone.types", fromlist=[dataset_type_name]), dataset_type_name, @@ -1110,6 +1131,18 @@ def _load_fiftyone_dataset_from_config(config, **kwargs): dataset_kwargs["name"] = name dataset = fod.Dataset.from_dir(download_dir, **dataset_kwargs) + + if dataset_type_name != "FiftyOneDataset": + return dataset + + filepaths = _get_files_to_download(dataset) + if filepaths: + logger.info(f"Downloading {len(filepaths)} media files...") + filenames = [os.path.basename(fp) for fp in filepaths] + allowed_globs = ["data/" + fn for fn in filenames] + hfh.snapshot_download( + **init_download_kwargs, allow_patterns=allowed_globs + ) return dataset From e2f55af9b7fa70e5e24b9cca8096821c13c3d5eb Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Thu, 4 Apr 2024 18:11:52 -0400 Subject: [PATCH 62/65] removing version validation --- fiftyone/utils/huggingface.py | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/fiftyone/utils/huggingface.py b/fiftyone/utils/huggingface.py index 55d880a4bb..91fd051e21 100644 --- a/fiftyone/utils/huggingface.py +++ b/fiftyone/utils/huggingface.py @@ -10,7 +10,6 @@ import logging import os from packaging.requirements import Requirement -import re import requests import yaml @@ -83,6 +82,7 @@ def push_to_hub( exist_ok (False): if True, do not raise an error if repo already exists. dataset_type (None): the type of the dataset to create min_fiftyone_version (None): the minimum version of FiftyOne required + to load the dataset. For example ``"0.23.0"``. label_field (None): controls the label field(s) to export. Only applicable to labeled datasets. Can be any of the following: @@ -341,11 +341,6 @@ def _get_fiftyone_version(self, kwargs): """ -def _validate_fiftyone_version(version_string): - ## match to "a.b.c" where a, b, c are integers - return bool(re.match(r"\d+\.\d+\.\d+", version_string)) - - def _populate_config_file( config_filepath, dataset, @@ -362,10 +357,6 @@ def _populate_config_file( } if min_fiftyone_version is not None: - if not _validate_fiftyone_version(min_fiftyone_version): - raise ValueError( - f"Invalid fiftyone version requirement: {min_fiftyone_version}" - ) version_val = f">={min_fiftyone_version}" config_dict["fiftyone"] = {"version": version_val} From 6937faabf9aa48907b41c503719e1beaf7cbc1b1 Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Fri, 5 Apr 2024 09:22:13 -0400 Subject: [PATCH 63/65] improve efficiency --- fiftyone/utils/huggingface.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/fiftyone/utils/huggingface.py b/fiftyone/utils/huggingface.py index 91fd051e21..c3043bbb20 100644 --- a/fiftyone/utils/huggingface.py +++ b/fiftyone/utils/huggingface.py @@ -1092,9 +1092,8 @@ def _load_fiftyone_dataset_from_config(config, **kwargs): dataset_type_name = config._format.strip() - if dataset_type_name == "FiftyOneDataset": - # If the dataset is a FiftyOneDataset, we can smart only download the - # necessary files + if dataset_type_name == "FiftyOneDataset" and max_samples is not None: + # If the dataset is a FiftyOneDataset, download only the necessary files hfh.snapshot_download( **init_download_kwargs, ignore_patterns="data/*", From a5291a6cfd6f1cbc239162d8e3c3f25ec6b1ddb9 Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Fri, 5 Apr 2024 10:20:20 -0400 Subject: [PATCH 64/65] Adds context without progress bars for upload/download --- fiftyone/utils/huggingface.py | 52 +++++++++++++++++++++++++---------- 1 file changed, 37 insertions(+), 15 deletions(-) diff --git a/fiftyone/utils/huggingface.py b/fiftyone/utils/huggingface.py index c3043bbb20..77fb234a7e 100644 --- a/fiftyone/utils/huggingface.py +++ b/fiftyone/utils/huggingface.py @@ -7,6 +7,7 @@ """ from concurrent.futures import ThreadPoolExecutor +from contextlib import contextmanager import logging import os from packaging.requirements import Requirement @@ -31,6 +32,11 @@ callback=lambda: fou.ensure_package("huggingface_hub>=0.20.0"), ) +hfu = fou.lazy_import( + "huggingface_hub.utils", + callback=lambda: fou.ensure_package("huggingface_hub>=0.20.0"), +) + DATASETS_SERVER_URL = "https://datasets-server.huggingface.co" DEFAULT_MEDIA_TYPE = "image" @@ -154,11 +160,12 @@ def push_to_hub( ## Upload the dataset to the repo api = hfh.HfApi(token=token) - api.upload_folder( - folder_path=tmp_dir, - repo_id=repo_id, - repo_type="dataset", - ) + with _no_progress_bars(): + api.upload_folder( + folder_path=tmp_dir, + repo_id=repo_id, + repo_type="dataset", + ) # Upload preview image or video if provided if preview_path is not None: @@ -457,6 +464,18 @@ def _parse_subset_kwargs(**kwargs): return subsets +@contextmanager +def _no_progress_bars(): + pbs_disabled = hfu.are_progress_bars_disabled() + hfu.disable_progress_bars() + try: + yield + finally: + # Restore the original state + if not pbs_disabled: + hfu.enable_progress_bars() + + class HFHubParquetFilesDatasetConfig(HFHubDatasetConfig): """Config for a Hugging Face Hub dataset that is stored as parquet files. @@ -1094,14 +1113,16 @@ def _load_fiftyone_dataset_from_config(config, **kwargs): if dataset_type_name == "FiftyOneDataset" and max_samples is not None: # If the dataset is a FiftyOneDataset, download only the necessary files - hfh.snapshot_download( - **init_download_kwargs, - ignore_patterns="data/*", - ) + with _no_progress_bars(): + hfh.snapshot_download( + **init_download_kwargs, + ignore_patterns="data/*", + ) else: - hfh.snapshot_download( - **init_download_kwargs, - ) + with _no_progress_bars(): + hfh.snapshot_download( + **init_download_kwargs, + ) dataset_type = getattr( __import__("fiftyone.types", fromlist=[dataset_type_name]), @@ -1130,9 +1151,10 @@ def _load_fiftyone_dataset_from_config(config, **kwargs): logger.info(f"Downloading {len(filepaths)} media files...") filenames = [os.path.basename(fp) for fp in filepaths] allowed_globs = ["data/" + fn for fn in filenames] - hfh.snapshot_download( - **init_download_kwargs, allow_patterns=allowed_globs - ) + with _no_progress_bars(): + hfh.snapshot_download( + **init_download_kwargs, allow_patterns=allowed_globs + ) return dataset From fd624faaa9a6c10f2c8709a2ac67070882711d10 Mon Sep 17 00:00:00 2001 From: Jacob Marks Date: Fri, 5 Apr 2024 10:46:45 -0400 Subject: [PATCH 65/65] Update install instructions Ensure user is on latest version of FO (0.23.7) so the integration works --- fiftyone/utils/huggingface.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fiftyone/utils/huggingface.py b/fiftyone/utils/huggingface.py index 77fb234a7e..2456ae1631 100644 --- a/fiftyone/utils/huggingface.py +++ b/fiftyone/utils/huggingface.py @@ -329,7 +329,7 @@ def _get_fiftyone_version(self, kwargs): If you haven't already, install FiftyOne: ```bash -pip install fiftyone +pip install -U fiftyone ``` ## Usage