diff --git a/corrlib/main.py b/corrlib/main.py index e524233..cc48f4e 100644 --- a/corrlib/main.py +++ b/corrlib/main.py @@ -52,6 +52,24 @@ 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] + known_aliases = known_data[1] + if known_aliases is None: + print(f"Project {uuid} is already imported, no known aliases.") + else: + print(f"Project {uuid} is already imported, known by names: {known_aliases}") + known_alias_list = str2list(known_aliases) + new_alias_list = known_alias_list + for aka in aliases: + if aka not in known_aliases: + 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) + return + + def import_project(path: str, url: str, owner: Union[str, None]=None, tags: Union[str, None]=None, aliases: Union[str, None]=None, code: Union[str, None]=None, isDataset: bool=True): """ Parameters @@ -98,23 +116,9 @@ def import_project(path: str, url: str, owner: Union[str, None]=None, tags: Unio dl.save([path + "/backlogger.db", path + '/projects/' + uuid], message="Import project from " + url, dataset=path) else: dl.drop(tmp_path, reckless='kill') - shutil.rmtree(tmp_path) - known_data = _project_lookup_by_id(path + "/backlogger.db", uuid)[0] - known_aliases = known_data[1] - if known_aliases is None: - print(f"Project {uuid} is already imported, no known aliases.") - else: - print(f"Project {uuid} is already imported, known by names: {known_aliases}") - + shutil.rmtree(tmp_path) if aliases is not None: - known_alias_list = str2list(known_aliases) - new_alias_list = known_alias_list - for aka in aliases: - if aka not in known_aliases: - 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) - + update_aliases(path, uuid, aliases) + # make this more concrete return uuid