luminarycloud 0.22.2__py3-none-any.whl → 0.22.3__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.
Files changed (26) hide show
  1. luminarycloud/_client/retry_interceptor.py +13 -2
  2. luminarycloud/_proto/api/v0/luminarycloud/named_variable_set/named_variable_set_pb2.py +25 -3
  3. luminarycloud/_proto/api/v0/luminarycloud/named_variable_set/named_variable_set_pb2.pyi +30 -0
  4. luminarycloud/_proto/api/v0/luminarycloud/named_variable_set/named_variable_set_pb2_grpc.py +34 -0
  5. luminarycloud/_proto/api/v0/luminarycloud/named_variable_set/named_variable_set_pb2_grpc.pyi +12 -0
  6. luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2.py +62 -40
  7. luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2.pyi +86 -16
  8. luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2_grpc.py +34 -0
  9. luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2_grpc.pyi +12 -0
  10. luminarycloud/_proto/lcstatus/details/geometry/geometry_pb2.py +256 -0
  11. luminarycloud/_proto/lcstatus/details/geometry/geometry_pb2.pyi +472 -0
  12. luminarycloud/_proto/physicsaitrainingservice/physicsaitrainingservice_pb2.py +2 -2
  13. luminarycloud/_proto/physicsaitrainingservice/physicsaitrainingservice_pb2_grpc.py +34 -0
  14. luminarycloud/_proto/physicsaitrainingservice/physicsaitrainingservice_pb2_grpc.pyi +12 -0
  15. luminarycloud/_proto/quantity/quantity_pb2.pyi +1 -1
  16. luminarycloud/physics_ai/__init__.py +8 -0
  17. luminarycloud/physics_ai/architectures.py +1 -1
  18. luminarycloud/physics_ai/datasets.py +246 -0
  19. luminarycloud/pipelines/__init__.py +11 -0
  20. luminarycloud/pipelines/api.py +61 -0
  21. luminarycloud/pipelines/core.py +358 -45
  22. luminarycloud/pipelines/flowables.py +138 -0
  23. luminarycloud/pipelines/stages.py +7 -31
  24. {luminarycloud-0.22.2.dist-info → luminarycloud-0.22.3.dist-info}/METADATA +1 -1
  25. {luminarycloud-0.22.2.dist-info → luminarycloud-0.22.3.dist-info}/RECORD +26 -22
  26. {luminarycloud-0.22.2.dist-info → luminarycloud-0.22.3.dist-info}/WHEEL +0 -0
