Skip to content

Commit 489fe83

Browse files
committed
chore: update to latest API models
1 parent d9e3a09 commit 489fe83

File tree

8 files changed

+73
-35
lines changed

8 files changed

+73
-35
lines changed

cryosparc/api.pyi

Lines changed: 13 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -586,7 +586,7 @@ class JobsNamespace(APINamespace):
586586
Finds the job.
587587
"""
588588
...
589-
def delete(self, project_uid: str, job_uid: str, /, *, force: bool = False) -> None:
589+
def delete(self, project_uid: str, job_uid: str, /, *, force: bool = False) -> Any:
590590
"""
591591
Deletes a job. Will kill (if running) and clearing the job before deleting.
592592
"""
@@ -1073,7 +1073,7 @@ class WorkspacesNamespace(APINamespace):
10731073
Find a specific workspace in a project
10741074
"""
10751075
...
1076-
def delete(self, project_uid: str, workspace_uid: str, /) -> None:
1076+
def delete(self, project_uid: str, workspace_uid: str, /) -> Any:
10771077
"""
10781078
Marks the workspace as "deleted". Deletes jobs that are only linked to this workspace
10791079
and no other workspace.
@@ -1107,12 +1107,6 @@ class WorkspacesNamespace(APINamespace):
11071107
Adds a workspace uid to a user's recently viewed workspaces list.
11081108
"""
11091109
...
1110-
def delete_async(self, project_uid: str, workspace_uid: str, /) -> Any:
1111-
"""
1112-
Starts the workspace deletion task. Deletes jobs that are only linked to this workspace
1113-
and no other workspace.
1114-
"""
1115-
...
11161110
def add_tag(self, project_uid: str, workspace_uid: str, tag_uid: str, /) -> None:
11171111
"""
11181112
Tag the given workspace with the given tag.
@@ -1202,7 +1196,7 @@ class SessionsNamespace(APINamespace):
12021196
Finds a session
12031197
"""
12041198
...
1205-
def delete(self, project_uid: str, session_uid: str, /) -> None:
1199+
def delete(self, project_uid: str, session_uid: str, /) -> Any:
12061200
"""
12071201
Sets the session document as "deleted"
12081202
Will throw an error if any undeleted jobs exist within the session.
@@ -1809,12 +1803,7 @@ class ProjectsNamespace(APINamespace):
18091803
Finds a project by its UID
18101804
"""
18111805
...
1812-
def delete(self, project_uid: str, /) -> None:
1813-
"""
1814-
Deletes the project, its full directory, and all associated workspaces, sessions, jobs and results.
1815-
"""
1816-
...
1817-
def delete_async(self, project_uid: str, /) -> Any:
1806+
def delete(self, project_uid: str, /) -> Any:
18181807
"""
18191808
Starts project deletion task. Will delete the project, its full directory, and all associated workspaces, sessions, jobs and results.
18201809
"""
@@ -1846,13 +1835,7 @@ class ProjectsNamespace(APINamespace):
18461835
Removes a user's access from a project.
18471836
"""
18481837
...
1849-
def refresh_size(self, project_uid: str, /) -> Project:
1850-
"""
1851-
Walks the project directory and update the project size with the sum
1852-
of all the file sizes.
1853-
"""
1854-
...
1855-
def refresh_size_async(self, project_uid: str, /) -> Any:
1838+
def refresh_size(self, project_uid: str, /) -> Any:
18561839
"""
18571840
Starts project size recalculation asynchronously.
18581841
"""
@@ -1972,6 +1955,13 @@ class ProjectsNamespace(APINamespace):
19721955
Unstars a project for a user
19731956
"""
19741957
...
1958+
def reset_autodump(self, project_uid: str, /) -> Project:
1959+
"""
1960+
Clear project directory write failures. After calling this endpoint,
1961+
CryoSPARC's scheduler will attempt to write modified jobs and workspaces to
1962+
the project directory that previously could not be saved.
1963+
"""
1964+
...
19751965

