Skip to content

Profile

CLASS DESCRIPTION
ProfileRead

Profile schema for GET endpoints.

ValidProfileLocal

Valid local profile.

ValidProfileSlurmSSH

Valid SLURM/sudo profile.

ValidProfileSlurmSudo

Valid SLURM/sudo profile.

FUNCTION DESCRIPTION
cast_serialize_profile

Cast/serialize round-trip for Profile data.

Attributes

Classes

ProfileRead pydantic-model

Bases: BaseModel

Profile schema for GET endpoints.

ATTRIBUTE DESCRIPTION
id

TYPE: int

name

TYPE: str

resource_id

TYPE: int

resource_type

TYPE: str

username

TYPE: str | None

ssh_key_path

TYPE: str | None

jobs_remote_dir

TYPE: str | None

tasks_remote_dir

TYPE: str | None

pixi_cache_dir

TYPE: str | None

Fields:

  • id (int)
  • name (str)
  • resource_id (int)
  • resource_type (str)
  • username (str | None)
  • ssh_key_path (str | None)
  • jobs_remote_dir (str | None)
  • tasks_remote_dir (str | None)
  • pixi_cache_dir (str | None)
Source code in fractal_server/app/schemas/v2/profile.py
class ProfileRead(BaseModel):
    """
    Profile schema for GET endpoints.

    Attributes:
        id:
        name:
        resource_id:
        resource_type:
        username:
        ssh_key_path:
        jobs_remote_dir:
        tasks_remote_dir:
        pixi_cache_dir:
    """

    id: int
    name: str
    resource_id: int
    resource_type: str
    username: str | None = None
    ssh_key_path: str | None = None
    jobs_remote_dir: str | None = None
    tasks_remote_dir: str | None = None
    pixi_cache_dir: str | None = None

ValidProfileLocal pydantic-model

Bases: BaseModel

Valid local profile.

ATTRIBUTE DESCRIPTION
name

Profile name.

TYPE: NonEmptyStr

resource_type

Type of the corresponding resource.

TYPE: ResourceType

Fields:

  • name (NonEmptyStr)
  • resource_type (ResourceType)
  • username (None)
  • ssh_key_path (None)
  • jobs_remote_dir (None)
  • tasks_remote_dir (None)
  • pixi_cache_dir (None)
Source code in fractal_server/app/schemas/v2/profile.py
class ValidProfileLocal(BaseModel):
    """
    Valid local profile.

    Attributes:
        name: Profile name.
        resource_type: Type of the corresponding resource.
    """

    name: NonEmptyStr
    resource_type: ResourceType
    username: None = None
    ssh_key_path: None = None
    jobs_remote_dir: None = None
    tasks_remote_dir: None = None
    pixi_cache_dir: None = None

ValidProfileSlurmSSH pydantic-model

Bases: BaseModel

Valid SLURM/sudo profile.

ATTRIBUTE DESCRIPTION
name

Profile name.

TYPE: NonEmptyStr

resource_type

Type of the corresponding resource.

TYPE: ResourceType

username

SLURM user to impersonate (e.g. as in ssh username@cluster sbatch /some/script.sh).

TYPE: NonEmptyStr

ssh_key_path

Local path of SSH private key for user username.

TYPE: AbsolutePathStr

tasks_remote_dir

Base folder for task environments on the remote SLURM cluster.

TYPE: AbsolutePathStr

jobs_remote_dir

Base folder for job directories on the remote SLURM cluster.

TYPE: AbsolutePathStr

pixi_cache_dir

Optional override for PIXI_CACHE_DIR.

TYPE: AbsolutePathStr | None

Fields:

Source code in fractal_server/app/schemas/v2/profile.py
class ValidProfileSlurmSSH(BaseModel):
    """
    Valid SLURM/sudo profile.

    Attributes:
        name: Profile name.
        resource_type: Type of the corresponding resource.
        username:
            SLURM user to impersonate (e.g. as in
            `ssh username@cluster sbatch /some/script.sh`).
        ssh_key_path:
            Local path of SSH private key for user `username`.
        tasks_remote_dir:
            Base folder for task environments on the remote SLURM cluster.
        jobs_remote_dir:
            Base folder for job directories on the remote SLURM cluster.
        pixi_cache_dir:
            Optional override for `PIXI_CACHE_DIR`.
    """

    name: NonEmptyStr
    resource_type: ResourceType
    username: NonEmptyStr
    ssh_key_path: AbsolutePathStr
    jobs_remote_dir: AbsolutePathStr
    tasks_remote_dir: AbsolutePathStr
    pixi_cache_dir: AbsolutePathStr | None = None

ValidProfileSlurmSudo pydantic-model

Bases: BaseModel

Valid SLURM/sudo profile.

ATTRIBUTE DESCRIPTION
name

Profile name.

TYPE: NonEmptyStr

resource_type

Type of the corresponding resource.

TYPE: ResourceType

username

SLURM user to impersonate (e.g. as in sudo -u username sbatch /some/script.sh).

TYPE: NonEmptyStr

Fields:

Source code in fractal_server/app/schemas/v2/profile.py
class ValidProfileSlurmSudo(BaseModel):
    """
    Valid SLURM/sudo profile.

    Attributes:
        name: Profile name.
        resource_type: Type of the corresponding resource.
        username:
            SLURM user to impersonate (e.g. as in
            `sudo -u username sbatch /some/script.sh`).
    """

    name: NonEmptyStr
    resource_type: ResourceType
    username: NonEmptyStr
    ssh_key_path: None = None
    jobs_remote_dir: None = None
    tasks_remote_dir: None = None
    pixi_cache_dir: None = None

Functions:

cast_serialize_profile(_data)

Cast/serialize round-trip for Profile data.

We use @validate_call because ProfileCreate is a Union type and it cannot be instantiated directly.

Return

Serialized version of a valid profile object.

Source code in fractal_server/app/schemas/v2/profile.py
@validate_call
def cast_serialize_profile(_data: ProfileCreate) -> dict[str, Any]:
    """
    Cast/serialize round-trip for `Profile` data.

    We use `@validate_call` because `ProfileCreate` is a `Union` type and it
    cannot be instantiated directly.

    Return:
        Serialized version of a valid profile object.
    """
    return _data.model_dump()