bug fix, enable add alias from cli, reimporter implemented in cli

This commit is contained in:
Justus Kuhlmann 2025-04-17 16:27:08 +00:00
parent 65be802325
commit 4a179bfa12

View file

@ -2,9 +2,10 @@ from typing import Optional
import typer import typer
from corrlib import __app_name__, __version__ from corrlib import __app_name__, __version__
from .initialization import create from .initialization import create
from .toml import import_tomls, update_project from .toml import import_tomls, update_project, reimport_project
from .find import find_record, find_project, list_projects from .find import find_record, list_projects
from .tools import str2list from .tools import str2list
from .main import update_aliases
import os import os
app = typer.Typer() app = typer.Typer()
@ -51,10 +52,32 @@ def list(
elif entities == 'projects': elif entities == 'projects':
results = list_projects(path) results = list_projects(path)
print("Projects:") print("Projects:")
header = "UUID".ljust(37) + "| Names" header = "UUID".ljust(37) + "| Aliases"
print(header) print(header)
for project in results: for project in results:
print(project[0], "|", " | ".join(str2list(project[1]))) if project[1] is not None:
aliases = " | ".join(str2list(project[1]))
else:
aliases = "---"
print(project[0], "|", aliases)
return
@app.command()
def alias_add(
path: str = typer.Option(
str('./corrlib'),
"--dataset",
"-d",
),
uuid: str = typer.Argument(),
alias: str = typer.Argument(),
) -> None:
"""
Add an alias to a project UUID.
"""
alias_list = alias.pülit(",")
update_aliases(path, uuid, alias_list)
return return
@ -98,6 +121,27 @@ def importer(
return return
@app.command()
def reimporter(
path: str = typer.Option(
str('./corrlib'),
"--dataset",
"-d",
),
ident: str = typer.Argument()
) -> None:
uuid = ident.split("::")[0]
if len(ident.split("::")) > 1:
toml_file = os.path.join(path, "toml_imports", ident.split("::")[1])
if os.path.exists(toml_file):
import_tomls(path, [toml_file], copy_files=False)
else:
raise Exception("This file is not known for this project.")
else:
reimport_project(path, uuid)
return
@app.command() @app.command()
def init( def init(
path: str = typer.Option( path: str = typer.Option(