from .artifact import Artifact, UnitxtArtifactNotFoundError, fetch_artifact from .logging_utils import get_logger from .parsing_utils import parse_key_equals_value_string_to_dict from .register import _reset_env_local_catalogs, register_all_artifacts from .settings_utils import get_settings logger = get_logger() settings = get_settings() def fetch(artifact_name): try: artifact, _ = fetch_artifact(artifact_name) return artifact except UnitxtArtifactNotFoundError: return None def parse(query: str): return parse_key_equals_value_string_to_dict(query) def get_dataset_artifact(dataset_str): _reset_env_local_catalogs() register_all_artifacts() recipe = fetch(dataset_str) if recipe is None: args = parse(dataset_str) if "type" not in args: args["type"] = settings.default_recipe recipe = Artifact.from_dict(args) return recipe