Skip to content

pixi_version

get_pixi_version_or_422(*, pixi_version, resource)

Get valid pixi version based on resource configuration.

PARAMETER DESCRIPTION
pixi_version

If None, return the default version.

TYPE: str | None

resource

TYPE: Resource

Source code in fractal_server/app/routes/aux/pixi_version.py
 7
 8
 9
10
11
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 get_pixi_version_or_422(
    *,
    pixi_version: str | None,
    resource: Resource,
) -> str:
    """
    Get valid pixi version based on resource configuration.

    Args:
        pixi_version: If `None`, return the default version.
        resource:
    """
    if not resource.tasks_pixi_config:
        raise HTTPException(
            status_code=status.HTTP_422_UNPROCESSABLE_CONTENT,
            detail="Pixi task collection is not available.",
        )
    if pixi_version is None:
        return resource.tasks_pixi_config["default_version"]
    else:
        if pixi_version not in resource.tasks_pixi_config["versions"]:
            raise HTTPException(
                status_code=status.HTTP_422_UNPROCESSABLE_CONTENT,
                detail=(
                    f"Pixi version '{pixi_version}' is not available. "
                    "Available versions: "
                    f"{list(resource.tasks_pixi_config['versions'].keys())}"
                ),
            )
        return pixi_version