Skip to content

liblaf.melon.cli ยค

Functions:

  • annotate_landmarks โ€“
  • convert โ€“
  • info โ€“

Attributes:

  • app โ€“

app module-attribute ยค

app = App(name='melon', version=__version__)

annotate_landmarks ยค

annotate_landmarks(
    left_path: Annotated[Path, Parameter(left)],
    right_path: Annotated[Path, Parameter(right)],
    /,
    *,
    left_landmarks_path: Annotated[
        Path | None, Parameter(left - landmarks)
    ] = None,
    right_landmarks_path: Annotated[
        Path | None, Parameter(right - landmarks)
    ] = None,
) -> None
Source code in src/liblaf/melon/cli/_annotate_landmarks.py
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
def annotate_landmarks(
    left_path: Annotated[Path, Parameter("left")],
    right_path: Annotated[Path, Parameter("right")],
    /,
    *,
    left_landmarks_path: Annotated[Path | None, Parameter("left-landmarks")] = None,
    right_landmarks_path: Annotated[Path | None, Parameter("right-landmarks")] = None,
) -> None:
    if left_landmarks_path is None:
        left_landmarks_path = left_path
    if right_landmarks_path is None:
        right_landmarks_path = right_path
    left: pv.PolyData = io.load_polydata(left_path)
    left_landmarks: Float[np.ndarray, "landmarks 3"] = io.load_landmarks(
        left_landmarks_path
    )
    right: pv.PolyData = io.load_polydata(right_path)
    right_landmarks: Float[np.ndarray, "landmarks 3"] = io.load_landmarks(
        right_landmarks_path
    )
    left_landmarks, right_landmarks = ext.annotate_landmarks(
        left, right, left_landmarks=left_landmarks, right_landmarks=right_landmarks
    )
    io.save_landmarks(left_landmarks_path, left_landmarks)
    io.save_landmarks(right_landmarks_path, right_landmarks)

convert ยค

convert(input: Path, output: Path) -> None
Source code in src/liblaf/melon/cli/_convert.py
17
18
19
20
def convert(input: Path, output: Path, /) -> None:  # noqa: A002
    reader: Reader = READERS[input.suffix]
    obj: Any = reader(input)
    io.save(output, obj)

info ยค

info(
    path: Path,
    /,
    *,
    point_data: bool = True,
    cell_data: bool = True,
    field_data: bool = True,
    field_data_values: bool = False,
    user_dict: bool = True,
) -> None
Source code in src/liblaf/melon/cli/_info.py
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
def info(
    path: Path,
    /,
    *,
    point_data: bool = True,
    cell_data: bool = True,
    field_data: bool = True,
    field_data_values: bool = False,
    user_dict: bool = True,
) -> None:
    mesh: pv.PolyData | pv.UnstructuredGrid
    if path.suffix in POLY_DATA_SUFFIXES:
        mesh = io.load_polydata(path)
    elif path.suffix in UNSTRUCTURED_GRID_SUFFIXES:
        mesh = io.load_unstructured_grid(path)
    else:
        msg: str = f"Unsupported file format: {path.suffix}"
        raise ValueError(msg)
    rich.pretty.pprint(mesh)
    if point_data:
        rich.pretty.pprint(mesh.point_data)
    if cell_data:
        rich.pretty.pprint(mesh.cell_data)
    if field_data:
        rich.pretty.pprint(mesh.field_data)
    if field_data_values:
        for name, data in mesh.field_data.items():
            rich.print(f"{name}: ", end="")
            rich.pretty.pprint(data)
    if user_dict:
        rich.print("User Dict: ", end="")
        rich.pretty.pprint(mesh.user_dict)