diff --git a/corrlib/main.py b/corrlib/main.py index bac9182..defe03a 100644 --- a/corrlib/main.py +++ b/corrlib/main.py @@ -52,24 +52,29 @@ def update_project_data(db, uuid, prop, value = None): return -def update_aliases(path, uuid, aliases): - known_data = _project_lookup_by_id(path + "/backlogger.db", uuid)[0] +def update_aliases(path: str, uuid: str, aliases: list[str]): + db = os.path.join(path, "backlogger.db") + known_data = _project_lookup_by_id(db, uuid)[0] known_aliases = known_data[1] + if aliases is None: aliases = [] if known_aliases is None: - print(f"Project {uuid} is already imported, no known aliases.") + print(f"Project {uuid} has no known aliases.") known_alias_list = [] else: - print(f"Project {uuid} is already imported, known by names: {known_aliases}") + print(f"Project {uuid} is known by names: {known_aliases}") known_alias_list = str2list(known_aliases) - new_alias_list = known_alias_list + new_alias_list = known_alias_list.copy() for aka in aliases: if aka not in known_alias_list: new_alias_list.append(aka) + if not len(new_alias_list) == len(known_alias_list): alias_str = list2str(new_alias_list) - update_project_data(path, uuid, "aliases", alias_str) + dl.unlock(db, dataset=path) + update_project_data(db, uuid, "aliases", alias_str) + dl.save(db, dataset=path) return @@ -121,7 +126,11 @@ def import_project(path: str, url: str, owner: Union[str, None]=None, tags: Unio dl.drop(tmp_path, reckless='kill') shutil.rmtree(tmp_path) if aliases is not None: - update_aliases(path, uuid, aliases) + if isinstance(aliases, str): + alias_list = [aliases] + else: + alias_list = aliases + update_aliases(path, uuid, alias_list) # make this more concrete return uuid