tilebox-workflows 0.43.0__py3-none-any.whl → 0.45.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11,12 +11,22 @@ from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union
11
11
 
12
12
  DESCRIPTOR: _descriptor.FileDescriptor
13
13
 
14
+ class LegacyJobState(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
15
+ __slots__ = ()
16
+ LEGACY_JOB_STATE_UNSPECIFIED: _ClassVar[LegacyJobState]
17
+ LEGACY_JOB_STATE_QUEUED: _ClassVar[LegacyJobState]
18
+ LEGACY_JOB_STATE_STARTED: _ClassVar[LegacyJobState]
19
+ LEGACY_JOB_STATE_COMPLETED: _ClassVar[LegacyJobState]
20
+
14
21
  class JobState(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
15
22
  __slots__ = ()
16
23
  JOB_STATE_UNSPECIFIED: _ClassVar[JobState]
17
- JOB_STATE_QUEUED: _ClassVar[JobState]
24
+ JOB_STATE_SUBMITTED: _ClassVar[JobState]
25
+ JOB_STATE_RUNNING: _ClassVar[JobState]
18
26
  JOB_STATE_STARTED: _ClassVar[JobState]
19
27
  JOB_STATE_COMPLETED: _ClassVar[JobState]
28
+ JOB_STATE_FAILED: _ClassVar[JobState]
29
+ JOB_STATE_CANCELED: _ClassVar[JobState]
20
30
 
21
31
  class TaskState(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
22
32
  __slots__ = ()
@@ -25,17 +35,22 @@ class TaskState(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
25
35
  TASK_STATE_RUNNING: _ClassVar[TaskState]
26
36
  TASK_STATE_COMPUTED: _ClassVar[TaskState]
27
37
  TASK_STATE_FAILED: _ClassVar[TaskState]
28
- TASK_STATE_CANCELLED: _ClassVar[TaskState]
38
+ LEGACY_JOB_STATE_UNSPECIFIED: LegacyJobState
39
+ LEGACY_JOB_STATE_QUEUED: LegacyJobState
40
+ LEGACY_JOB_STATE_STARTED: LegacyJobState
41
+ LEGACY_JOB_STATE_COMPLETED: LegacyJobState
29
42
  JOB_STATE_UNSPECIFIED: JobState
30
- JOB_STATE_QUEUED: JobState
43
+ JOB_STATE_SUBMITTED: JobState
44
+ JOB_STATE_RUNNING: JobState
31
45
  JOB_STATE_STARTED: JobState
32
46
  JOB_STATE_COMPLETED: JobState
47
+ JOB_STATE_FAILED: JobState
48
+ JOB_STATE_CANCELED: JobState
33
49
  TASK_STATE_UNSPECIFIED: TaskState
34
50
  TASK_STATE_QUEUED: TaskState
35
51
  TASK_STATE_RUNNING: TaskState
36
52
  TASK_STATE_COMPUTED: TaskState
37
53
  TASK_STATE_FAILED: TaskState
38
- TASK_STATE_CANCELLED: TaskState
39
54
 
40
55
  class Cluster(_message.Message):
41
56
  __slots__ = ("slug", "display_name", "deletable")
@@ -48,28 +63,58 @@ class Cluster(_message.Message):
48
63
  def __init__(self, slug: _Optional[str] = ..., display_name: _Optional[str] = ..., deletable: bool = ...) -> None: ...
49
64
 
50
65
  class Job(_message.Message):
51
- __slots__ = ("id", "name", "trace_parent", "canceled", "state", "submitted_at", "started_at", "task_summaries", "automation_id", "progress_bars")
66
+ __slots__ = ("id", "name", "trace_parent", "canceled", "legacy_state", "submitted_at", "started_at", "task_summaries", "automation_id", "progress", "state", "execution_stats")
52
67
  ID_FIELD_NUMBER: _ClassVar[int]
53
68
  NAME_FIELD_NUMBER: _ClassVar[int]
54
69
  TRACE_PARENT_FIELD_NUMBER: _ClassVar[int]
55
70
  CANCELED_FIELD_NUMBER: _ClassVar[int]
56
- STATE_FIELD_NUMBER: _ClassVar[int]
71
+ LEGACY_STATE_FIELD_NUMBER: _ClassVar[int]
57
72
  SUBMITTED_AT_FIELD_NUMBER: _ClassVar[int]
58
73
  STARTED_AT_FIELD_NUMBER: _ClassVar[int]
59
74
  TASK_SUMMARIES_FIELD_NUMBER: _ClassVar[int]
60
75
  AUTOMATION_ID_FIELD_NUMBER: _ClassVar[int]
61
- PROGRESS_BARS_FIELD_NUMBER: _ClassVar[int]
76
+ PROGRESS_FIELD_NUMBER: _ClassVar[int]
77
+ STATE_FIELD_NUMBER: _ClassVar[int]
78
+ EXECUTION_STATS_FIELD_NUMBER: _ClassVar[int]
62
79
  id: _id_pb2.ID
63
80
  name: str
64
81
  trace_parent: str
65
82
  canceled: bool
66
- state: JobState
83
+ legacy_state: LegacyJobState
67
84
  submitted_at: _timestamp_pb2.Timestamp
68
85
  started_at: _timestamp_pb2.Timestamp
69
86
  task_summaries: _containers.RepeatedCompositeFieldContainer[TaskSummary]
70
87
  automation_id: _id_pb2.ID
71
- progress_bars: _containers.RepeatedCompositeFieldContainer[ProgressBar]
72
- def __init__(self, id: _Optional[_Union[_id_pb2.ID, _Mapping]] = ..., name: _Optional[str] = ..., trace_parent: _Optional[str] = ..., canceled: bool = ..., state: _Optional[_Union[JobState, str]] = ..., submitted_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., started_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., task_summaries: _Optional[_Iterable[_Union[TaskSummary, _Mapping]]] = ..., automation_id: _Optional[_Union[_id_pb2.ID, _Mapping]] = ..., progress_bars: _Optional[_Iterable[_Union[ProgressBar, _Mapping]]] = ...) -> None: ...
88
+ progress: _containers.RepeatedCompositeFieldContainer[Progress]
89
+ state: JobState
90
+ execution_stats: ExecutionStats
91
+ def __init__(self, id: _Optional[_Union[_id_pb2.ID, _Mapping]] = ..., name: _Optional[str] = ..., trace_parent: _Optional[str] = ..., canceled: bool = ..., legacy_state: _Optional[_Union[LegacyJobState, str]] = ..., submitted_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., started_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., task_summaries: _Optional[_Iterable[_Union[TaskSummary, _Mapping]]] = ..., automation_id: _Optional[_Union[_id_pb2.ID, _Mapping]] = ..., progress: _Optional[_Iterable[_Union[Progress, _Mapping]]] = ..., state: _Optional[_Union[JobState, str]] = ..., execution_stats: _Optional[_Union[ExecutionStats, _Mapping]] = ...) -> None: ...
92
+
93
+ class ExecutionStats(_message.Message):
94
+ __slots__ = ("first_task_started_at", "last_task_stopped_at", "compute_time", "elapsed_time", "parallelism", "total_tasks", "tasks_by_state")
95
+ FIRST_TASK_STARTED_AT_FIELD_NUMBER: _ClassVar[int]
96
+ LAST_TASK_STOPPED_AT_FIELD_NUMBER: _ClassVar[int]
97
+ COMPUTE_TIME_FIELD_NUMBER: _ClassVar[int]
98
+ ELAPSED_TIME_FIELD_NUMBER: _ClassVar[int]
99
+ PARALLELISM_FIELD_NUMBER: _ClassVar[int]
100
+ TOTAL_TASKS_FIELD_NUMBER: _ClassVar[int]
101
+ TASKS_BY_STATE_FIELD_NUMBER: _ClassVar[int]
102
+ first_task_started_at: _timestamp_pb2.Timestamp
103
+ last_task_stopped_at: _timestamp_pb2.Timestamp
104
+ compute_time: _duration_pb2.Duration
105
+ elapsed_time: _duration_pb2.Duration
106
+ parallelism: float
107
+ total_tasks: int
108
+ tasks_by_state: _containers.RepeatedCompositeFieldContainer[TaskStateCount]
109
+ def __init__(self, first_task_started_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., last_task_stopped_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., compute_time: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., elapsed_time: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., parallelism: _Optional[float] = ..., total_tasks: _Optional[int] = ..., tasks_by_state: _Optional[_Iterable[_Union[TaskStateCount, _Mapping]]] = ...) -> None: ...
110
+
111
+ class TaskStateCount(_message.Message):
112
+ __slots__ = ("state", "count")
113
+ STATE_FIELD_NUMBER: _ClassVar[int]
114
+ COUNT_FIELD_NUMBER: _ClassVar[int]
115
+ state: TaskState
116
+ count: int
117
+ def __init__(self, state: _Optional[_Union[TaskState, str]] = ..., count: _Optional[int] = ...) -> None: ...
73
118
 
74
119
  class TaskSummary(_message.Message):
75
120
  __slots__ = ("id", "display", "state", "parent_id", "started_at", "stopped_at")
@@ -87,7 +132,7 @@ class TaskSummary(_message.Message):
87
132
  stopped_at: _timestamp_pb2.Timestamp
88
133
  def __init__(self, id: _Optional[_Union[_id_pb2.ID, _Mapping]] = ..., display: _Optional[str] = ..., state: _Optional[_Union[TaskState, str]] = ..., parent_id: _Optional[_Union[_id_pb2.ID, _Mapping]] = ..., started_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., stopped_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
89
134
 
90
- class ProgressBar(_message.Message):
135
+ class Progress(_message.Message):
91
136
  __slots__ = ("label", "total", "done")
92
137
  LABEL_FIELD_NUMBER: _ClassVar[int]
93
138
  TOTAL_FIELD_NUMBER: _ClassVar[int]
@@ -135,21 +180,49 @@ class Tasks(_message.Message):
135
180
  tasks: _containers.RepeatedCompositeFieldContainer[Task]
136
181
  def __init__(self, tasks: _Optional[_Iterable[_Union[Task, _Mapping]]] = ...) -> None: ...
137
182
 
138
- class TaskSubmission(_message.Message):
139
- __slots__ = ("cluster_slug", "identifier", "input", "display", "dependencies", "max_retries")
183
+ class SingleTaskSubmission(_message.Message):
184
+ __slots__ = ("cluster_slug", "identifier", "display", "dependencies", "max_retries", "input")
140
185
  CLUSTER_SLUG_FIELD_NUMBER: _ClassVar[int]
141
186
  IDENTIFIER_FIELD_NUMBER: _ClassVar[int]
142
- INPUT_FIELD_NUMBER: _ClassVar[int]
143
187
  DISPLAY_FIELD_NUMBER: _ClassVar[int]
144
188
  DEPENDENCIES_FIELD_NUMBER: _ClassVar[int]
145
189
  MAX_RETRIES_FIELD_NUMBER: _ClassVar[int]
190
+ INPUT_FIELD_NUMBER: _ClassVar[int]
146
191
  cluster_slug: str
147
192
  identifier: TaskIdentifier
148
- input: bytes
149
193
  display: str
150
194
  dependencies: _containers.RepeatedScalarFieldContainer[int]
151
195
  max_retries: int
152
- def __init__(self, cluster_slug: _Optional[str] = ..., identifier: _Optional[_Union[TaskIdentifier, _Mapping]] = ..., input: _Optional[bytes] = ..., display: _Optional[str] = ..., dependencies: _Optional[_Iterable[int]] = ..., max_retries: _Optional[int] = ...) -> None: ...
196
+ input: bytes
197
+ def __init__(self, cluster_slug: _Optional[str] = ..., identifier: _Optional[_Union[TaskIdentifier, _Mapping]] = ..., display: _Optional[str] = ..., dependencies: _Optional[_Iterable[int]] = ..., max_retries: _Optional[int] = ..., input: _Optional[bytes] = ...) -> None: ...
198
+
199
+ class TaskSubmissions(_message.Message):
200
+ __slots__ = ("task_groups", "cluster_slug_lookup", "identifier_lookup", "display_lookup")
201
+ TASK_GROUPS_FIELD_NUMBER: _ClassVar[int]
202
+ CLUSTER_SLUG_LOOKUP_FIELD_NUMBER: _ClassVar[int]
203
+ IDENTIFIER_LOOKUP_FIELD_NUMBER: _ClassVar[int]
204
+ DISPLAY_LOOKUP_FIELD_NUMBER: _ClassVar[int]
205
+ task_groups: _containers.RepeatedCompositeFieldContainer[TaskSubmissionGroup]
206
+ cluster_slug_lookup: _containers.RepeatedScalarFieldContainer[str]
207
+ identifier_lookup: _containers.RepeatedCompositeFieldContainer[TaskIdentifier]
208
+ display_lookup: _containers.RepeatedScalarFieldContainer[str]
209
+ def __init__(self, task_groups: _Optional[_Iterable[_Union[TaskSubmissionGroup, _Mapping]]] = ..., cluster_slug_lookup: _Optional[_Iterable[str]] = ..., identifier_lookup: _Optional[_Iterable[_Union[TaskIdentifier, _Mapping]]] = ..., display_lookup: _Optional[_Iterable[str]] = ...) -> None: ...
210
+
211
+ class TaskSubmissionGroup(_message.Message):
212
+ __slots__ = ("dependencies_on_other_groups", "inputs", "identifier_pointers", "cluster_slug_pointers", "display_pointers", "max_retries_values")
213
+ DEPENDENCIES_ON_OTHER_GROUPS_FIELD_NUMBER: _ClassVar[int]
214
+ INPUTS_FIELD_NUMBER: _ClassVar[int]
215
+ IDENTIFIER_POINTERS_FIELD_NUMBER: _ClassVar[int]
216
+ CLUSTER_SLUG_POINTERS_FIELD_NUMBER: _ClassVar[int]
217
+ DISPLAY_POINTERS_FIELD_NUMBER: _ClassVar[int]
218
+ MAX_RETRIES_VALUES_FIELD_NUMBER: _ClassVar[int]
219
+ dependencies_on_other_groups: _containers.RepeatedScalarFieldContainer[int]
220
+ inputs: _containers.RepeatedScalarFieldContainer[bytes]
221
+ identifier_pointers: _containers.RepeatedScalarFieldContainer[int]
222
+ cluster_slug_pointers: _containers.RepeatedScalarFieldContainer[int]
223
+ display_pointers: _containers.RepeatedScalarFieldContainer[int]
224
+ max_retries_values: _containers.RepeatedScalarFieldContainer[int]
225
+ def __init__(self, dependencies_on_other_groups: _Optional[_Iterable[int]] = ..., inputs: _Optional[_Iterable[bytes]] = ..., identifier_pointers: _Optional[_Iterable[int]] = ..., cluster_slug_pointers: _Optional[_Iterable[int]] = ..., display_pointers: _Optional[_Iterable[int]] = ..., max_retries_values: _Optional[_Iterable[int]] = ...) -> None: ...
153
226
 
154
227
  class TaskLease(_message.Message):
155
228
  __slots__ = ("lease", "recommended_wait_until_next_extension")
@@ -29,7 +29,7 @@ from tilebox.workflows.workflows.v1 import core_pb2 as workflows_dot_v1_dot_core
29
29
  from tilebox.workflows.workflows.v1 import diagram_pb2 as workflows_dot_v1_dot_diagram__pb2
30
30
 
31
31
 
32
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16workflows/v1/job.proto\x12\x0cworkflows.v1\x1a\x1b\x62uf/validate/validate.proto\x1a\x13tilebox/v1/id.proto\x1a\x16tilebox/v1/query.proto\x1a\x17workflows/v1/core.proto\x1a\x1aworkflows/v1/diagram.proto\"\xd7\x01\n\x10SubmitJobRequest\x12>\n\x05tasks\x18\x01 \x03(\x0b\x32\x1c.workflows.v1.TaskSubmissionB\n\xbaH\x07\x92\x01\x04\x08\x01\x10@R\x05tasks\x12\"\n\x08job_name\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x07jobName\x12*\n\x0ctrace_parent\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0btraceParent\x12\x33\n\rautomation_id\x18\x04 \x01(\x0b\x32\x0e.tilebox.v1.IDR\x0c\x61utomationId\">\n\rGetJobRequest\x12-\n\x06job_id\x18\x01 \x01(\x0b\x32\x0e.tilebox.v1.IDB\x06\xbaH\x03\xc8\x01\x01R\x05jobId\"F\n\x15GetJobProgressRequest\x12-\n\x06job_id\x18\x01 \x01(\x0b\x32\x0e.tilebox.v1.IDB\x06\xbaH\x03\xc8\x01\x01R\x05jobId\"U\n\x13JobProgressResponse\x12>\n\rprogress_bars\x18\x01 \x03(\x0b\x32\x19.workflows.v1.ProgressBarR\x0cprogressBars\"@\n\x0fRetryJobRequest\x12-\n\x06job_id\x18\x01 \x01(\x0b\x32\x0e.tilebox.v1.IDB\x06\xbaH\x03\xc8\x01\x01R\x05jobId\"F\n\x10RetryJobResponse\x12\x32\n\x15num_tasks_rescheduled\x18\x01 \x01(\x03R\x13numTasksRescheduled\"A\n\x10\x43\x61ncelJobRequest\x12-\n\x06job_id\x18\x01 \x01(\x0b\x32\x0e.tilebox.v1.IDB\x06\xbaH\x03\xc8\x01\x01R\x05jobId\"\x13\n\x11\x43\x61ncelJobResponse\"\xec\x01\n\x13VisualizeJobRequest\x12-\n\x06job_id\x18\x01 \x01(\x0b\x32\x0e.tilebox.v1.IDB\x06\xbaH\x03\xc8\x01\x01R\x05jobId\x12\x42\n\x0erender_options\x18\x02 \x01(\x0b\x32\x1b.workflows.v1.RenderOptionsR\rrenderOptions\x12\x38\n\x05theme\x18\x03 \x01(\x0e\x32\".workflows.v1.WorkflowDiagramThemeR\x05theme\x12(\n\x10include_job_name\x18\x04 \x01(\x08R\x0eincludeJobName\"\xe7\x01\n\x0cQueryFilters\x12=\n\rtime_interval\x18\x01 \x01(\x0b\x32\x18.tilebox.v1.TimeIntervalR\x0ctimeInterval\x12\x37\n\x0bid_interval\x18\x02 \x01(\x0b\x32\x16.tilebox.v1.IDIntervalR\nidInterval\x12:\n\rautomation_id\x18\x03 \x01(\x0b\x32\x0e.tilebox.v1.IDB\x05\xaa\x01\x02\x08\x01R\x0c\x61utomationId:#\xbaH \"\x1e\n\rtime_interval\n\x0bid_interval\x10\x01\"{\n\x10QueryJobsRequest\x12\x34\n\x07\x66ilters\x18\x01 \x01(\x0b\x32\x1a.workflows.v1.QueryFiltersR\x07\x66ilters\x12\x31\n\x04page\x18\x02 \x01(\x0b\x32\x16.tilebox.v1.PaginationB\x05\xaa\x01\x02\x08\x01R\x04page\"v\n\x11QueryJobsResponse\x12%\n\x04jobs\x18\x01 \x03(\x0b\x32\x11.workflows.v1.JobR\x04jobs\x12:\n\tnext_page\x18\x03 \x01(\x0b\x32\x16.tilebox.v1.PaginationB\x05\xaa\x01\x02\x08\x01R\x08nextPage\"G\n\x16GetJobPrototypeRequest\x12-\n\x06job_id\x18\x01 \x01(\x0b\x32\x0e.tilebox.v1.IDB\x06\xbaH\x03\xc8\x01\x01R\x05jobId\"q\n\x17GetJobPrototypeResponse\x12;\n\nroot_tasks\x18\x01 \x03(\x0b\x32\x1c.workflows.v1.TaskSubmissionR\trootTasks\x12\x19\n\x08job_name\x18\x02 \x01(\tR\x07jobName\"\xc0\x01\n\x0f\x43loneJobRequest\x12-\n\x06job_id\x18\x01 \x01(\x0b\x32\x0e.tilebox.v1.IDB\x06\xbaH\x03\xc8\x01\x01R\x05jobId\x12Z\n\x14root_tasks_overrides\x18\x02 \x03(\x0b\x32\x1c.workflows.v1.TaskSubmissionB\n\xbaH\x07\x92\x01\x04\x08\x01\x10@R\x12rootTasksOverrides\x12\"\n\x08job_name\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x07jobName*\xd4\x01\n\x14WorkflowDiagramTheme\x12&\n\"WORKFLOW_DIAGRAM_THEME_UNSPECIFIED\x10\x00\x12 \n\x1cWORKFLOW_DIAGRAM_THEME_LIGHT\x10\x01\x12\x1f\n\x1bWORKFLOW_DIAGRAM_THEME_DARK\x10\x02\x12(\n$WORKFLOW_DIAGRAM_THEME_CONSOLE_LIGHT\x10\x03\x12\'\n#WORKFLOW_DIAGRAM_THEME_CONSOLE_DARK\x10\x04\x32\xd5\x04\n\nJobService\x12>\n\tSubmitJob\x12\x1e.workflows.v1.SubmitJobRequest\x1a\x11.workflows.v1.Job\x12\x38\n\x06GetJob\x12\x1b.workflows.v1.GetJobRequest\x1a\x11.workflows.v1.Job\x12I\n\x08RetryJob\x12\x1d.workflows.v1.RetryJobRequest\x1a\x1e.workflows.v1.RetryJobResponse\x12L\n\tCancelJob\x12\x1e.workflows.v1.CancelJobRequest\x1a\x1f.workflows.v1.CancelJobResponse\x12H\n\x0cVisualizeJob\x12!.workflows.v1.VisualizeJobRequest\x1a\x15.workflows.v1.Diagram\x12L\n\tQueryJobs\x12\x1e.workflows.v1.QueryJobsRequest\x1a\x1f.workflows.v1.QueryJobsResponse\x12^\n\x0fGetJobPrototype\x12$.workflows.v1.GetJobPrototypeRequest\x1a%.workflows.v1.GetJobPrototypeResponse\x12<\n\x08\x43loneJob\x12\x1d.workflows.v1.CloneJobRequest\x1a\x11.workflows.v1.JobBr\n\x10\x63om.workflows.v1B\x08JobProtoP\x01\xa2\x02\x03WXX\xaa\x02\x0cWorkflows.V1\xca\x02\x0cWorkflows\\V1\xe2\x02\x18Workflows\\V1\\GPBMetadata\xea\x02\rWorkflows::V1\x92\x03\x02\x08\x02\x62\x08\x65\x64itionsp\xe8\x07')
32
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16workflows/v1/job.proto\x12\x0cworkflows.v1\x1a\x1b\x62uf/validate/validate.proto\x1a\x13tilebox/v1/id.proto\x1a\x16tilebox/v1/query.proto\x1a\x17workflows/v1/core.proto\x1a\x1aworkflows/v1/diagram.proto\"\x9f\x02\n\x10SubmitJobRequest\x12Q\n\x0clegacy_tasks\x18\x01 \x03(\x0b\x32\".workflows.v1.SingleTaskSubmissionB\n\xbaH\x07\x92\x01\x04\x08\x01\x10@R\x0blegacyTasks\x12\x33\n\x05tasks\x18\x05 \x01(\x0b\x32\x1d.workflows.v1.TaskSubmissionsR\x05tasks\x12\"\n\x08job_name\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x07jobName\x12*\n\x0ctrace_parent\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0btraceParent\x12\x33\n\rautomation_id\x18\x04 \x01(\x0b\x32\x0e.tilebox.v1.IDR\x0c\x61utomationId\">\n\rGetJobRequest\x12-\n\x06job_id\x18\x01 \x01(\x0b\x32\x0e.tilebox.v1.IDB\x06\xbaH\x03\xc8\x01\x01R\x05jobId\"F\n\x15GetJobProgressRequest\x12-\n\x06job_id\x18\x01 \x01(\x0b\x32\x0e.tilebox.v1.IDB\x06\xbaH\x03\xc8\x01\x01R\x05jobId\"@\n\x0fRetryJobRequest\x12-\n\x06job_id\x18\x01 \x01(\x0b\x32\x0e.tilebox.v1.IDB\x06\xbaH\x03\xc8\x01\x01R\x05jobId\"F\n\x10RetryJobResponse\x12\x32\n\x15num_tasks_rescheduled\x18\x01 \x01(\x03R\x13numTasksRescheduled\"A\n\x10\x43\x61ncelJobRequest\x12-\n\x06job_id\x18\x01 \x01(\x0b\x32\x0e.tilebox.v1.IDB\x06\xbaH\x03\xc8\x01\x01R\x05jobId\"\x13\n\x11\x43\x61ncelJobResponse\"\xec\x01\n\x13VisualizeJobRequest\x12-\n\x06job_id\x18\x01 \x01(\x0b\x32\x0e.tilebox.v1.IDB\x06\xbaH\x03\xc8\x01\x01R\x05jobId\x12\x42\n\x0erender_options\x18\x02 \x01(\x0b\x32\x1b.workflows.v1.RenderOptionsR\rrenderOptions\x12\x38\n\x05theme\x18\x03 \x01(\x0e\x32\".workflows.v1.WorkflowDiagramThemeR\x05theme\x12(\n\x10include_job_name\x18\x04 \x01(\x08R\x0eincludeJobName\"\xaf\x02\n\x0cQueryFilters\x12=\n\rtime_interval\x18\x01 \x01(\x0b\x32\x18.tilebox.v1.TimeIntervalR\x0ctimeInterval\x12\x37\n\x0bid_interval\x18\x02 \x01(\x0b\x32\x16.tilebox.v1.IDIntervalR\nidInterval\x12\x35\n\x0e\x61utomation_ids\x18\x03 \x03(\x0b\x32\x0e.tilebox.v1.IDR\rautomationIds\x12.\n\x06states\x18\x04 \x03(\x0e\x32\x16.workflows.v1.JobStateR\x06states\x12\x1b\n\x04name\x18\x05 \x01(\tB\x07\xbaH\x04r\x02\x18\x64R\x04name:#\xbaH \"\x1e\n\rtime_interval\n\x0bid_interval\x10\x01\"{\n\x10QueryJobsRequest\x12\x34\n\x07\x66ilters\x18\x01 \x01(\x0b\x32\x1a.workflows.v1.QueryFiltersR\x07\x66ilters\x12\x31\n\x04page\x18\x02 \x01(\x0b\x32\x16.tilebox.v1.PaginationB\x05\xaa\x01\x02\x08\x01R\x04page\"v\n\x11QueryJobsResponse\x12%\n\x04jobs\x18\x01 \x03(\x0b\x32\x11.workflows.v1.JobR\x04jobs\x12:\n\tnext_page\x18\x03 \x01(\x0b\x32\x16.tilebox.v1.PaginationB\x05\xaa\x01\x02\x08\x01R\x08nextPage\"G\n\x16GetJobPrototypeRequest\x12-\n\x06job_id\x18\x01 \x01(\x0b\x32\x0e.tilebox.v1.IDB\x06\xbaH\x03\xc8\x01\x01R\x05jobId\"w\n\x17GetJobPrototypeResponse\x12\x41\n\nroot_tasks\x18\x01 \x03(\x0b\x32\".workflows.v1.SingleTaskSubmissionR\trootTasks\x12\x19\n\x08job_name\x18\x02 \x01(\tR\x07jobName\"\xc6\x01\n\x0f\x43loneJobRequest\x12-\n\x06job_id\x18\x01 \x01(\x0b\x32\x0e.tilebox.v1.IDB\x06\xbaH\x03\xc8\x01\x01R\x05jobId\x12`\n\x14root_tasks_overrides\x18\x02 \x03(\x0b\x32\".workflows.v1.SingleTaskSubmissionB\n\xbaH\x07\x92\x01\x04\x08\x01\x10@R\x12rootTasksOverrides\x12\"\n\x08job_name\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x07jobName*\xd4\x01\n\x14WorkflowDiagramTheme\x12&\n\"WORKFLOW_DIAGRAM_THEME_UNSPECIFIED\x10\x00\x12 \n\x1cWORKFLOW_DIAGRAM_THEME_LIGHT\x10\x01\x12\x1f\n\x1bWORKFLOW_DIAGRAM_THEME_DARK\x10\x02\x12(\n$WORKFLOW_DIAGRAM_THEME_CONSOLE_LIGHT\x10\x03\x12\'\n#WORKFLOW_DIAGRAM_THEME_CONSOLE_DARK\x10\x04\x32\x9f\x05\n\nJobService\x12>\n\tSubmitJob\x12\x1e.workflows.v1.SubmitJobRequest\x1a\x11.workflows.v1.Job\x12\x38\n\x06GetJob\x12\x1b.workflows.v1.GetJobRequest\x1a\x11.workflows.v1.Job\x12H\n\x0eGetJobProgress\x12#.workflows.v1.GetJobProgressRequest\x1a\x11.workflows.v1.Job\x12I\n\x08RetryJob\x12\x1d.workflows.v1.RetryJobRequest\x1a\x1e.workflows.v1.RetryJobResponse\x12L\n\tCancelJob\x12\x1e.workflows.v1.CancelJobRequest\x1a\x1f.workflows.v1.CancelJobResponse\x12H\n\x0cVisualizeJob\x12!.workflows.v1.VisualizeJobRequest\x1a\x15.workflows.v1.Diagram\x12L\n\tQueryJobs\x12\x1e.workflows.v1.QueryJobsRequest\x1a\x1f.workflows.v1.QueryJobsResponse\x12^\n\x0fGetJobPrototype\x12$.workflows.v1.GetJobPrototypeRequest\x1a%.workflows.v1.GetJobPrototypeResponse\x12<\n\x08\x43loneJob\x12\x1d.workflows.v1.CloneJobRequest\x1a\x11.workflows.v1.JobBr\n\x10\x63om.workflows.v1B\x08JobProtoP\x01\xa2\x02\x03WXX\xaa\x02\x0cWorkflows.V1\xca\x02\x0cWorkflows\\V1\xe2\x02\x18Workflows\\V1\\GPBMetadata\xea\x02\rWorkflows::V1\x92\x03\x02\x08\x02\x62\x08\x65\x64itionsp\xe8\x07')
33
33
 
34
34
  _globals = globals()
35
35
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -37,8 +37,8 @@ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'workflows.v1.job_pb2', _glo
37
37
  if not _descriptor._USE_C_DESCRIPTORS:
38
38
  _globals['DESCRIPTOR']._loaded_options = None
39
39
  _globals['DESCRIPTOR']._serialized_options = b'\n\020com.workflows.v1B\010JobProtoP\001\242\002\003WXX\252\002\014Workflows.V1\312\002\014Workflows\\V1\342\002\030Workflows\\V1\\GPBMetadata\352\002\rWorkflows::V1\222\003\002\010\002'
40
- _globals['_SUBMITJOBREQUEST'].fields_by_name['tasks']._loaded_options = None
41
- _globals['_SUBMITJOBREQUEST'].fields_by_name['tasks']._serialized_options = b'\272H\007\222\001\004\010\001\020@'
40
+ _globals['_SUBMITJOBREQUEST'].fields_by_name['legacy_tasks']._loaded_options = None
41
+ _globals['_SUBMITJOBREQUEST'].fields_by_name['legacy_tasks']._serialized_options = b'\272H\007\222\001\004\010\001\020@'
42
42
  _globals['_SUBMITJOBREQUEST'].fields_by_name['job_name']._loaded_options = None
43
43
  _globals['_SUBMITJOBREQUEST'].fields_by_name['job_name']._serialized_options = b'\272H\004r\002\020\001'
44
44
  _globals['_SUBMITJOBREQUEST'].fields_by_name['trace_parent']._loaded_options = None
@@ -53,8 +53,8 @@ if not _descriptor._USE_C_DESCRIPTORS:
53
53
  _globals['_CANCELJOBREQUEST'].fields_by_name['job_id']._serialized_options = b'\272H\003\310\001\001'
54
54
  _globals['_VISUALIZEJOBREQUEST'].fields_by_name['job_id']._loaded_options = None
55
55
  _globals['_VISUALIZEJOBREQUEST'].fields_by_name['job_id']._serialized_options = b'\272H\003\310\001\001'
56
- _globals['_QUERYFILTERS'].fields_by_name['automation_id']._loaded_options = None
57
- _globals['_QUERYFILTERS'].fields_by_name['automation_id']._serialized_options = b'\252\001\002\010\001'
56
+ _globals['_QUERYFILTERS'].fields_by_name['name']._loaded_options = None
57
+ _globals['_QUERYFILTERS'].fields_by_name['name']._serialized_options = b'\272H\004r\002\030d'
58
58
  _globals['_QUERYFILTERS']._loaded_options = None
59
59
  _globals['_QUERYFILTERS']._serialized_options = b'\272H \"\036\n\rtime_interval\n\013id_interval\020\001'
60
60
  _globals['_QUERYJOBSREQUEST'].fields_by_name['page']._loaded_options = None
@@ -69,38 +69,36 @@ if not _descriptor._USE_C_DESCRIPTORS:
69
69
  _globals['_CLONEJOBREQUEST'].fields_by_name['root_tasks_overrides']._serialized_options = b'\272H\007\222\001\004\010\001\020@'
70
70
  _globals['_CLONEJOBREQUEST'].fields_by_name['job_name']._loaded_options = None
71
71
  _globals['_CLONEJOBREQUEST'].fields_by_name['job_name']._serialized_options = b'\272H\004r\002\020\001'
72
- _globals['_WORKFLOWDIAGRAMTHEME']._serialized_start=1936
73
- _globals['_WORKFLOWDIAGRAMTHEME']._serialized_end=2148
72
+ _globals['_WORKFLOWDIAGRAMTHEME']._serialized_start=2005
73
+ _globals['_WORKFLOWDIAGRAMTHEME']._serialized_end=2217
74
74
  _globals['_SUBMITJOBREQUEST']._serialized_start=168
75
- _globals['_SUBMITJOBREQUEST']._serialized_end=383
76
- _globals['_GETJOBREQUEST']._serialized_start=385
77
- _globals['_GETJOBREQUEST']._serialized_end=447
78
- _globals['_GETJOBPROGRESSREQUEST']._serialized_start=449
79
- _globals['_GETJOBPROGRESSREQUEST']._serialized_end=519
80
- _globals['_JOBPROGRESSRESPONSE']._serialized_start=521
81
- _globals['_JOBPROGRESSRESPONSE']._serialized_end=606
82
- _globals['_RETRYJOBREQUEST']._serialized_start=608
83
- _globals['_RETRYJOBREQUEST']._serialized_end=672
84
- _globals['_RETRYJOBRESPONSE']._serialized_start=674
85
- _globals['_RETRYJOBRESPONSE']._serialized_end=744
86
- _globals['_CANCELJOBREQUEST']._serialized_start=746
87
- _globals['_CANCELJOBREQUEST']._serialized_end=811
88
- _globals['_CANCELJOBRESPONSE']._serialized_start=813
89
- _globals['_CANCELJOBRESPONSE']._serialized_end=832
90
- _globals['_VISUALIZEJOBREQUEST']._serialized_start=835
91
- _globals['_VISUALIZEJOBREQUEST']._serialized_end=1071
92
- _globals['_QUERYFILTERS']._serialized_start=1074
93
- _globals['_QUERYFILTERS']._serialized_end=1305
94
- _globals['_QUERYJOBSREQUEST']._serialized_start=1307
95
- _globals['_QUERYJOBSREQUEST']._serialized_end=1430
96
- _globals['_QUERYJOBSRESPONSE']._serialized_start=1432
97
- _globals['_QUERYJOBSRESPONSE']._serialized_end=1550
98
- _globals['_GETJOBPROTOTYPEREQUEST']._serialized_start=1552
99
- _globals['_GETJOBPROTOTYPEREQUEST']._serialized_end=1623
100
- _globals['_GETJOBPROTOTYPERESPONSE']._serialized_start=1625
101
- _globals['_GETJOBPROTOTYPERESPONSE']._serialized_end=1738
102
- _globals['_CLONEJOBREQUEST']._serialized_start=1741
103
- _globals['_CLONEJOBREQUEST']._serialized_end=1933
104
- _globals['_JOBSERVICE']._serialized_start=2151
105
- _globals['_JOBSERVICE']._serialized_end=2748
75
+ _globals['_SUBMITJOBREQUEST']._serialized_end=455
76
+ _globals['_GETJOBREQUEST']._serialized_start=457
77
+ _globals['_GETJOBREQUEST']._serialized_end=519
78
+ _globals['_GETJOBPROGRESSREQUEST']._serialized_start=521
79
+ _globals['_GETJOBPROGRESSREQUEST']._serialized_end=591
80
+ _globals['_RETRYJOBREQUEST']._serialized_start=593
81
+ _globals['_RETRYJOBREQUEST']._serialized_end=657
82
+ _globals['_RETRYJOBRESPONSE']._serialized_start=659
83
+ _globals['_RETRYJOBRESPONSE']._serialized_end=729
84
+ _globals['_CANCELJOBREQUEST']._serialized_start=731
85
+ _globals['_CANCELJOBREQUEST']._serialized_end=796
86
+ _globals['_CANCELJOBRESPONSE']._serialized_start=798
87
+ _globals['_CANCELJOBRESPONSE']._serialized_end=817
88
+ _globals['_VISUALIZEJOBREQUEST']._serialized_start=820
89
+ _globals['_VISUALIZEJOBREQUEST']._serialized_end=1056
90
+ _globals['_QUERYFILTERS']._serialized_start=1059
91
+ _globals['_QUERYFILTERS']._serialized_end=1362
92
+ _globals['_QUERYJOBSREQUEST']._serialized_start=1364
93
+ _globals['_QUERYJOBSREQUEST']._serialized_end=1487
94
+ _globals['_QUERYJOBSRESPONSE']._serialized_start=1489
95
+ _globals['_QUERYJOBSRESPONSE']._serialized_end=1607
96
+ _globals['_GETJOBPROTOTYPEREQUEST']._serialized_start=1609
97
+ _globals['_GETJOBPROTOTYPEREQUEST']._serialized_end=1680
98
+ _globals['_GETJOBPROTOTYPERESPONSE']._serialized_start=1682
99
+ _globals['_GETJOBPROTOTYPERESPONSE']._serialized_end=1801
100
+ _globals['_CLONEJOBREQUEST']._serialized_start=1804
101
+ _globals['_CLONEJOBREQUEST']._serialized_end=2002
102
+ _globals['_JOBSERVICE']._serialized_start=2220
103
+ _globals['_JOBSERVICE']._serialized_end=2891
106
104
  # @@protoc_insertion_point(module_scope)
@@ -26,16 +26,18 @@ WORKFLOW_DIAGRAM_THEME_CONSOLE_LIGHT: WorkflowDiagramTheme
26
26
  WORKFLOW_DIAGRAM_THEME_CONSOLE_DARK: WorkflowDiagramTheme
27
27
 
28
28
  class SubmitJobRequest(_message.Message):
29
- __slots__ = ("tasks", "job_name", "trace_parent", "automation_id")
29
+ __slots__ = ("legacy_tasks", "tasks", "job_name", "trace_parent", "automation_id")
30
+ LEGACY_TASKS_FIELD_NUMBER: _ClassVar[int]
30
31
  TASKS_FIELD_NUMBER: _ClassVar[int]
31
32
  JOB_NAME_FIELD_NUMBER: _ClassVar[int]
32
33
  TRACE_PARENT_FIELD_NUMBER: _ClassVar[int]
33
34
  AUTOMATION_ID_FIELD_NUMBER: _ClassVar[int]
34
- tasks: _containers.RepeatedCompositeFieldContainer[_core_pb2.TaskSubmission]
35
+ legacy_tasks: _containers.RepeatedCompositeFieldContainer[_core_pb2.SingleTaskSubmission]
36
+ tasks: _core_pb2.TaskSubmissions
35
37
  job_name: str
36
38
  trace_parent: str
37
39
  automation_id: _id_pb2.ID
38
- def __init__(self, tasks: _Optional[_Iterable[_Union[_core_pb2.TaskSubmission, _Mapping]]] = ..., job_name: _Optional[str] = ..., trace_parent: _Optional[str] = ..., automation_id: _Optional[_Union[_id_pb2.ID, _Mapping]] = ...) -> None: ...
40
+ def __init__(self, legacy_tasks: _Optional[_Iterable[_Union[_core_pb2.SingleTaskSubmission, _Mapping]]] = ..., tasks: _Optional[_Union[_core_pb2.TaskSubmissions, _Mapping]] = ..., job_name: _Optional[str] = ..., trace_parent: _Optional[str] = ..., automation_id: _Optional[_Union[_id_pb2.ID, _Mapping]] = ...) -> None: ...
39
41
 
40
42
  class GetJobRequest(_message.Message):
41
43
  __slots__ = ("job_id",)
@@ -49,12 +51,6 @@ class GetJobProgressRequest(_message.Message):
49
51
  job_id: _id_pb2.ID
50
52
  def __init__(self, job_id: _Optional[_Union[_id_pb2.ID, _Mapping]] = ...) -> None: ...
51
53
 
52
- class JobProgressResponse(_message.Message):
53
- __slots__ = ("progress_bars",)
54
- PROGRESS_BARS_FIELD_NUMBER: _ClassVar[int]
55
- progress_bars: _containers.RepeatedCompositeFieldContainer[_core_pb2.ProgressBar]
56
- def __init__(self, progress_bars: _Optional[_Iterable[_Union[_core_pb2.ProgressBar, _Mapping]]] = ...) -> None: ...
57
-
58
54
  class RetryJobRequest(_message.Message):
59
55
  __slots__ = ("job_id",)
60
56
  JOB_ID_FIELD_NUMBER: _ClassVar[int]
@@ -90,14 +86,18 @@ class VisualizeJobRequest(_message.Message):
90
86
  def __init__(self, job_id: _Optional[_Union[_id_pb2.ID, _Mapping]] = ..., render_options: _Optional[_Union[_diagram_pb2.RenderOptions, _Mapping]] = ..., theme: _Optional[_Union[WorkflowDiagramTheme, str]] = ..., include_job_name: bool = ...) -> None: ...
91
87
 
92
88
  class QueryFilters(_message.Message):
93
- __slots__ = ("time_interval", "id_interval", "automation_id")
89
+ __slots__ = ("time_interval", "id_interval", "automation_ids", "states", "name")
94
90
  TIME_INTERVAL_FIELD_NUMBER: _ClassVar[int]
95
91
  ID_INTERVAL_FIELD_NUMBER: _ClassVar[int]
96
- AUTOMATION_ID_FIELD_NUMBER: _ClassVar[int]
92
+ AUTOMATION_IDS_FIELD_NUMBER: _ClassVar[int]
93
+ STATES_FIELD_NUMBER: _ClassVar[int]
94
+ NAME_FIELD_NUMBER: _ClassVar[int]
97
95
  time_interval: _query_pb2.TimeInterval
98
96
  id_interval: _query_pb2.IDInterval
99
- automation_id: _id_pb2.ID
100
- def __init__(self, time_interval: _Optional[_Union[_query_pb2.TimeInterval, _Mapping]] = ..., id_interval: _Optional[_Union[_query_pb2.IDInterval, _Mapping]] = ..., automation_id: _Optional[_Union[_id_pb2.ID, _Mapping]] = ...) -> None: ...
97
+ automation_ids: _containers.RepeatedCompositeFieldContainer[_id_pb2.ID]
98
+ states: _containers.RepeatedScalarFieldContainer[_core_pb2.JobState]
99
+ name: str
100
+ def __init__(self, time_interval: _Optional[_Union[_query_pb2.TimeInterval, _Mapping]] = ..., id_interval: _Optional[_Union[_query_pb2.IDInterval, _Mapping]] = ..., automation_ids: _Optional[_Iterable[_Union[_id_pb2.ID, _Mapping]]] = ..., states: _Optional[_Iterable[_Union[_core_pb2.JobState, str]]] = ..., name: _Optional[str] = ...) -> None: ...
101
101
 
102
102
  class QueryJobsRequest(_message.Message):
103
103
  __slots__ = ("filters", "page")
@@ -125,9 +125,9 @@ class GetJobPrototypeResponse(_message.Message):
125
125
  __slots__ = ("root_tasks", "job_name")
126
126
  ROOT_TASKS_FIELD_NUMBER: _ClassVar[int]
127
127
  JOB_NAME_FIELD_NUMBER: _ClassVar[int]
128
- root_tasks: _containers.RepeatedCompositeFieldContainer[_core_pb2.TaskSubmission]
128
+ root_tasks: _containers.RepeatedCompositeFieldContainer[_core_pb2.SingleTaskSubmission]
129
129
  job_name: str
130
- def __init__(self, root_tasks: _Optional[_Iterable[_Union[_core_pb2.TaskSubmission, _Mapping]]] = ..., job_name: _Optional[str] = ...) -> None: ...
130
+ def __init__(self, root_tasks: _Optional[_Iterable[_Union[_core_pb2.SingleTaskSubmission, _Mapping]]] = ..., job_name: _Optional[str] = ...) -> None: ...
131
131
 
132
132
  class CloneJobRequest(_message.Message):
133
133
  __slots__ = ("job_id", "root_tasks_overrides", "job_name")
@@ -135,6 +135,6 @@ class CloneJobRequest(_message.Message):
135
135
  ROOT_TASKS_OVERRIDES_FIELD_NUMBER: _ClassVar[int]
136
136
  JOB_NAME_FIELD_NUMBER: _ClassVar[int]
137
137
  job_id: _id_pb2.ID
138
- root_tasks_overrides: _containers.RepeatedCompositeFieldContainer[_core_pb2.TaskSubmission]
138
+ root_tasks_overrides: _containers.RepeatedCompositeFieldContainer[_core_pb2.SingleTaskSubmission]
139
139
  job_name: str
140
- def __init__(self, job_id: _Optional[_Union[_id_pb2.ID, _Mapping]] = ..., root_tasks_overrides: _Optional[_Iterable[_Union[_core_pb2.TaskSubmission, _Mapping]]] = ..., job_name: _Optional[str] = ...) -> None: ...
140
+ def __init__(self, job_id: _Optional[_Union[_id_pb2.ID, _Mapping]] = ..., root_tasks_overrides: _Optional[_Iterable[_Union[_core_pb2.SingleTaskSubmission, _Mapping]]] = ..., job_name: _Optional[str] = ...) -> None: ...
@@ -27,6 +27,11 @@ class JobServiceStub(object):
27
27
  request_serializer=workflows_dot_v1_dot_job__pb2.GetJobRequest.SerializeToString,
28
28
  response_deserializer=workflows_dot_v1_dot_core__pb2.Job.FromString,
29
29
  _registered_method=True)
30
+ self.GetJobProgress = channel.unary_unary(
31
+ '/workflows.v1.JobService/GetJobProgress',
32
+ request_serializer=workflows_dot_v1_dot_job__pb2.GetJobProgressRequest.SerializeToString,
33
+ response_deserializer=workflows_dot_v1_dot_core__pb2.Job.FromString,
34
+ _registered_method=True)
30
35
  self.RetryJob = channel.unary_unary(
31
36
  '/workflows.v1.JobService/RetryJob',
32
37
  request_serializer=workflows_dot_v1_dot_job__pb2.RetryJobRequest.SerializeToString,
@@ -75,6 +80,12 @@ class JobServiceServicer(object):
75
80
  context.set_details('Method not implemented!')
76
81
  raise NotImplementedError('Method not implemented!')
77
82
 
83
+ def GetJobProgress(self, request, context):
84
+ """Missing associated documentation comment in .proto file."""
85
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
86
+ context.set_details('Method not implemented!')
87
+ raise NotImplementedError('Method not implemented!')
88
+
78
89
  def RetryJob(self, request, context):
79
90
  """Missing associated documentation comment in .proto file."""
80
91
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
@@ -124,6 +135,11 @@ def add_JobServiceServicer_to_server(servicer, server):
124
135
  request_deserializer=workflows_dot_v1_dot_job__pb2.GetJobRequest.FromString,
125
136
  response_serializer=workflows_dot_v1_dot_core__pb2.Job.SerializeToString,
126
137
  ),
138
+ 'GetJobProgress': grpc.unary_unary_rpc_method_handler(
139
+ servicer.GetJobProgress,
140
+ request_deserializer=workflows_dot_v1_dot_job__pb2.GetJobProgressRequest.FromString,
141
+ response_serializer=workflows_dot_v1_dot_core__pb2.Job.SerializeToString,
142
+ ),
127
143
  'RetryJob': grpc.unary_unary_rpc_method_handler(
128
144
  servicer.RetryJob,
129
145
  request_deserializer=workflows_dot_v1_dot_job__pb2.RetryJobRequest.FromString,
@@ -220,6 +236,33 @@ class JobService(object):
220
236
  metadata,
221
237
  _registered_method=True)
222
238
 
239
+ @staticmethod
240
+ def GetJobProgress(request,
241
+ target,
242
+ options=(),
243
+ channel_credentials=None,
244
+ call_credentials=None,
245
+ insecure=False,
246
+ compression=None,
247
+ wait_for_ready=None,
248
+ timeout=None,
249
+ metadata=None):
250
+ return grpc.experimental.unary_unary(
251
+ request,
252
+ target,
253
+ '/workflows.v1.JobService/GetJobProgress',
254
+ workflows_dot_v1_dot_job__pb2.GetJobProgressRequest.SerializeToString,
255
+ workflows_dot_v1_dot_core__pb2.Job.FromString,
256
+ options,
257
+ channel_credentials,
258
+ insecure,
259
+ call_credentials,
260
+ compression,
261
+ wait_for_ready,
262
+ timeout,
263
+ metadata,
264
+ _registered_method=True)
265
+
223
266
  @staticmethod
224
267
  def RetryJob(request,
225
268
  target,
@@ -28,7 +28,7 @@ from tilebox.datasets.tilebox.v1 import id_pb2 as tilebox_dot_v1_dot_id__pb2
28
28
  from tilebox.workflows.workflows.v1 import core_pb2 as workflows_dot_v1_dot_core__pb2
29
29
 
30
30
 
31
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17workflows/v1/task.proto\x12\x0cworkflows.v1\x1a\x1b\x62uf/validate/validate.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x13tilebox/v1/id.proto\x1a\x17workflows/v1/core.proto\"\xa6\x01\n\x0fNextTaskRequest\x12\x46\n\rcomputed_task\x18\x01 \x01(\x0b\x32\x1a.workflows.v1.ComputedTaskB\x05\xaa\x01\x02\x08\x01R\x0c\x63omputedTask\x12K\n\x10next_task_to_run\x18\x02 \x01(\x0b\x32\x1b.workflows.v1.NextTaskToRunB\x05\xaa\x01\x02\x08\x01R\rnextTaskToRun\"{\n\rNextTaskToRun\x12*\n\x0c\x63luster_slug\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0b\x63lusterSlug\x12>\n\x0bidentifiers\x18\x02 \x03(\x0b\x32\x1c.workflows.v1.TaskIdentifierR\x0bidentifiers\"\xdb\x01\n\x0c\x43omputedTask\x12&\n\x02id\x18\x01 \x01(\x0b\x32\x0e.tilebox.v1.IDB\x06\xbaH\x03\xc8\x01\x01R\x02id\x12\x18\n\x07\x64isplay\x18\x02 \x01(\tR\x07\x64isplay\x12\x43\n\tsub_tasks\x18\x03 \x03(\x0b\x32\x1c.workflows.v1.TaskSubmissionB\x08\xbaH\x05\x92\x01\x02\x10@R\x08subTasks\x12\x44\n\x10progress_updates\x18\x04 \x03(\x0b\x32\x19.workflows.v1.ProgressBarR\x0fprogressUpdates\"g\n\x0eIdlingResponse\x12U\n\x19suggested_idling_duration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.DurationR\x17suggestedIdlingDuration\"\x93\x01\n\x10NextTaskResponse\x12/\n\tnext_task\x18\x01 \x01(\x0b\x32\x12.workflows.v1.TaskR\x08nextTask\x12\x34\n\x06idling\x18\x02 \x01(\x0b\x32\x1c.workflows.v1.IdlingResponseR\x06idling:\x18\xbaH\x15\"\x13\n\tnext_task\n\x06idling\"\xc3\x01\n\x11TaskFailedRequest\x12/\n\x07task_id\x18\x01 \x01(\x0b\x32\x0e.tilebox.v1.IDB\x06\xbaH\x03\xc8\x01\x01R\x06taskId\x12\x18\n\x07\x64isplay\x18\x02 \x01(\tR\x07\x64isplay\x12\x1d\n\ncancel_job\x18\x03 \x01(\x08R\tcancelJob\x12\x44\n\x10progress_updates\x18\x04 \x03(\x0b\x32\x19.workflows.v1.ProgressBarR\x0fprogressUpdates\"B\n\x11TaskStateResponse\x12-\n\x05state\x18\x01 \x01(\x0e\x32\x17.workflows.v1.TaskStateR\x05state\"\x87\x01\n\x10TaskLeaseRequest\x12/\n\x07task_id\x18\x01 \x01(\x0b\x32\x0e.tilebox.v1.IDB\x06\xbaH\x03\xc8\x01\x01R\x06taskId\x12\x42\n\x0frequested_lease\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationR\x0erequestedLease2\xf4\x01\n\x0bTaskService\x12I\n\x08NextTask\x12\x1d.workflows.v1.NextTaskRequest\x1a\x1e.workflows.v1.NextTaskResponse\x12N\n\nTaskFailed\x12\x1f.workflows.v1.TaskFailedRequest\x1a\x1f.workflows.v1.TaskStateResponse\x12J\n\x0f\x45xtendTaskLease\x12\x1e.workflows.v1.TaskLeaseRequest\x1a\x17.workflows.v1.TaskLeaseBs\n\x10\x63om.workflows.v1B\tTaskProtoP\x01\xa2\x02\x03WXX\xaa\x02\x0cWorkflows.V1\xca\x02\x0cWorkflows\\V1\xe2\x02\x18Workflows\\V1\\GPBMetadata\xea\x02\rWorkflows::V1\x92\x03\x02\x08\x02\x62\x08\x65\x64itionsp\xe8\x07')
31
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17workflows/v1/task.proto\x12\x0cworkflows.v1\x1a\x1b\x62uf/validate/validate.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x13tilebox/v1/id.proto\x1a\x17workflows/v1/core.proto\"\xa6\x01\n\x0fNextTaskRequest\x12\x46\n\rcomputed_task\x18\x01 \x01(\x0b\x32\x1a.workflows.v1.ComputedTaskB\x05\xaa\x01\x02\x08\x01R\x0c\x63omputedTask\x12K\n\x10next_task_to_run\x18\x02 \x01(\x0b\x32\x1b.workflows.v1.NextTaskToRunB\x05\xaa\x01\x02\x08\x01R\rnextTaskToRun\"{\n\rNextTaskToRun\x12*\n\x0c\x63luster_slug\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0b\x63lusterSlug\x12>\n\x0bidentifiers\x18\x02 \x03(\x0b\x32\x1c.workflows.v1.TaskIdentifierR\x0bidentifiers\"\xa9\x02\n\x0c\x43omputedTask\x12&\n\x02id\x18\x01 \x01(\x0b\x32\x0e.tilebox.v1.IDB\x06\xbaH\x03\xc8\x01\x01R\x02id\x12\x18\n\x07\x64isplay\x18\x02 \x01(\tR\x07\x64isplay\x12X\n\x10legacy_sub_tasks\x18\x03 \x03(\x0b\x32\".workflows.v1.SingleTaskSubmissionB\n\x18\x01\xbaH\x05\x92\x01\x02\x10@R\x0elegacySubTasks\x12:\n\tsub_tasks\x18\x05 \x01(\x0b\x32\x1d.workflows.v1.TaskSubmissionsR\x08subTasks\x12\x41\n\x10progress_updates\x18\x04 \x03(\x0b\x32\x16.workflows.v1.ProgressR\x0fprogressUpdates\"g\n\x0eIdlingResponse\x12U\n\x19suggested_idling_duration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.DurationR\x17suggestedIdlingDuration\"\x93\x01\n\x10NextTaskResponse\x12/\n\tnext_task\x18\x01 \x01(\x0b\x32\x12.workflows.v1.TaskR\x08nextTask\x12\x34\n\x06idling\x18\x02 \x01(\x0b\x32\x1c.workflows.v1.IdlingResponseR\x06idling:\x18\xbaH\x15\"\x13\n\tnext_task\n\x06idling\"\xc0\x01\n\x11TaskFailedRequest\x12/\n\x07task_id\x18\x01 \x01(\x0b\x32\x0e.tilebox.v1.IDB\x06\xbaH\x03\xc8\x01\x01R\x06taskId\x12\x18\n\x07\x64isplay\x18\x02 \x01(\tR\x07\x64isplay\x12\x1d\n\ncancel_job\x18\x03 \x01(\x08R\tcancelJob\x12\x41\n\x10progress_updates\x18\x04 \x03(\x0b\x32\x16.workflows.v1.ProgressR\x0fprogressUpdates\"B\n\x11TaskStateResponse\x12-\n\x05state\x18\x01 \x01(\x0e\x32\x17.workflows.v1.TaskStateR\x05state\"\x87\x01\n\x10TaskLeaseRequest\x12/\n\x07task_id\x18\x01 \x01(\x0b\x32\x0e.tilebox.v1.IDB\x06\xbaH\x03\xc8\x01\x01R\x06taskId\x12\x42\n\x0frequested_lease\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationR\x0erequestedLease2\xf4\x01\n\x0bTaskService\x12I\n\x08NextTask\x12\x1d.workflows.v1.NextTaskRequest\x1a\x1e.workflows.v1.NextTaskResponse\x12N\n\nTaskFailed\x12\x1f.workflows.v1.TaskFailedRequest\x1a\x1f.workflows.v1.TaskStateResponse\x12J\n\x0f\x45xtendTaskLease\x12\x1e.workflows.v1.TaskLeaseRequest\x1a\x17.workflows.v1.TaskLeaseBs\n\x10\x63om.workflows.v1B\tTaskProtoP\x01\xa2\x02\x03WXX\xaa\x02\x0cWorkflows.V1\xca\x02\x0cWorkflows\\V1\xe2\x02\x18Workflows\\V1\\GPBMetadata\xea\x02\rWorkflows::V1\x92\x03\x02\x08\x02\x62\x08\x65\x64itionsp\xe8\x07')
32
32
 
33
33
  _globals = globals()
34
34
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -44,8 +44,8 @@ if not _descriptor._USE_C_DESCRIPTORS:
44
44
  _globals['_NEXTTASKTORUN'].fields_by_name['cluster_slug']._serialized_options = b'\272H\004r\002\020\001'
45
45
  _globals['_COMPUTEDTASK'].fields_by_name['id']._loaded_options = None
46
46
  _globals['_COMPUTEDTASK'].fields_by_name['id']._serialized_options = b'\272H\003\310\001\001'
47
- _globals['_COMPUTEDTASK'].fields_by_name['sub_tasks']._loaded_options = None
48
- _globals['_COMPUTEDTASK'].fields_by_name['sub_tasks']._serialized_options = b'\272H\005\222\001\002\020@'
47
+ _globals['_COMPUTEDTASK'].fields_by_name['legacy_sub_tasks']._loaded_options = None
48
+ _globals['_COMPUTEDTASK'].fields_by_name['legacy_sub_tasks']._serialized_options = b'\030\001\272H\005\222\001\002\020@'
49
49
  _globals['_NEXTTASKRESPONSE']._loaded_options = None
50
50
  _globals['_NEXTTASKRESPONSE']._serialized_options = b'\272H\025\"\023\n\tnext_task\n\006idling'
51
51
  _globals['_TASKFAILEDREQUEST'].fields_by_name['task_id']._loaded_options = None
@@ -57,17 +57,17 @@ if not _descriptor._USE_C_DESCRIPTORS:
57
57
  _globals['_NEXTTASKTORUN']._serialized_start=317
58
58
  _globals['_NEXTTASKTORUN']._serialized_end=440
59
59
  _globals['_COMPUTEDTASK']._serialized_start=443
60
- _globals['_COMPUTEDTASK']._serialized_end=662
61
- _globals['_IDLINGRESPONSE']._serialized_start=664
62
- _globals['_IDLINGRESPONSE']._serialized_end=767
63
- _globals['_NEXTTASKRESPONSE']._serialized_start=770
64
- _globals['_NEXTTASKRESPONSE']._serialized_end=917
65
- _globals['_TASKFAILEDREQUEST']._serialized_start=920
66
- _globals['_TASKFAILEDREQUEST']._serialized_end=1115
67
- _globals['_TASKSTATERESPONSE']._serialized_start=1117
68
- _globals['_TASKSTATERESPONSE']._serialized_end=1183
69
- _globals['_TASKLEASEREQUEST']._serialized_start=1186
70
- _globals['_TASKLEASEREQUEST']._serialized_end=1321
71
- _globals['_TASKSERVICE']._serialized_start=1324
72
- _globals['_TASKSERVICE']._serialized_end=1568
60
+ _globals['_COMPUTEDTASK']._serialized_end=740
61
+ _globals['_IDLINGRESPONSE']._serialized_start=742
62
+ _globals['_IDLINGRESPONSE']._serialized_end=845
63
+ _globals['_NEXTTASKRESPONSE']._serialized_start=848
64
+ _globals['_NEXTTASKRESPONSE']._serialized_end=995
65
+ _globals['_TASKFAILEDREQUEST']._serialized_start=998
66
+ _globals['_TASKFAILEDREQUEST']._serialized_end=1190
67
+ _globals['_TASKSTATERESPONSE']._serialized_start=1192
68
+ _globals['_TASKSTATERESPONSE']._serialized_end=1258
69
+ _globals['_TASKLEASEREQUEST']._serialized_start=1261
70
+ _globals['_TASKLEASEREQUEST']._serialized_end=1396
71
+ _globals['_TASKSERVICE']._serialized_start=1399
72
+ _globals['_TASKSERVICE']._serialized_end=1643
73
73
  # @@protoc_insertion_point(module_scope)
@@ -27,16 +27,18 @@ class NextTaskToRun(_message.Message):
27
27
  def __init__(self, cluster_slug: _Optional[str] = ..., identifiers: _Optional[_Iterable[_Union[_core_pb2.TaskIdentifier, _Mapping]]] = ...) -> None: ...
28
28
 
29
29
  class ComputedTask(_message.Message):
30
- __slots__ = ("id", "display", "sub_tasks", "progress_updates")
30
+ __slots__ = ("id", "display", "legacy_sub_tasks", "sub_tasks", "progress_updates")
31
31
  ID_FIELD_NUMBER: _ClassVar[int]
32
32
  DISPLAY_FIELD_NUMBER: _ClassVar[int]
33
+ LEGACY_SUB_TASKS_FIELD_NUMBER: _ClassVar[int]
33
34
  SUB_TASKS_FIELD_NUMBER: _ClassVar[int]
34
35
  PROGRESS_UPDATES_FIELD_NUMBER: _ClassVar[int]
35
36
  id: _id_pb2.ID
36
37
  display: str
37
- sub_tasks: _containers.RepeatedCompositeFieldContainer[_core_pb2.TaskSubmission]
38
- progress_updates: _containers.RepeatedCompositeFieldContainer[_core_pb2.ProgressBar]
39
- def __init__(self, id: _Optional[_Union[_id_pb2.ID, _Mapping]] = ..., display: _Optional[str] = ..., sub_tasks: _Optional[_Iterable[_Union[_core_pb2.TaskSubmission, _Mapping]]] = ..., progress_updates: _Optional[_Iterable[_Union[_core_pb2.ProgressBar, _Mapping]]] = ...) -> None: ...
38
+ legacy_sub_tasks: _containers.RepeatedCompositeFieldContainer[_core_pb2.SingleTaskSubmission]
39
+ sub_tasks: _core_pb2.TaskSubmissions
40
+ progress_updates: _containers.RepeatedCompositeFieldContainer[_core_pb2.Progress]
41
+ def __init__(self, id: _Optional[_Union[_id_pb2.ID, _Mapping]] = ..., display: _Optional[str] = ..., legacy_sub_tasks: _Optional[_Iterable[_Union[_core_pb2.SingleTaskSubmission, _Mapping]]] = ..., sub_tasks: _Optional[_Union[_core_pb2.TaskSubmissions, _Mapping]] = ..., progress_updates: _Optional[_Iterable[_Union[_core_pb2.Progress, _Mapping]]] = ...) -> None: ...
40
42
 
41
43
  class IdlingResponse(_message.Message):
42
44
  __slots__ = ("suggested_idling_duration",)
@@ -61,8 +63,8 @@ class TaskFailedRequest(_message.Message):
61
63
  task_id: _id_pb2.ID
62
64
  display: str
63
65
  cancel_job: bool
64
- progress_updates: _containers.RepeatedCompositeFieldContainer[_core_pb2.ProgressBar]
65
- def __init__(self, task_id: _Optional[_Union[_id_pb2.ID, _Mapping]] = ..., display: _Optional[str] = ..., cancel_job: bool = ..., progress_updates: _Optional[_Iterable[_Union[_core_pb2.ProgressBar, _Mapping]]] = ...) -> None: ...
66
+ progress_updates: _containers.RepeatedCompositeFieldContainer[_core_pb2.Progress]
67
+ def __init__(self, task_id: _Optional[_Union[_id_pb2.ID, _Mapping]] = ..., display: _Optional[str] = ..., cancel_job: bool = ..., progress_updates: _Optional[_Iterable[_Union[_core_pb2.Progress, _Mapping]]] = ...) -> None: ...
66
68
 
67
69
  class TaskStateResponse(_message.Message):
68
70
  __slots__ = ("state",)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tilebox-workflows
3
- Version: 0.43.0
3
+ Version: 0.45.0
4
4
  Summary: Workflow client and task runner for Tilebox
5
5
  Project-URL: Homepage, https://tilebox.com
6
6
  Project-URL: Documentation, https://docs.tilebox.com/workflows/introduction
@@ -22,9 +22,11 @@ Requires-Python: >=3.10
22
22
  Requires-Dist: boto3-stubs[essential]>=1.33
23
23
  Requires-Dist: boto3>=1.33
24
24
  Requires-Dist: google-cloud-storage>=2.10
25
+ Requires-Dist: ipywidgets>=8.1.7
25
26
  Requires-Dist: opentelemetry-api>=1.28
26
27
  Requires-Dist: opentelemetry-exporter-otlp-proto-http>=1.28
27
28
  Requires-Dist: opentelemetry-sdk>=1.28
29
+ Requires-Dist: python-dateutil>=2.9.0.post0
28
30
  Requires-Dist: tenacity>=8
29
31
  Requires-Dist: tilebox-datasets
30
32
  Requires-Dist: tilebox-grpc>=0.28.0