Skip to content

Models

Pydantic v2 models returned by the endpoints. Attributes are snake_case; extra server fields are ignored so payload additions never break clients.

pysepal_api.models

Pydantic v2 models for SEPAL responses.

All models accept extra fields silently so SEPAL adding payload keys does not break clients. Field aliases mirror SEPAL's camelCase wire format while exposing Pythonic snake_case attributes.

TaskState

PENDING class-attribute instance-attribute

PENDING = 'PENDING'

ACTIVE class-attribute instance-attribute

ACTIVE = 'ACTIVE'

COMPLETED class-attribute instance-attribute

COMPLETED = 'COMPLETED'

CANCELING class-attribute instance-attribute

CANCELING = 'CANCELING'

CANCELED class-attribute instance-attribute

CANCELED = 'CANCELED'

FAILED class-attribute instance-attribute

FAILED = 'FAILED'

FileEntry

name instance-attribute

name: str

path instance-attribute

path: str

type instance-attribute

type: str

size instance-attribute

size: int

modified_time class-attribute instance-attribute

modified_time: datetime | None = Field(
    default=None, alias="modifiedTime"
)
is_symlink: bool = Field(default=False, alias='isSymlink')

is_dir property

is_dir: bool

is_file property

is_file: bool

DirectoryListing

path instance-attribute

path: str

files instance-attribute

files: list[FileEntry]

count class-attribute instance-attribute

count: int | None = None

Task

id instance-attribute

id: str

recipe_id class-attribute instance-attribute

recipe_id: str | None = Field(
    default=None, alias="recipeId"
)

name class-attribute instance-attribute

name: str | None = None

operation class-attribute instance-attribute

operation: str | None = None

state class-attribute instance-attribute

state: TaskState = Field(
    validation_alias=AliasChoices("state", "status")
)

status_description class-attribute instance-attribute

status_description: str | None = Field(
    default=None, alias="statusDescription"
)

params class-attribute instance-attribute

params: dict[str, Any] | None = None

task_info class-attribute instance-attribute

task_info: dict[str, Any] | None = Field(
    default=None, alias="taskInfo"
)

creation_time class-attribute instance-attribute

creation_time: datetime | None = Field(
    default=None, alias="creationTime"
)

update_time class-attribute instance-attribute

update_time: datetime | None = Field(
    default=None, alias="updateTime"
)

RecipeSummary

id instance-attribute

id: str

project_id class-attribute instance-attribute

project_id: str | None = Field(
    default=None, alias="projectId"
)

name instance-attribute

name: str

type instance-attribute

type: str

creation_time class-attribute instance-attribute

creation_time: datetime | None = Field(
    default=None, alias="creationTime"
)

update_time class-attribute instance-attribute

update_time: datetime | None = Field(
    default=None, alias="updateTime"
)

FileWriteResult

Server response from setFile. Shape is loose; we keep raw fields.

path class-attribute instance-attribute

path: str | None = None

size class-attribute instance-attribute

size: int | None = None