@@ -0,0 +1,472 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
5
+ import builtins
6
+ import collections.abc
7
+ import google.protobuf.descriptor
8
+ import google.protobuf.internal.containers
9
+ import google.protobuf.message
10
+ import luminarycloud._proto.base.base_pb2
11
+ import sys
12
+
13
+ if sys.version_info >= (3, 8):
14
+ import typing as typing_extensions
15
+ else:
16
+ import typing_extensions
17
+
18
+ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
19
+
20
+ class Vertex(google.protobuf.message.Message):
21
+ """Geometric information about a vertex."""
22
+
23
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
24
+
25
+ ADJACENT_SURFACES_FIELD_NUMBER: builtins.int
26
+ COORDS_FIELD_NUMBER: builtins.int
27
+ ID_FIELD_NUMBER: builtins.int
28
+ @property
29
+ def adjacent_surfaces(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
30
+ """A list of surfaces next to the vertex."""
31
+ @property
32
+ def coords(self) -> luminarycloud._proto.base.base_pb2.Vector3:
33
+ """The location of the vertex."""
34
+ id: builtins.str
35
+ """The actual vertex ID."""
36
+ def __init__(
37
+ self,
38
+ *,
39
+ adjacent_surfaces: collections.abc.Iterable[builtins.str] | None = ...,
40
+ coords: luminarycloud._proto.base.base_pb2.Vector3 | None = ...,
41
+ id: builtins.str = ...,
42
+ ) -> None: ...
43
+ def HasField(self, field_name: typing_extensions.Literal["coords", b"coords"]) -> builtins.bool: ...
44
+ def ClearField(self, field_name: typing_extensions.Literal["adjacent_surfaces", b"adjacent_surfaces", "coords", b"coords", "id", b"id"]) -> None: ...
45
+
46
+ global___Vertex = Vertex
47
+
48
+ class Edge(google.protobuf.message.Message):
49
+ """Geometric information about an edge."""
50
+
51
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
52
+
53
+ ADJACENT_SURFACES_FIELD_NUMBER: builtins.int
54
+ ID_FIELD_NUMBER: builtins.int
55
+ @property
56
+ def adjacent_surfaces(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
57
+ """A list of surfaces next to the edge."""
58
+ id: builtins.str
59
+ """The actual edge ID."""
60
+ def __init__(
61
+ self,
62
+ *,
63
+ adjacent_surfaces: collections.abc.Iterable[builtins.str] | None = ...,
64
+ id: builtins.str = ...,
65
+ ) -> None: ...
66
+ def ClearField(self, field_name: typing_extensions.Literal["adjacent_surfaces", b"adjacent_surfaces", "id", b"id"]) -> None: ...
67
+
68
+ global___Edge = Edge
69
+
70
+ class GeoVertexDuplicateDetails(google.protobuf.message.Message):
71
+ """Details for code GEO_VERTEX_DUPLICATE"""
72
+
73
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
74
+
75
+ VERTEX_1_FIELD_NUMBER: builtins.int
76
+ VERTEX_2_FIELD_NUMBER: builtins.int
77
+ @property
78
+ def vertex_1(self) -> global___Vertex:
79
+ """First vertex."""
80
+ @property
81
+ def vertex_2(self) -> global___Vertex:
82
+ """Second vertex."""
83
+ def __init__(
84
+ self,
85
+ *,
86
+ vertex_1: global___Vertex | None = ...,
87
+ vertex_2: global___Vertex | None = ...,
88
+ ) -> None: ...
89
+ def HasField(self, field_name: typing_extensions.Literal["vertex_1", b"vertex_1", "vertex_2", b"vertex_2"]) -> builtins.bool: ...
90
+ def ClearField(self, field_name: typing_extensions.Literal["vertex_1", b"vertex_1", "vertex_2", b"vertex_2"]) -> None: ...
91
+
92
+ global___GeoVertexDuplicateDetails = GeoVertexDuplicateDetails
93
+
94
+ class GeoEdgeUnmeshableDetails(google.protobuf.message.Message):
95
+ """Details for code GEO_EDGE_UNMESHABLE"""
96
+
97
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
98
+
99
+ EDGE_FIELD_NUMBER: builtins.int
100
+ @property
101
+ def edge(self) -> global___Edge:
102
+ """The edge."""
103
+ def __init__(
104
+ self,
105
+ *,
106
+ edge: global___Edge | None = ...,
107
+ ) -> None: ...
108
+ def HasField(self, field_name: typing_extensions.Literal["edge", b"edge"]) -> builtins.bool: ...
109
+ def ClearField(self, field_name: typing_extensions.Literal["edge", b"edge"]) -> None: ...
110
+
111
+ global___GeoEdgeUnmeshableDetails = GeoEdgeUnmeshableDetails
112
+
113
+ class GeoEdgeNotSmoothDetails(google.protobuf.message.Message):
114
+ """Details for code GEO_EDGE_NOT_SMOOTH"""
115
+
116
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
117
+
118
+ EDGE_FIELD_NUMBER: builtins.int
119
+ @property
120
+ def edge(self) -> global___Edge:
121
+ """The edge."""
122
+ def __init__(
123
+ self,
124
+ *,
125
+ edge: global___Edge | None = ...,
126
+ ) -> None: ...
127
+ def HasField(self, field_name: typing_extensions.Literal["edge", b"edge"]) -> builtins.bool: ...
128
+ def ClearField(self, field_name: typing_extensions.Literal["edge", b"edge"]) -> None: ...
129
+
130
+ global___GeoEdgeNotSmoothDetails = GeoEdgeNotSmoothDetails
131
+
132
+ class GeoEdgeLargeToleranceDetails(google.protobuf.message.Message):
133
+ """Details for code GEO_EDGE_LARGE_TOLERANCE"""
134
+
135
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
136
+
137
+ EDGE_FIELD_NUMBER: builtins.int
138
+ TOLERANCE_FIELD_NUMBER: builtins.int
139
+ @property
140
+ def edge(self) -> global___Edge:
141
+ """The edge."""
142
+ tolerance: builtins.float
143
+ """Tolerance."""
144
+ def __init__(
145
+ self,
146
+ *,
147
+ edge: global___Edge | None = ...,
148
+ tolerance: builtins.float = ...,
149
+ ) -> None: ...
150
+ def HasField(self, field_name: typing_extensions.Literal["edge", b"edge"]) -> builtins.bool: ...
151
+ def ClearField(self, field_name: typing_extensions.Literal["edge", b"edge", "tolerance", b"tolerance"]) -> None: ...
152
+
153
+ global___GeoEdgeLargeToleranceDetails = GeoEdgeLargeToleranceDetails
154
+
155
+ class GeoFaceUnmeshableDetails(google.protobuf.message.Message):
156
+ """Details for code GEO_FACE_UNMESHABLE"""
157
+
158
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
159
+
160
+ SURFACE_ID_FIELD_NUMBER: builtins.int
161
+ surface_id: builtins.str
162
+ """Surface string ID."""
163
+ def __init__(
164
+ self,
165
+ *,
166
+ surface_id: builtins.str = ...,
167
+ ) -> None: ...
168
+ def ClearField(self, field_name: typing_extensions.Literal["surface_id", b"surface_id"]) -> None: ...
169
+
170
+ global___GeoFaceUnmeshableDetails = GeoFaceUnmeshableDetails
171
+
172
+ class GeoFaceEdgesTooCloseDetails(google.protobuf.message.Message):
173
+ """Details for code GEO_FACE_EDGES_TOO_CLOSE"""
174
+
175
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
176
+
177
+ SURFACE_ID_FIELD_NUMBER: builtins.int
178
+ ASPECT_RATIO_FIELD_NUMBER: builtins.int
179
+ surface_id: builtins.str
180
+ """Surface string ID."""
181
+ aspect_ratio: builtins.float
182
+ """Approximate aspect ratio: should be > 0.
183
+ Backward compatibility: values of 0 should be ignored.
184
+ """
185
+ def __init__(
186
+ self,
187
+ *,
188
+ surface_id: builtins.str = ...,
189
+ aspect_ratio: builtins.float = ...,
190
+ ) -> None: ...
191
+ def ClearField(self, field_name: typing_extensions.Literal["aspect_ratio", b"aspect_ratio", "surface_id", b"surface_id"]) -> None: ...
192
+
193
+ global___GeoFaceEdgesTooCloseDetails = GeoFaceEdgesTooCloseDetails
194
+
195
+ class GeoFaceEdgeTooSmallDetails(google.protobuf.message.Message):
196
+ """Details for code GEO_FACE_EDGE_TOO_SMALL"""
197
+
198
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
199
+
200
+ SURFACE_ID_FIELD_NUMBER: builtins.int
201
+ surface_id: builtins.str
202
+ """Surface string ID."""
203
+ def __init__(
204
+ self,
205
+ *,
206
+ surface_id: builtins.str = ...,
207
+ ) -> None: ...
208
+ def ClearField(self, field_name: typing_extensions.Literal["surface_id", b"surface_id"]) -> None: ...
209
+
210
+ global___GeoFaceEdgeTooSmallDetails = GeoFaceEdgeTooSmallDetails
211
+
212
+ class GeoFaceFaceIntersectionDetails(google.protobuf.message.Message):
213
+ """Details for code GEO_FACE_FACE_INTERSECTION"""
214
+
215
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
216
+
217
+ SURFACE_1_ID_FIELD_NUMBER: builtins.int
218
+ SURFACE_2_ID_FIELD_NUMBER: builtins.int
219
+ surface_1_id: builtins.str
220
+ """First surface string ID."""
221
+ surface_2_id: builtins.str
222
+ """Second surface string ID."""
223
+ def __init__(
224
+ self,
225
+ *,
226
+ surface_1_id: builtins.str = ...,
227
+ surface_2_id: builtins.str = ...,
228
+ ) -> None: ...
229
+ def ClearField(self, field_name: typing_extensions.Literal["surface_1_id", b"surface_1_id", "surface_2_id", b"surface_2_id"]) -> None: ...
230
+
231
+ global___GeoFaceFaceIntersectionDetails = GeoFaceFaceIntersectionDetails
232
+
233
+ class GeoFaceSelfIntersectionDetails(google.protobuf.message.Message):
234
+ """Details for code GEO_FACE_SELF_INTERSECTION"""
235
+
236
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
237
+
238
+ SURFACE_ID_FIELD_NUMBER: builtins.int
239
+ surface_id: builtins.str
240
+ """Surface string ID."""
241
+ def __init__(
242
+ self,
243
+ *,
244
+ surface_id: builtins.str = ...,
245
+ ) -> None: ...
246
+ def ClearField(self, field_name: typing_extensions.Literal["surface_id", b"surface_id"]) -> None: ...
247
+
248
+ global___GeoFaceSelfIntersectionDetails = GeoFaceSelfIntersectionDetails
249
+
250
+ class GeoFaceNotSmoothDetails(google.protobuf.message.Message):
251
+ """Details for code GEO_FACE_NOT_SMOOTH"""
252
+
253
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
254
+
255
+ SURFACE_ID_FIELD_NUMBER: builtins.int
256
+ surface_id: builtins.str
257
+ """Surface string ID."""
258
+ def __init__(
259
+ self,
260
+ *,
261
+ surface_id: builtins.str = ...,
262
+ ) -> None: ...
263
+ def ClearField(self, field_name: typing_extensions.Literal["surface_id", b"surface_id"]) -> None: ...
264
+
265
+ global___GeoFaceNotSmoothDetails = GeoFaceNotSmoothDetails
266
+
267
+ class GeoFaceLargeToleranceDetails(google.protobuf.message.Message):
268
+ """Details for code GEO_FACE_LARGE_TOLERANCE"""
269
+
270
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
271
+
272
+ SURFACE_ID_FIELD_NUMBER: builtins.int
273
+ TOLERANCE_FIELD_NUMBER: builtins.int
274
+ surface_id: builtins.str
275
+ """Surface string ID."""
276
+ tolerance: builtins.float
277
+ """Tolerance."""
278
+ def __init__(
279
+ self,
280
+ *,
281
+ surface_id: builtins.str = ...,
282
+ tolerance: builtins.float = ...,
283
+ ) -> None: ...
284
+ def ClearField(self, field_name: typing_extensions.Literal["surface_id", b"surface_id", "tolerance", b"tolerance"]) -> None: ...
285
+
286
+ global___GeoFaceLargeToleranceDetails = GeoFaceLargeToleranceDetails
287
+
288
+ class GeoFaceEdgeCrossDetails(google.protobuf.message.Message):
289
+ """Details for code GEO_FACE_EDGE_CROSS"""
290
+
291
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
292
+
293
+ SURFACE_ID_FIELD_NUMBER: builtins.int
294
+ EDGE_1_FIELD_NUMBER: builtins.int
295
+ EDGE_2_FIELD_NUMBER: builtins.int
296
+ surface_id: builtins.str
297
+ """Surface string ID."""
298
+ @property
299
+ def edge_1(self) -> global___Edge:
300
+ """First crossing edge."""
301
+ @property
302
+ def edge_2(self) -> global___Edge:
303
+ """Second crossing edge."""
304
+ def __init__(
305
+ self,
306
+ *,
307
+ surface_id: builtins.str = ...,
308
+ edge_1: global___Edge | None = ...,
309
+ edge_2: global___Edge | None = ...,
310
+ ) -> None: ...
311
+ def HasField(self, field_name: typing_extensions.Literal["edge_1", b"edge_1", "edge_2", b"edge_2"]) -> builtins.bool: ...
312
+ def ClearField(self, field_name: typing_extensions.Literal["edge_1", b"edge_1", "edge_2", b"edge_2", "surface_id", b"surface_id"]) -> None: ...
313
+
314
+ global___GeoFaceEdgeCrossDetails = GeoFaceEdgeCrossDetails
315
+
316
+ class GeoFaceNeedsImprintDetails(google.protobuf.message.Message):
317
+ """Details for code GEO_FACE_NEEDS_IMPRINT"""
318
+
319
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
320
+
321
+ SURFACE_ID_FIELD_NUMBER: builtins.int
322
+ surface_id: builtins.str
323
+ """Surface string ID."""
324
+ def __init__(
325
+ self,
326
+ *,
327
+ surface_id: builtins.str = ...,
328
+ ) -> None: ...
329
+ def ClearField(self, field_name: typing_extensions.Literal["surface_id", b"surface_id"]) -> None: ...
330
+
331
+ global___GeoFaceNeedsImprintDetails = GeoFaceNeedsImprintDetails
332
+
333
+ class GeoContactNeedsImprintDetails(google.protobuf.message.Message):
334
+ """Details for code GEO_CONTACT_NEEDS_IMPRINT"""
335
+
336
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
337
+
338
+ GEOMETRY_CONTACT_ID_FIELD_NUMBER: builtins.int
339
+ geometry_contact_id: builtins.str
340
+ """Geometry contact ID provided by the operator."""
341
+ def __init__(
342
+ self,
343
+ *,
344
+ geometry_contact_id: builtins.str = ...,
345
+ ) -> None: ...
346
+ def ClearField(self, field_name: typing_extensions.Literal["geometry_contact_id", b"geometry_contact_id"]) -> None: ...
347
+
348
+ global___GeoContactNeedsImprintDetails = GeoContactNeedsImprintDetails
349
+
350
+ class GeoFacePoorApproxDetails(google.protobuf.message.Message):
351
+ """Details for code GEO_FACE_POOR_APPROX"""
352
+
353
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
354
+
355
+ SURFACE_ID_FIELD_NUMBER: builtins.int
356
+ APPROX_FIELD_NUMBER: builtins.int
357
+ surface_id: builtins.str
358
+ """Surface string ID."""
359
+ approx: builtins.float
360
+ """Approximation: from -1 (bad) to 1 (good), with 2 (unknown)."""
361
+ def __init__(
362
+ self,
363
+ *,
364
+ surface_id: builtins.str = ...,
365
+ approx: builtins.float = ...,
366
+ ) -> None: ...
367
+ def ClearField(self, field_name: typing_extensions.Literal["approx", b"approx", "surface_id", b"surface_id"]) -> None: ...
368
+
369
+ global___GeoFacePoorApproxDetails = GeoFacePoorApproxDetails
370
+
371
+ class GeoVolumeOpenDetails(google.protobuf.message.Message):
372
+ """Details for code GEO_VOLUME_OPEN"""
373
+
374
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
375
+
376
+ VOLUMES_ID_FIELD_NUMBER: builtins.int
377
+ OPEN_EDGES_FIELD_NUMBER: builtins.int
378
+ volumes_id: builtins.int
379
+ """Volume integer ID."""
380
+ @property
381
+ def open_edges(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Edge]:
382
+ """The list of open edges, i.e., they only have one adjacent face."""
383
+ def __init__(
384
+ self,
385
+ *,
386
+ volumes_id: builtins.int = ...,
387
+ open_edges: collections.abc.Iterable[global___Edge] | None = ...,
388
+ ) -> None: ...
389
+ def ClearField(self, field_name: typing_extensions.Literal["open_edges", b"open_edges", "volumes_id", b"volumes_id"]) -> None: ...
390
+
391
+ global___GeoVolumeOpenDetails = GeoVolumeOpenDetails
392
+
393
+ class GeoVolumeNonManifoldDetails(google.protobuf.message.Message):
394
+ """Details for code GEO_VOLUME_NON_MANIFOLD"""
395
+
396
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
397
+
398
+ VOLUME_ID_FIELD_NUMBER: builtins.int
399
+ NON_MANIFOLD_EDGES_FIELD_NUMBER: builtins.int
400
+ volume_id: builtins.int
401
+ """Volume integer ID."""
402
+ @property
403
+ def non_manifold_edges(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Edge]:
404
+ """The list of non-manifold edges, i.e., they have more than two adjacent faces."""
405
+ def __init__(
406
+ self,
407
+ *,
408
+ volume_id: builtins.int = ...,
409
+ non_manifold_edges: collections.abc.Iterable[global___Edge] | None = ...,
410
+ ) -> None: ...
411
+ def ClearField(self, field_name: typing_extensions.Literal["non_manifold_edges", b"non_manifold_edges", "volume_id", b"volume_id"]) -> None: ...
412
+
413
+ global___GeoVolumeNonManifoldDetails = GeoVolumeNonManifoldDetails
414
+
415
+ class GeoVolumeUnmeshableDetails(google.protobuf.message.Message):
416
+ """Details for code GEO_VOLUME_UNMESHABLE"""
417
+
418
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
419
+
420
+ VOLUME_ID_FIELD_NUMBER: builtins.int
421
+ volume_id: builtins.int
422
+ """Volume integer ID."""
423
+ def __init__(
424
+ self,
425
+ *,
426
+ volume_id: builtins.int = ...,
427
+ ) -> None: ...
428
+ def ClearField(self, field_name: typing_extensions.Literal["volume_id", b"volume_id"]) -> None: ...
429
+
430
+ global___GeoVolumeUnmeshableDetails = GeoVolumeUnmeshableDetails
431
+
432
+ class GeoFeatureUnknownErrorDetails(google.protobuf.message.Message):
433
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
434
+
435
+ MESSAGE_FIELD_NUMBER: builtins.int
436
+ message: builtins.str
437
+ def __init__(
438
+ self,
439
+ *,
440
+ message: builtins.str = ...,
441
+ ) -> None: ...
442
+ def ClearField(self, field_name: typing_extensions.Literal["message", b"message"]) -> None: ...
443
+
444
+ global___GeoFeatureUnknownErrorDetails = GeoFeatureUnknownErrorDetails
445
+
446
+ class GeoFeatureOnshapeWarningDetails(google.protobuf.message.Message):
447
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
448
+
449
+ MESSAGE_FIELD_NUMBER: builtins.int
450
+ message: builtins.str
451
+ def __init__(
452
+ self,
453
+ *,
454
+ message: builtins.str = ...,
455
+ ) -> None: ...
456
+ def ClearField(self, field_name: typing_extensions.Literal["message", b"message"]) -> None: ...
457
+
458
+ global___GeoFeatureOnshapeWarningDetails = GeoFeatureOnshapeWarningDetails
459
+
460
+ class GeoWorkerInvalidRequestDetails(google.protobuf.message.Message):
461
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
462
+
463
+ MESSAGE_FIELD_NUMBER: builtins.int
464
+ message: builtins.str
465
+ def __init__(
466
+ self,
467
+ *,
468
+ message: builtins.str = ...,
469
+ ) -> None: ...
470
+ def ClearField(self, field_name: typing_extensions.Literal["message", b"message"]) -> None: ...
471
+
472
+ global___GeoWorkerInvalidRequestDetails = GeoWorkerInvalidRequestDetails
@@ -16,7 +16,7 @@ from luminarycloud._proto.api.v0.luminarycloud.physics_ai import physics_ai_pb2
16
16
  from luminarycloud._proto.ratelimit import ratelimit_pb2 as proto_dot_ratelimit_dot_ratelimit__pb2
17
17
 
18
18
 
19
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n=proto/physicsaitrainingservice/physicsaitrainingservice.proto\x12\'luminary.proto.physicsaitrainingservice\x1a\x36proto/api/v0/luminarycloud/physics_ai/physics_ai.proto\x1a\x1fproto/ratelimit/ratelimit.proto2\x9f\x04\n\x18PhysicsAiTrainingService\x12\x9e\x01\n\rCreateDataset\x12\x44.luminary.proto.api.v0.luminarycloud.physics_ai.CreateDatasetRequest\x1a\x45.luminary.proto.api.v0.luminarycloud.physics_ai.CreateDatasetResponse\"\x00\x12\xb4\x01\n\x11SubmitTrainingJob\x12H.luminary.proto.api.v0.luminarycloud.physics_ai.SubmitTrainingJobRequest\x1aI.luminary.proto.api.v0.luminarycloud.physics_ai.SubmitTrainingJobResponse\"\n\x8a\xb5\x18\x06\x08\x05\x12\x02\x08\x01\x12\xaa\x01\n\x11\x43\x61ncelTrainingJob\x12H.luminary.proto.api.v0.luminarycloud.physics_ai.CancelTrainingJobRequest\x1aI.luminary.proto.api.v0.luminarycloud.physics_ai.CancelTrainingJobResponse\"\x00\x42\x37Z5luminarycloud.com/core/proto/physicsaitrainingserviceb\x06proto3')
19
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n=proto/physicsaitrainingservice/physicsaitrainingservice.proto\x12\'luminary.proto.physicsaitrainingservice\x1a\x36proto/api/v0/luminarycloud/physics_ai/physics_ai.proto\x1a\x1fproto/ratelimit/ratelimit.proto2\xbd\x05\n\x18PhysicsAiTrainingService\x12\x9e\x01\n\rCreateDataset\x12\x44.luminary.proto.api.v0.luminarycloud.physics_ai.CreateDatasetRequest\x1a\x45.luminary.proto.api.v0.luminarycloud.physics_ai.CreateDatasetResponse\"\x00\x12\x9b\x01\n\x0cListDatasets\x12\x43.luminary.proto.api.v0.luminarycloud.physics_ai.ListDatasetsRequest\x1a\x44.luminary.proto.api.v0.luminarycloud.physics_ai.ListDatasetsResponse\"\x00\x12\xb4\x01\n\x11SubmitTrainingJob\x12H.luminary.proto.api.v0.luminarycloud.physics_ai.SubmitTrainingJobRequest\x1aI.luminary.proto.api.v0.luminarycloud.physics_ai.SubmitTrainingJobResponse\"\n\x8a\xb5\x18\x06\x08\x05\x12\x02\x08\x01\x12\xaa\x01\n\x11\x43\x61ncelTrainingJob\x12H.luminary.proto.api.v0.luminarycloud.physics_ai.CancelTrainingJobRequest\x1aI.luminary.proto.api.v0.luminarycloud.physics_ai.CancelTrainingJobResponse\"\x00\x42\x37Z5luminarycloud.com/core/proto/physicsaitrainingserviceb\x06proto3')
20
20
 
