chris.models.data
Dataclasses describing objects returned from CUBE.
These classes are extended in the modules chris.models.logged_in
and chris.models.public
with methods to get objects from links.
1""" 2Dataclasses describing objects returned from CUBE. 3 4These classes are extended in the modules `chris.models.logged_in` 5and `chris.models.public` with methods to get objects from links. 6""" 7 8from dataclasses import dataclass 9import datetime 10from typing import Optional 11 12from serde import deserialize 13 14from chris.link.linked import LinkedModel 15from chris.models.enums import PluginType, Status 16from chris.models.types import * 17 18 19@deserialize 20@dataclass(frozen=True) 21class UserData: 22 """A *CUBE* user.""" 23 24 url: UserUrl 25 id: UserId 26 username: Username 27 email: str 28 29 30# TODO It'd be better to use inheritance instead of optionals 31@deserialize 32@dataclass(frozen=True) 33class PluginInstanceData(LinkedModel): 34 """ 35 A *plugin instance* in _ChRIS_ is a computing job, i.e. an attempt to run 36 a computation (a non-interactive command-line app) to produce data. 37 """ 38 39 url: PluginInstanceUrl 40 id: PluginInstanceId 41 title: str 42 compute_resource_name: ComputeResourceName 43 plugin_id: PluginId 44 plugin_name: PluginName 45 plugin_version: PluginVersion 46 plugin_type: PluginType 47 48 pipeline_inst: Optional[int] 49 feed_id: FeedId 50 start_date: datetime.datetime 51 end_date: datetime.datetime 52 output_path: CubeFilePath 53 54 status: Status 55 56 summary: str 57 raw: str 58 owner_username: Username 59 cpu_limit: int 60 memory_limit: int 61 number_of_workers: int 62 gpu_limit: int 63 error_code: CUBEErrorCode 64 65 previous: Optional[PluginInstanceUrl] 66 feed: FeedUrl 67 plugin: PluginUrl 68 descendants: DescendantsUrl 69 files: FilesUrl 70 parameters: PluginInstanceParamtersUrl 71 compute_resource: ComputeResourceUrl 72 splits: SplitsUrl 73 74 previous_id: Optional[int] = None 75 """ 76 FS plugins will not produce a `previous_id` value 77 (even though they will return `"previous": null`) 78 """ 79 80 size: Optional[int] = None 81 """ 82 IDK what it is the size of. 83 84 This field shows up when the plugin instance is maybe done, 85 but not when the plugin instance is created. 86 """ 87 template: Optional[dict] = None 88 """ 89 Present only when getting a plugin instance. 90 """ 91 92 93@deserialize 94@dataclass(frozen=True) 95class FeedData(LinkedModel): 96 url: FeedUrl 97 id: FeedId 98 creation_date: datetime.datetime 99 modification_date: datetime.datetime 100 name: str 101 creator_username: Username 102 created_jobs: int 103 waiting_jobs: int 104 scheduled_jobs: int 105 started_jobs: int 106 registering_jobs: int 107 finished_jobs: int 108 errored_jobs: int 109 cancelled_jobs: int 110 owner: list[UserUrl] 111 note: NoteUrl 112 tags: TagsUrl 113 taggings: TaggingsUrl 114 comments: CommentsUrl 115 files: FilesUrl 116 plugin_instances: PluginInstancesUrl 117 118 119@deserialize 120@dataclass(frozen=True) 121class FeedNoteData(LinkedModel): 122 url: FeedUrl 123 id: NoteId 124 title: str 125 content: str 126 feed: FeedUrl
@deserialize
@dataclass(frozen=True)
class
UserData:
20@deserialize 21@dataclass(frozen=True) 22class UserData: 23 """A *CUBE* user.""" 24 25 url: UserUrl 26 id: UserId 27 username: Username 28 email: str
A CUBE user.
UserData( url: chris.models.types.UserUrl, id: chris.models.types.UserId, username: chris.models.types.Username, email: str)
@deserialize
@dataclass(frozen=True)
class
PluginInstanceData32@deserialize 33@dataclass(frozen=True) 34class PluginInstanceData(LinkedModel): 35 """ 36 A *plugin instance* in _ChRIS_ is a computing job, i.e. an attempt to run 37 a computation (a non-interactive command-line app) to produce data. 38 """ 39 40 url: PluginInstanceUrl 41 id: PluginInstanceId 42 title: str 43 compute_resource_name: ComputeResourceName 44 plugin_id: PluginId 45 plugin_name: PluginName 46 plugin_version: PluginVersion 47 plugin_type: PluginType 48 49 pipeline_inst: Optional[int] 50 feed_id: FeedId 51 start_date: datetime.datetime 52 end_date: datetime.datetime 53 output_path: CubeFilePath 54 55 status: Status 56 57 summary: str 58 raw: str 59 owner_username: Username 60 cpu_limit: int 61 memory_limit: int 62 number_of_workers: int 63 gpu_limit: int 64 error_code: CUBEErrorCode 65 66 previous: Optional[PluginInstanceUrl] 67 feed: FeedUrl 68 plugin: PluginUrl 69 descendants: DescendantsUrl 70 files: FilesUrl 71 parameters: PluginInstanceParamtersUrl 72 compute_resource: ComputeResourceUrl 73 splits: SplitsUrl 74 75 previous_id: Optional[int] = None 76 """ 77 FS plugins will not produce a `previous_id` value 78 (even though they will return `"previous": null`) 79 """ 80 81 size: Optional[int] = None 82 """ 83 IDK what it is the size of. 84 85 This field shows up when the plugin instance is maybe done, 86 but not when the plugin instance is created. 87 """ 88 template: Optional[dict] = None 89 """ 90 Present only when getting a plugin instance. 91 """
A plugin instance in _ChRIS_ is a computing job, i.e. an attempt to run a computation (a non-interactive command-line app) to produce data.
PluginInstanceData( s: aiohttp.client.ClientSession, max_search_requests: int, url: chris.models.types.PluginInstanceUrl, id: chris.models.types.PluginInstanceId, title: str, compute_resource_name: chris.models.types.ComputeResourceName, plugin_id: chris.models.types.PluginId, plugin_name: chris.models.types.PluginName, plugin_version: chris.models.types.PluginVersion, plugin_type: chris.models.enums.PluginType, pipeline_inst: Optional[int], feed_id: chris.models.types.FeedId, start_date: datetime.datetime, end_date: datetime.datetime, output_path: chris.models.types.CubeFilePath, status: chris.models.enums.Status, summary: str, raw: str, owner_username: chris.models.types.Username, cpu_limit: int, memory_limit: int, number_of_workers: int, gpu_limit: int, error_code: chris.models.types.CUBEErrorCode, previous: Optional[chris.models.types.PluginInstanceUrl], feed: chris.models.types.FeedUrl, plugin: chris.models.types.PluginUrl, descendants: chris.models.types.DescendantsUrl, files: chris.models.types.FilesUrl, parameters: chris.models.types.PluginInstanceParametersUrl, compute_resource: chris.models.types.ComputeResourceUrl, splits: chris.models.types.SplitsUrl, previous_id: Optional[int] = None, size: Optional[int] = None, template: Optional[dict] = None)
previous_id: Optional[int] = None
FS plugins will not produce a previous_id
value
(even though they will return "previous": null
)
size: Optional[int] = None
IDK what it is the size of.
This field shows up when the plugin instance is maybe done, but not when the plugin instance is created.
Inherited Members
- chris.link.linked.Linked
- max_search_requests
@deserialize
@dataclass(frozen=True)
class
FeedData94@deserialize 95@dataclass(frozen=True) 96class FeedData(LinkedModel): 97 url: FeedUrl 98 id: FeedId 99 creation_date: datetime.datetime 100 modification_date: datetime.datetime 101 name: str 102 creator_username: Username 103 created_jobs: int 104 waiting_jobs: int 105 scheduled_jobs: int 106 started_jobs: int 107 registering_jobs: int 108 finished_jobs: int 109 errored_jobs: int 110 cancelled_jobs: int 111 owner: list[UserUrl] 112 note: NoteUrl 113 tags: TagsUrl 114 taggings: TaggingsUrl 115 comments: CommentsUrl 116 files: FilesUrl 117 plugin_instances: PluginInstancesUrl
FeedData( s: aiohttp.client.ClientSession, max_search_requests: int, url: chris.models.types.FeedUrl, id: chris.models.types.FeedId, creation_date: datetime.datetime, modification_date: datetime.datetime, name: str, creator_username: chris.models.types.Username, created_jobs: int, waiting_jobs: int, scheduled_jobs: int, started_jobs: int, registering_jobs: int, finished_jobs: int, errored_jobs: int, cancelled_jobs: int, owner: list[chris.models.types.UserUrl], note: chris.models.types.NoteUrl, tags: chris.models.types.TagsUrl, taggings: chris.models.types.TaggingsUrl, comments: chris.models.types.CommentsUrl, files: chris.models.types.FilesUrl, plugin_instances: chris.models.types.PluginInstancesUrl)
Inherited Members
- chris.link.linked.Linked
- max_search_requests
@deserialize
@dataclass(frozen=True)
class
FeedNoteData120@deserialize 121@dataclass(frozen=True) 122class FeedNoteData(LinkedModel): 123 url: FeedUrl 124 id: NoteId 125 title: str 126 content: str 127 feed: FeedUrl
FeedNoteData( s: aiohttp.client.ClientSession, max_search_requests: int, url: chris.models.types.FeedUrl, id: chris.models.types.NoteId, title: str, content: str, feed: chris.models.types.FeedUrl)
Inherited Members
- chris.link.linked.Linked
- max_search_requests