Source code for modelindex.models.Collection

from modelindex.models.Model import Model
from modelindex.utils import full_filepath, load_any_file, lowercase_keys


[docs]class Collection(Model): """A collection of models with common characteristics.""" COMMON_FIELDS = [ "Name", "Metadata", "Results", "Paper", "Code", "Weights", "Config", "README", ]
[docs] @staticmethod def from_file(filepath: str = None, parent_filepath: str = None): """Load a Collection from a file. Args: filepath (str): File from which to load the collection parent_filepath (str): Parent filename (if file is imported from another file) """ fullpath = full_filepath(filepath, parent_filepath) raw, md_path = load_any_file(filepath, parent_filepath) d = raw if isinstance(raw, dict): lc_keys = lowercase_keys(raw) if "collection" in lc_keys: d = raw[lc_keys["collection"]] elif "collections" in lc_keys: # called Collection.from_file() on a collection list, fallback to CollectionList d = raw[lc_keys["collections"]] if isinstance(d, list): from modelindex.models.CollectionList import CollectionList return CollectionList(d, fullpath) return Collection.from_dict(d, fullpath, md_path) else: raise ValueError(f"Expected a collection dict, but got " f"something else in file '{fullpath}'")