21
21
 
22
22
 
@@ -28,5 +28,5 @@ if _descriptor._USE_C_DESCRIPTORS == False:
28
28
  _PHYSICSAITRAININGSERVICE.methods_by_name['SubmitTrainingJob']._options = None
29
29
  _PHYSICSAITRAININGSERVICE.methods_by_name['SubmitTrainingJob']._serialized_options = b'\212\265\030\006\010\005\022\002\010\001'
30
30
  _PHYSICSAITRAININGSERVICE._serialized_start=196
31
- _PHYSICSAITRAININGSERVICE._serialized_end=739
31
+ _PHYSICSAITRAININGSERVICE._serialized_end=897
32
32
  # @@protoc_insertion_point(module_scope)
@@ -20,6 +20,11 @@ class PhysicsAiTrainingServiceStub(object):
20
20
  request_serializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_physics__ai_dot_physics__ai__pb2.CreateDatasetRequest.SerializeToString,
21
21
  response_deserializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_physics__ai_dot_physics__ai__pb2.CreateDatasetResponse.FromString,
22
22
  )
23
+ self.ListDatasets = channel.unary_unary(
24
+ '/luminary.proto.physicsaitrainingservice.PhysicsAiTrainingService/ListDatasets',
25
+ request_serializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_physics__ai_dot_physics__ai__pb2.ListDatasetsRequest.SerializeToString,
26
+ response_deserializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_physics__ai_dot_physics__ai__pb2.ListDatasetsResponse.FromString,
27
+ )
23
28
  self.SubmitTrainingJob = channel.unary_unary(
24
29
  '/luminary.proto.physicsaitrainingservice.PhysicsAiTrainingService/SubmitTrainingJob',
25
30
  request_serializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_physics__ai_dot_physics__ai__pb2.SubmitTrainingJobRequest.SerializeToString,
@@ -43,6 +48,13 @@ class PhysicsAiTrainingServiceServicer(object):
43
48
  context.set_details('Method not implemented!')
44
49
  raise NotImplementedError('Method not implemented!')
45
50
 
51
+ def ListDatasets(self, request, context):
52
+ """List Physics AI datasets for the current user
53
+ """
54
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
55
+ context.set_details('Method not implemented!')
56
+ raise NotImplementedError('Method not implemented!')
57
+
46
58
  def SubmitTrainingJob(self, request, context):
47
59
  """Submit a physics AI training job
48
60
  """
@@ -65,6 +77,11 @@ def add_PhysicsAiTrainingServiceServicer_to_server(servicer, server):
65
77
  request_deserializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_physics__ai_dot_physics__ai__pb2.CreateDatasetRequest.FromString,
66
78
  response_serializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_physics__ai_dot_physics__ai__pb2.CreateDatasetResponse.SerializeToString,
67
79
  ),