19761966
class ExposuresNamespace(APINamespace):
19771967
"""
@@ -2244,7 +2234,7 @@ class DeveloperNamespace(APINamespace):
22442234
Restarts API service and scheduler.
22452235
"""
22462236
...
2247-
def save_job_registers(self) -> List[JobRegister]:
2237+
def save_job_registers(self, *, developer_name: Optional[str] = ...) -> List[JobRegister]:
22482238
"""
22492239
Re-saves the current job registers. Call this when restarting the api
22502240
service without executing the /startup route, as we do during developer

cryosparc/model_registry.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,24 +36,24 @@
3636
register_model_module(scheduler_target)
3737
register_model_module(gpu)
3838
register_model_module(api_request)
39+
register_model_module(user)
3940
register_model_module(api_response)
4041
register_model_module(job_spec)
4142
register_model_module(exposure)
4243
register_model_module(event)
43-
register_model_module(user)
4444
register_model_module(session_params)
4545
register_model_module(external)
4646
register_model_module(project)
4747
register_model_module(asset)
4848
register_model_module(signature)
4949
register_model_module(instance)
50+
register_model_module(workspace)
5051
register_model_module(job_register)
5152
register_model_module(license)
5253
register_model_module(service)
5354
register_model_module(notification)
5455
register_model_module(diagnostics)
5556
register_model_module(scheduler_lane)
56-
register_model_module(workspace)
5757
register_model_module(session_spec)
5858
register_model_module(session_config_profile)
5959
register_model_module(tag)

cryosparc/models/gpu.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# THIS FILE IS AUTO-GENERATED, DO NOT EDIT DIRECTLY
22
# SEE dev/api_generate_models.py
3-
from typing import Literal
3+
from typing import Any, Literal
44

55
from pydantic import BaseModel
66

@@ -20,7 +20,7 @@ class GpuInfo(BaseModel):
2020
name: str
2121
mem: int
2222
bus_id: str = ""
23-
compute_mode: Literal["Default", "Exclusive Thread", "Prohibited", "Exclusive Process"] = "Default"
23+
compute_mode: Any = "Default"
2424
persistence_mode: Literal["Disabled", "Enabled"] = "Disabled"
2525
power_limit: float = 0.0
2626
sw_power_limit: Literal["Not Active", "Active"] = "Not Active"

cryosparc/models/job.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class AllocatedResources(BaseModel):
2424

2525

2626
class JobLastAccessed(BaseModel):
27-
name: str = ""
27+
name: str
2828
accessed_at: datetime.datetime = datetime.datetime(1, 1, 1, 0, 0, tzinfo=datetime.timezone.utc)
2929

3030

@@ -40,6 +40,12 @@ class UiTileImage(BaseModel):
4040
num_cols: Optional[int] = None
4141

4242

43+
class JobWorkflowInfo(BaseModel):
44+
id: str
45+
jobId: str
46+
run: int
47+
48+
4349
class Job(BaseModel):
4450
"""
4551
Specification for a Job document from the MongoDB database.
@@ -84,6 +90,7 @@ class Job(BaseModel):
8490
version: Optional[str] = None
8591
priority: int = 0
8692
deleted: bool = False
93+
deleting: bool = False
8794
parents: List[str] = []
8895
children: List[str] = []
8996
resources_allocated: Optional[AllocatedResources] = None
@@ -141,6 +148,7 @@ class Job(BaseModel):
141148
last_exported_location: Optional[str] = None
142149
last_exported_version: Optional[str] = None
143150
tags: List[str] = []
151+
workflow: Optional[JobWorkflowInfo] = None
144152
imported_at: Optional[datetime.datetime] = None
145153
deleted_at: Optional[datetime.datetime] = None
146154
import_status: Optional[Literal["importing", "complete", "failed"]] = None

cryosparc/models/project.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,11 @@ class ProjectStats(BaseModel):
2727
updated_at: Optional[datetime.datetime] = None
2828

2929

30+
class ProjectWorkflowInfo(BaseModel):
31+
latest_workflow_uid: str
32+
runs: Dict[str, int] = {}
33+
34+
3035
class Project(BaseModel):
3136
id: str = Field("000000000000000000000000", alias="_id")
3237
updated_at: datetime.datetime = datetime.datetime(1970, 1, 1, 0, 0, tzinfo=datetime.timezone.utc)
@@ -42,6 +47,7 @@ class Project(BaseModel):
4247
project_params_pdef: dict = {}
4348
queue_paused: bool = False
4449
deleted: bool = False
50+
deleting: bool = False
4551
users_with_access: List[str] = []
4652
size: int = 0
4753
size_last_updated: datetime.datetime
@@ -55,11 +61,15 @@ class Project(BaseModel):
5561
imported_at: Optional[datetime.datetime] = None
5662
import_status: Optional[Literal["importing", "complete", "failed"]] = None
5763
project_stats: ProjectStats = ProjectStats()
64+
created_at_version: str = "unknown"
5865
last_archived_version: Optional[str] = None
5966
last_detached_version: Optional[str] = None
6067
is_cleanup_in_progress: bool = False
6168
tags: List[str] = []
6269
starred_by: List[str] = []
70+
autodump_failed: bool = False
71+
autodump_errors: List[str] = []
72+
workflows: Optional[ProjectWorkflowInfo] = None
6373
uid_num: int
6474

6575

cryosparc/models/session.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from .session_params import LiveAbinitParams, LivePreprocessingParams
1010
from .session_spec import SessionStatus
1111
from .signature import ImportSignature
12-
from .workspace import WorkspaceStats
12+
from .workspace import JobGroup, WorkspaceStats
1313

1414

1515
class AbInitioVolumeInfo(BaseModel):
@@ -222,12 +222,12 @@ class Session(BaseModel):
222222
tags: List[str] = []
223223
starred_by: List[str] = []
224224
deleted: bool = False
225+
deleting: bool = False
225226
last_accessed: Optional[SessionLastAccessed] = None
226227
workspace_stats: WorkspaceStats = WorkspaceStats()
227-
notes: str = ""
228-
notes_lock: Optional[str] = None
229228
imported_at: Optional[datetime.datetime] = None
230229
workspace_type: str = "live"
230+
groups: List[JobGroup] = []
231231
session_uid: str
232232
session_dir: str
233233
status: SessionStatus = "paused"
@@ -295,6 +295,8 @@ class Session(BaseModel):
295295
]
296296
picking_thresholds: PickingThresholds = PickingThresholds()
297297
compute_resources: LiveComputeResources = LiveComputeResources()
298+
notes: str = ""
299+
notes_lock: Optional[str] = None
298300
phase_one_workers: Dict[str, RtpWorkerState] = {}
299301
phase_one_workers_soft_kill: List[Any] = []
300302
live_session_job_uid: Optional[str] = None

cryosparc/models/user.py

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,31 @@
66
from pydantic import BaseModel, Field
77

88

9+
class Bookmark(BaseModel):
10+
id: str
11+
path: str
12+
name: str
13+
description: str
14+
color: str
15+
last_accessed: datetime.datetime
16+
created_at: datetime.datetime = datetime.datetime(2025, 3, 6, 16, 44, 32, 992643, tzinfo=datetime.timezone.utc)
17+
18+
919
class Email(BaseModel):
1020
address: str
1121
verified: bool = False
1222

1323

24+
class RecentPath(BaseModel):
25+
path: str
26+
last_accessed: datetime.datetime
27+
28+
29+
class FileBrowserState(BaseModel):
30+
recentPaths: List[RecentPath] = []
31+
bookmarks: List[Bookmark] = []
32+
33+
1434
class LoginToken(BaseModel):
1535
hashedToken: str
1636
when: datetime.datetime
@@ -52,13 +72,13 @@ class Services(BaseModel):
5272
class UserState(BaseModel):
5373
licenseAccepted: bool = False
5474
userCanSetJobPriority: bool = False
55-
userCanModifyLiveDataManagement: bool = False
5675
recentProjects: List[str] = []
5776
recentWorkspaces: List[RecentWorkspace] = []
5877
recentSessions: List[RecentSession] = []
5978
recentJobs: List[RecentJob] = []
6079
browserPath: Optional[str] = None
61-
defaultJobPriority: int = 0
80+
defaultJobPriority: Optional[int] = None
81+
userFileBrowserState: FileBrowserState = FileBrowserState()
6282

6383

6484
class User(BaseModel):

cryosparc/models/workspace.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,14 @@
66
from pydantic import BaseModel, ConfigDict, Field
77

88

9+
class JobGroup(BaseModel):
10+
id: int
11+
jobs: List[str]
12+
title: Optional[str] = None
13+
description: Optional[str] = None
14+
color: Optional[str] = None
15+
16+
917
class WorkspaceStats(BaseModel):
1018
updated_at: Optional[datetime.datetime] = None
1119
job_count: int = 0
@@ -35,12 +43,12 @@ class Workspace(BaseModel):
3543
tags: List[str] = []
3644
starred_by: List[str] = []
3745
deleted: bool = False
46+
deleting: bool = False
3847
last_accessed: Optional[WorkspaceLastAccessed] = None
3948
workspace_stats: WorkspaceStats = WorkspaceStats()
40-
notes: str = ""
41-
notes_lock: Optional[str] = None
4249
imported_at: Optional[datetime.datetime] = None
4350
workspace_type: Literal["base", "live"] = "base"
51+
groups: List[JobGroup] = []
4452
uid_num: int
4553
project_uid_num: int
4654

0 commit comments

Comments
 (0)