80
+ 'ListDatasets': grpc.unary_unary_rpc_method_handler(
81
+ servicer.ListDatasets,
82
+ request_deserializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_physics__ai_dot_physics__ai__pb2.ListDatasetsRequest.FromString,
83
+ response_serializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_physics__ai_dot_physics__ai__pb2.ListDatasetsResponse.SerializeToString,
84
+ ),
68
85
  'SubmitTrainingJob': grpc.unary_unary_rpc_method_handler(
69
86
  servicer.SubmitTrainingJob,
70
87
  request_deserializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_physics__ai_dot_physics__ai__pb2.SubmitTrainingJobRequest.FromString,
@@ -103,6 +120,23 @@ class PhysicsAiTrainingService(object):
103
120
  options, channel_credentials,
104
121
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
105
122
 
123
+ @staticmethod
124
+ def ListDatasets(request,
125
+ target,
126
+ options=(),
127
+ channel_credentials=None,
128
+ call_credentials=None,
129
+ insecure=False,
130
+ compression=None,
131
+ wait_for_ready=None,
132
+ timeout=None,
133
+ metadata=None):
134
+ return grpc.experimental.unary_unary(request, target, '/luminary.proto.physicsaitrainingservice.PhysicsAiTrainingService/ListDatasets',
135
+ proto_dot_api_dot_v0_dot_luminarycloud_dot_physics__ai_dot_physics__ai__pb2.ListDatasetsRequest.SerializeToString,
136
+ proto_dot_api_dot_v0_dot_luminarycloud_dot_physics__ai_dot_physics__ai__pb2.ListDatasetsResponse.FromString,
137
+ options, channel_credentials,
138
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
139
+
106
140
  @staticmethod
107
141
  def SubmitTrainingJob(request,
108
142
  target,
@@ -15,6 +15,11 @@ class PhysicsAiTrainingServiceStub:
15
15
  luminarycloud._proto.api.v0.luminarycloud.physics_ai.physics_ai_pb2.CreateDatasetResponse,
16
16
  ]
17
17
  """Create a Physics AI dataset"""
18
+ ListDatasets: grpc.UnaryUnaryMultiCallable[
19
+ luminarycloud._proto.api.v0.luminarycloud.physics_ai.physics_ai_pb2.ListDatasetsRequest,
20
+ luminarycloud._proto.api.v0.luminarycloud.physics_ai.physics_ai_pb2.ListDatasetsResponse,
21
+ ]
22
+ """List Physics AI datasets for the current user"""
18
23
  SubmitTrainingJob: grpc.UnaryUnaryMultiCallable[
19
24
  luminarycloud._proto.api.v0.luminarycloud.physics_ai.physics_ai_pb2.SubmitTrainingJobRequest,
20
25
  luminarycloud._proto.api.v0.luminarycloud.physics_ai.physics_ai_pb2.SubmitTrainingJobResponse,
@@ -37,6 +42,13 @@ class PhysicsAiTrainingServiceServicer(metaclass=abc.ABCMeta):
37
42
  ) -> luminarycloud._proto.api.v0.luminarycloud.physics_ai.physics_ai_pb2.CreateDatasetResponse:
38
43
  """Create a Physics AI dataset"""
39
44
  @abc.abstractmethod
45
+ def ListDatasets(
46
+ self,
47
+ request: luminarycloud._proto.api.v0.luminarycloud.physics_ai.physics_ai_pb2.ListDatasetsRequest,
48
+ context: grpc.ServicerContext,
49
+ ) -> luminarycloud._proto.api.v0.luminarycloud.physics_ai.physics_ai_pb2.ListDatasetsResponse:
50
+ """List Physics AI datasets for the current user"""
51
+ @abc.abstractmethod
40
52
  def SubmitTrainingJob(
41
53
  self,
42
54
  request: luminarycloud._proto.api.v0.luminarycloud.physics_ai.physics_ai_pb2.SubmitTrainingJobRequest,
@@ -1,7 +1,7 @@
1
1
  """
2
2
  @generated by mypy-protobuf. Do not edit manually!
3
3
  isort:skip_file
4
- Copyright 2025 Luminary Cloud, Inc. All Rights Reserved.
4
+ Copyright 2025-2026 Luminary Cloud, Inc. All Rights Reserved.
5
5
  Generated by quantities.py. DO NOT EDIT
6
6
  """
7
7
  import builtins
@@ -19,3 +19,11 @@ from .inference import (
19
19
  VisualizationExport as VisualizationExport,
20
20
  NumericResult as NumericResult,
21
21
  )
22
+
23
+ from .datasets import (
24
+ create_dataset as create_dataset,
25
+ list_datasets as list_datasets,
26
+ DatasetCaseInput as DatasetCaseInput,
27
+ ExportConfig as ExportConfig,
28
+ PhysicsAiDataset as PhysicsAiDataset,
29
+ )
@@ -53,7 +53,7 @@ class PhysicsAiArchitectureVersion(ProtoWrapperBase):
53
53
  if "custom_args" not in config:
54
54
  config["custom_args"] = ""
55
55
  if "priority_class" not in config:
56
- config["priority_class"] = "prod-batch-priority"
56
+ config["priority_class"] = "internal-training-job-priority"
57
57
  if "resources" not in config:
58
58
  config["resources"] = {}
59
59
  if "process_cpus" not in config["resources"]: