qwak-core 0.4.273__py3-none-any.whl → 0.4.275__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.
- _qwak_proto/qwak/model_group/model_group_pb2.py +23 -3
- _qwak_proto/qwak/model_group/model_group_pb2.pyi +36 -0
- _qwak_proto/qwak/model_group/model_group_pb2_grpc.py +33 -0
- _qwak_proto/qwak/model_group/model_group_repository_details_pb2.py +23 -14
- _qwak_proto/qwak/model_group/model_group_repository_details_pb2.pyi +27 -0
- frogml_storage/__init__.py +1 -1
- qwak/__init__.py +1 -1
- qwak/clients/batch_job_management/client.py +39 -0
- {qwak_core-0.4.273.dist-info → qwak_core-0.4.275.dist-info}/METADATA +1 -1
- {qwak_core-0.4.273.dist-info → qwak_core-0.4.275.dist-info}/RECORD +12 -12
- qwak_services_mock/mocks/batch_job_manager_service.py +24 -1
- {qwak_core-0.4.273.dist-info → qwak_core-0.4.275.dist-info}/WHEEL +0 -0
@@ -16,12 +16,14 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__
|
|
16
16
|
from _qwak_proto.qwak.model_group import model_group_repository_details_pb2 as qwak_dot_model__group_dot_model__group__repository__details__pb2
|
17
17
|
|
18
18
|
|
19
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"qwak/model_group/model_group.proto\x12\x1cqwak.model_groups.management\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x35qwak/model_group/model_group_repository_details.proto\"Y\n\"CreateIfNotExistsModelGroupRequest\x12\x18\n\x10model_group_name\x18\x01 \x01(\t\x12\x19\n\x11jfrog_project_key\x18\x02 \x01(\t\"\xdf\x01\n\x1bModelGroupBriefInfoResponse\x12\x16\n\x0emodel_group_id\x18\x01 \x01(\t\x12\x1f\n\x17model_group_description\x18\x02 \x01(\t\x12:\n\x16model_group_created_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12K\n\x12repository_details\x18\x04 \x03(\x0b\x32/.qwak.model_groups.management.
|
19
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"qwak/model_group/model_group.proto\x12\x1cqwak.model_groups.management\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x35qwak/model_group/model_group_repository_details.proto\"Y\n\"CreateIfNotExistsModelGroupRequest\x12\x18\n\x10model_group_name\x18\x01 \x01(\t\x12\x19\n\x11jfrog_project_key\x18\x02 \x01(\t\"\xdf\x01\n\x1bModelGroupBriefInfoResponse\x12\x16\n\x0emodel_group_id\x18\x01 \x01(\t\x12\x1f\n\x17model_group_description\x18\x02 \x01(\t\x12:\n\x16model_group_created_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12K\n\x12repository_details\x18\x04 \x03(\x0b\x32/.qwak.model_groups.management.RepositoryDetails\"\x95\x01\n&CreateRepositoriesForModelGroupRequest\x12\x18\n\x10model_group_uuid\x18\x01 \x01(\t\x12Q\n\x12repository_details\x18\x02 \x03(\x0b\x32\x35.qwak.model_groups.management.RemoteRepositoryDetails\"\x82\x01\n\'CreateRepositoriesForModelGroupResponse\x12W\n\x1e\x61rtifactory_repository_details\x18\x01 \x03(\x0b\x32/.qwak.model_groups.management.RepositoryDetails2\xeb\x02\n\x1bModelGroupManagementService\x12\x9a\x01\n\x1b\x43reateIfNotExistsModelGroup\x12@.qwak.model_groups.management.CreateIfNotExistsModelGroupRequest\x1a\x39.qwak.model_groups.management.ModelGroupBriefInfoResponse\x12\xae\x01\n\x1f\x43reateRepositoriesForModelGroup\x12\x44.qwak.model_groups.management.CreateRepositoriesForModelGroupRequest\x1a\x45.qwak.model_groups.management.CreateRepositoriesForModelGroupResponseBL\n&com.qwak.ai.management.model.group.apiB ModelGroupManagementServiceProtoP\x01\x62\x06proto3')
|
20
20
|
|
21
21
|
|
22
22
|
|
23
23
|
_CREATEIFNOTEXISTSMODELGROUPREQUEST = DESCRIPTOR.message_types_by_name['CreateIfNotExistsModelGroupRequest']
|
24
24
|
_MODELGROUPBRIEFINFORESPONSE = DESCRIPTOR.message_types_by_name['ModelGroupBriefInfoResponse']
|
25
|
+
_CREATEREPOSITORIESFORMODELGROUPREQUEST = DESCRIPTOR.message_types_by_name['CreateRepositoriesForModelGroupRequest']
|
26
|
+
_CREATEREPOSITORIESFORMODELGROUPRESPONSE = DESCRIPTOR.message_types_by_name['CreateRepositoriesForModelGroupResponse']
|
25
27
|
CreateIfNotExistsModelGroupRequest = _reflection.GeneratedProtocolMessageType('CreateIfNotExistsModelGroupRequest', (_message.Message,), {
|
26
28
|
'DESCRIPTOR' : _CREATEIFNOTEXISTSMODELGROUPREQUEST,
|
27
29
|
'__module__' : 'qwak.model_group.model_group_pb2'
|
@@ -36,6 +38,20 @@ ModelGroupBriefInfoResponse = _reflection.GeneratedProtocolMessageType('ModelGro
|
|
36
38
|
})
|
37
39
|
_sym_db.RegisterMessage(ModelGroupBriefInfoResponse)
|
38
40
|
|
41
|
+
CreateRepositoriesForModelGroupRequest = _reflection.GeneratedProtocolMessageType('CreateRepositoriesForModelGroupRequest', (_message.Message,), {
|
42
|
+
'DESCRIPTOR' : _CREATEREPOSITORIESFORMODELGROUPREQUEST,
|
43
|
+
'__module__' : 'qwak.model_group.model_group_pb2'
|
44
|
+
# @@protoc_insertion_point(class_scope:qwak.model_groups.management.CreateRepositoriesForModelGroupRequest)
|
45
|
+
})
|
46
|
+
_sym_db.RegisterMessage(CreateRepositoriesForModelGroupRequest)
|
47
|
+
|
48
|
+
CreateRepositoriesForModelGroupResponse = _reflection.GeneratedProtocolMessageType('CreateRepositoriesForModelGroupResponse', (_message.Message,), {
|
49
|
+
'DESCRIPTOR' : _CREATEREPOSITORIESFORMODELGROUPRESPONSE,
|
50
|
+
'__module__' : 'qwak.model_group.model_group_pb2'
|
51
|
+
# @@protoc_insertion_point(class_scope:qwak.model_groups.management.CreateRepositoriesForModelGroupResponse)
|
52
|
+
})
|
53
|
+
_sym_db.RegisterMessage(CreateRepositoriesForModelGroupResponse)
|
54
|
+
|
39
55
|
_MODELGROUPMANAGEMENTSERVICE = DESCRIPTOR.services_by_name['ModelGroupManagementService']
|
40
56
|
if _descriptor._USE_C_DESCRIPTORS == False:
|
41
57
|
|
@@ -45,6 +61,10 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
45
61
|
_CREATEIFNOTEXISTSMODELGROUPREQUEST._serialized_end=245
|
46
62
|
_MODELGROUPBRIEFINFORESPONSE._serialized_start=248
|
47
63
|
_MODELGROUPBRIEFINFORESPONSE._serialized_end=471
|
48
|
-
|
49
|
-
|
64
|
+
_CREATEREPOSITORIESFORMODELGROUPREQUEST._serialized_start=474
|
65
|
+
_CREATEREPOSITORIESFORMODELGROUPREQUEST._serialized_end=623
|
66
|
+
_CREATEREPOSITORIESFORMODELGROUPRESPONSE._serialized_start=626
|
67
|
+
_CREATEREPOSITORIESFORMODELGROUPRESPONSE._serialized_end=756
|
68
|
+
_MODELGROUPMANAGEMENTSERVICE._serialized_start=759
|
69
|
+
_MODELGROUPMANAGEMENTSERVICE._serialized_end=1122
|
50
70
|
# @@protoc_insertion_point(module_scope)
|
@@ -66,3 +66,39 @@ class ModelGroupBriefInfoResponse(google.protobuf.message.Message):
|
|
66
66
|
def ClearField(self, field_name: typing_extensions.Literal["model_group_created_at", b"model_group_created_at", "model_group_description", b"model_group_description", "model_group_id", b"model_group_id", "repository_details", b"repository_details"]) -> None: ...
|
67
67
|
|
68
68
|
global___ModelGroupBriefInfoResponse = ModelGroupBriefInfoResponse
|
69
|
+
|
70
|
+
class CreateRepositoriesForModelGroupRequest(google.protobuf.message.Message):
|
71
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
72
|
+
|
73
|
+
MODEL_GROUP_UUID_FIELD_NUMBER: builtins.int
|
74
|
+
REPOSITORY_DETAILS_FIELD_NUMBER: builtins.int
|
75
|
+
model_group_uuid: builtins.str
|
76
|
+
"""the model group UUID for which to create repositories"""
|
77
|
+
@property
|
78
|
+
def repository_details(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[qwak.model_group.model_group_repository_details_pb2.RemoteRepositoryDetails]:
|
79
|
+
"""List of remote repository details to create for the model group"""
|
80
|
+
def __init__(
|
81
|
+
self,
|
82
|
+
*,
|
83
|
+
model_group_uuid: builtins.str = ...,
|
84
|
+
repository_details: collections.abc.Iterable[qwak.model_group.model_group_repository_details_pb2.RemoteRepositoryDetails] | None = ...,
|
85
|
+
) -> None: ...
|
86
|
+
def ClearField(self, field_name: typing_extensions.Literal["model_group_uuid", b"model_group_uuid", "repository_details", b"repository_details"]) -> None: ...
|
87
|
+
|
88
|
+
global___CreateRepositoriesForModelGroupRequest = CreateRepositoriesForModelGroupRequest
|
89
|
+
|
90
|
+
class CreateRepositoriesForModelGroupResponse(google.protobuf.message.Message):
|
91
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
92
|
+
|
93
|
+
ARTIFACTORY_REPOSITORY_DETAILS_FIELD_NUMBER: builtins.int
|
94
|
+
@property
|
95
|
+
def artifactory_repository_details(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[qwak.model_group.model_group_repository_details_pb2.RepositoryDetails]:
|
96
|
+
"""List of repository details associated with this model group"""
|
97
|
+
def __init__(
|
98
|
+
self,
|
99
|
+
*,
|
100
|
+
artifactory_repository_details: collections.abc.Iterable[qwak.model_group.model_group_repository_details_pb2.RepositoryDetails] | None = ...,
|
101
|
+
) -> None: ...
|
102
|
+
def ClearField(self, field_name: typing_extensions.Literal["artifactory_repository_details", b"artifactory_repository_details"]) -> None: ...
|
103
|
+
|
104
|
+
global___CreateRepositoriesForModelGroupResponse = CreateRepositoriesForModelGroupResponse
|
@@ -19,6 +19,11 @@ class ModelGroupManagementServiceStub(object):
|
|
19
19
|
request_serializer=qwak_dot_model__group_dot_model__group__pb2.CreateIfNotExistsModelGroupRequest.SerializeToString,
|
20
20
|
response_deserializer=qwak_dot_model__group_dot_model__group__pb2.ModelGroupBriefInfoResponse.FromString,
|
21
21
|
)
|
22
|
+
self.CreateRepositoriesForModelGroup = channel.unary_unary(
|
23
|
+
'/qwak.model_groups.management.ModelGroupManagementService/CreateRepositoriesForModelGroup',
|
24
|
+
request_serializer=qwak_dot_model__group_dot_model__group__pb2.CreateRepositoriesForModelGroupRequest.SerializeToString,
|
25
|
+
response_deserializer=qwak_dot_model__group_dot_model__group__pb2.CreateRepositoriesForModelGroupResponse.FromString,
|
26
|
+
)
|
22
27
|
|
23
28
|
|
24
29
|
class ModelGroupManagementServiceServicer(object):
|
@@ -30,6 +35,12 @@ class ModelGroupManagementServiceServicer(object):
|
|
30
35
|
context.set_details('Method not implemented!')
|
31
36
|
raise NotImplementedError('Method not implemented!')
|
32
37
|
|
38
|
+
def CreateRepositoriesForModelGroup(self, request, context):
|
39
|
+
"""Missing associated documentation comment in .proto file."""
|
40
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
41
|
+
context.set_details('Method not implemented!')
|
42
|
+
raise NotImplementedError('Method not implemented!')
|
43
|
+
|
33
44
|
|
34
45
|
def add_ModelGroupManagementServiceServicer_to_server(servicer, server):
|
35
46
|
rpc_method_handlers = {
|
@@ -38,6 +49,11 @@ def add_ModelGroupManagementServiceServicer_to_server(servicer, server):
|
|
38
49
|
request_deserializer=qwak_dot_model__group_dot_model__group__pb2.CreateIfNotExistsModelGroupRequest.FromString,
|
39
50
|
response_serializer=qwak_dot_model__group_dot_model__group__pb2.ModelGroupBriefInfoResponse.SerializeToString,
|
40
51
|
),
|
52
|
+
'CreateRepositoriesForModelGroup': grpc.unary_unary_rpc_method_handler(
|
53
|
+
servicer.CreateRepositoriesForModelGroup,
|
54
|
+
request_deserializer=qwak_dot_model__group_dot_model__group__pb2.CreateRepositoriesForModelGroupRequest.FromString,
|
55
|
+
response_serializer=qwak_dot_model__group_dot_model__group__pb2.CreateRepositoriesForModelGroupResponse.SerializeToString,
|
56
|
+
),
|
41
57
|
}
|
42
58
|
generic_handler = grpc.method_handlers_generic_handler(
|
43
59
|
'qwak.model_groups.management.ModelGroupManagementService', rpc_method_handlers)
|
@@ -64,3 +80,20 @@ class ModelGroupManagementService(object):
|
|
64
80
|
qwak_dot_model__group_dot_model__group__pb2.ModelGroupBriefInfoResponse.FromString,
|
65
81
|
options, channel_credentials,
|
66
82
|
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
83
|
+
|
84
|
+
@staticmethod
|
85
|
+
def CreateRepositoriesForModelGroup(request,
|
86
|
+
target,
|
87
|
+
options=(),
|
88
|
+
channel_credentials=None,
|
89
|
+
call_credentials=None,
|
90
|
+
insecure=False,
|
91
|
+
compression=None,
|
92
|
+
wait_for_ready=None,
|
93
|
+
timeout=None,
|
94
|
+
metadata=None):
|
95
|
+
return grpc.experimental.unary_unary(request, target, '/qwak.model_groups.management.ModelGroupManagementService/CreateRepositoriesForModelGroup',
|
96
|
+
qwak_dot_model__group_dot_model__group__pb2.CreateRepositoriesForModelGroupRequest.SerializeToString,
|
97
|
+
qwak_dot_model__group_dot_model__group__pb2.CreateRepositoriesForModelGroupResponse.FromString,
|
98
|
+
options, channel_credentials,
|
99
|
+
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
@@ -12,14 +12,14 @@ from google.protobuf import symbol_database as _symbol_database
|
|
12
12
|
_sym_db = _symbol_database.Default()
|
13
13
|
|
14
14
|
|
15
|
-
from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
|
16
15
|
|
17
16
|
|
18
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n5qwak/model_group/model_group_repository_details.proto\x12\x1cqwak.model_groups.management\
|
17
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n5qwak/model_group/model_group_repository_details.proto\x12\x1cqwak.model_groups.management\"r\n\x11RepositoryDetails\x12\x45\n\x0frepository_type\x18\x01 \x01(\x0b\x32,.qwak.model_groups.management.RepositoryType\x12\x16\n\x0erepository_key\x18\x02 \x01(\t\"\xf0\x01\n\x17RemoteRepositoryDetails\x12K\n\x11\x64ocker_repository\x18\x01 \x01(\x0b\x32..qwak.model_groups.management.DockerRepositoryH\x00\x12V\n\x17hugging_face_repository\x18\x02 \x01(\x0b\x32\x33.qwak.model_groups.management.HuggingFaceRepositoryH\x00\x12\x1d\n\x15repository_remote_url\x18\x03 \x01(\tB\x11\n\x0frepository_type\"\x12\n\x10\x44ockerRepository\"\x13\n\x11\x44\x61tasetRepository\"\x14\n\x12\x41rtifactRepository\"\x17\n\x15HuggingFaceRepository\"\xdd\x02\n\x0eRepositoryType\x12K\n\x11\x64ocker_repository\x18\x01 \x01(\x0b\x32..qwak.model_groups.management.DockerRepositoryH\x00\x12M\n\x12\x64\x61taset_repository\x18\x02 \x01(\x0b\x32/.qwak.model_groups.management.DatasetRepositoryH\x00\x12O\n\x13\x61rtifact_repository\x18\x03 \x01(\x0b\x32\x30.qwak.model_groups.management.ArtifactRepositoryH\x00\x12V\n\x17hugging_face_repository\x18\x04 \x01(\x0b\x32\x33.qwak.model_groups.management.HuggingFaceRepositoryH\x00\x42\x06\n\x04typeBN\n&com.qwak.ai.management.model.group.apiB\"ModelGroupRepositoriesDetailsProtoP\x01\x62\x06proto3')
|
19
18
|
|
20
19
|
|
21
20
|
|
22
21
|
_REPOSITORYDETAILS = DESCRIPTOR.message_types_by_name['RepositoryDetails']
|
22
|
+
_REMOTEREPOSITORYDETAILS = DESCRIPTOR.message_types_by_name['RemoteRepositoryDetails']
|
23
23
|
_DOCKERREPOSITORY = DESCRIPTOR.message_types_by_name['DockerRepository']
|
24
24
|
_DATASETREPOSITORY = DESCRIPTOR.message_types_by_name['DatasetRepository']
|
25
25
|
_ARTIFACTREPOSITORY = DESCRIPTOR.message_types_by_name['ArtifactRepository']
|
@@ -32,6 +32,13 @@ RepositoryDetails = _reflection.GeneratedProtocolMessageType('RepositoryDetails'
|
|
32
32
|
})
|
33
33
|
_sym_db.RegisterMessage(RepositoryDetails)
|
34
34
|
|
35
|
+
RemoteRepositoryDetails = _reflection.GeneratedProtocolMessageType('RemoteRepositoryDetails', (_message.Message,), {
|
36
|
+
'DESCRIPTOR' : _REMOTEREPOSITORYDETAILS,
|
37
|
+
'__module__' : 'qwak.model_group.model_group_repository_details_pb2'
|
38
|
+
# @@protoc_insertion_point(class_scope:qwak.model_groups.management.RemoteRepositoryDetails)
|
39
|
+
})
|
40
|
+
_sym_db.RegisterMessage(RemoteRepositoryDetails)
|
41
|
+
|
35
42
|
DockerRepository = _reflection.GeneratedProtocolMessageType('DockerRepository', (_message.Message,), {
|
36
43
|
'DESCRIPTOR' : _DOCKERREPOSITORY,
|
37
44
|
'__module__' : 'qwak.model_group.model_group_repository_details_pb2'
|
@@ -71,16 +78,18 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
71
78
|
|
72
79
|
DESCRIPTOR._options = None
|
73
80
|
DESCRIPTOR._serialized_options = b'\n&com.qwak.ai.management.model.group.apiB\"ModelGroupRepositoriesDetailsProtoP\001'
|
74
|
-
_REPOSITORYDETAILS._serialized_start=
|
75
|
-
_REPOSITORYDETAILS._serialized_end=
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
81
|
+
_REPOSITORYDETAILS._serialized_start=87
|
82
|
+
_REPOSITORYDETAILS._serialized_end=201
|
83
|
+
_REMOTEREPOSITORYDETAILS._serialized_start=204
|
84
|
+
_REMOTEREPOSITORYDETAILS._serialized_end=444
|
85
|
+
_DOCKERREPOSITORY._serialized_start=446
|
86
|
+
_DOCKERREPOSITORY._serialized_end=464
|
87
|
+
_DATASETREPOSITORY._serialized_start=466
|
88
|
+
_DATASETREPOSITORY._serialized_end=485
|
89
|
+
_ARTIFACTREPOSITORY._serialized_start=487
|
90
|
+
_ARTIFACTREPOSITORY._serialized_end=507
|
91
|
+
_HUGGINGFACEREPOSITORY._serialized_start=509
|
92
|
+
_HUGGINGFACEREPOSITORY._serialized_end=532
|
93
|
+
_REPOSITORYTYPE._serialized_start=535
|
94
|
+
_REPOSITORYTYPE._serialized_end=884
|
86
95
|
# @@protoc_insertion_point(module_scope)
|
@@ -35,6 +35,33 @@ class RepositoryDetails(google.protobuf.message.Message):
|
|
35
35
|
|
36
36
|
global___RepositoryDetails = RepositoryDetails
|
37
37
|
|
38
|
+
class RemoteRepositoryDetails(google.protobuf.message.Message):
|
39
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
40
|
+
|
41
|
+
DOCKER_REPOSITORY_FIELD_NUMBER: builtins.int
|
42
|
+
HUGGING_FACE_REPOSITORY_FIELD_NUMBER: builtins.int
|
43
|
+
REPOSITORY_REMOTE_URL_FIELD_NUMBER: builtins.int
|
44
|
+
@property
|
45
|
+
def docker_repository(self) -> global___DockerRepository:
|
46
|
+
"""Docker repository"""
|
47
|
+
@property
|
48
|
+
def hugging_face_repository(self) -> global___HuggingFaceRepository:
|
49
|
+
"""HuggingFace repository"""
|
50
|
+
repository_remote_url: builtins.str
|
51
|
+
"""The remote repository URL"""
|
52
|
+
def __init__(
|
53
|
+
self,
|
54
|
+
*,
|
55
|
+
docker_repository: global___DockerRepository | None = ...,
|
56
|
+
hugging_face_repository: global___HuggingFaceRepository | None = ...,
|
57
|
+
repository_remote_url: builtins.str = ...,
|
58
|
+
) -> None: ...
|
59
|
+
def HasField(self, field_name: typing_extensions.Literal["docker_repository", b"docker_repository", "hugging_face_repository", b"hugging_face_repository", "repository_type", b"repository_type"]) -> builtins.bool: ...
|
60
|
+
def ClearField(self, field_name: typing_extensions.Literal["docker_repository", b"docker_repository", "hugging_face_repository", b"hugging_face_repository", "repository_remote_url", b"repository_remote_url", "repository_type", b"repository_type"]) -> None: ...
|
61
|
+
def WhichOneof(self, oneof_group: typing_extensions.Literal["repository_type", b"repository_type"]) -> typing_extensions.Literal["docker_repository", "hugging_face_repository"] | None: ...
|
62
|
+
|
63
|
+
global___RemoteRepositoryDetails = RemoteRepositoryDetails
|
64
|
+
|
38
65
|
class DockerRepository(google.protobuf.message.Message):
|
39
66
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
40
67
|
|
frogml_storage/__init__.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
__version__ = "0.4.
|
1
|
+
__version__ = "0.4.275"
|
qwak/__init__.py
CHANGED
@@ -34,6 +34,10 @@ from _qwak_proto.qwak.batch_job.v1.batch_job_service_pb2 import (
|
|
34
34
|
StartBatchJobResponse,
|
35
35
|
StartWarmupJobRequest,
|
36
36
|
StartWarmupJobResponse,
|
37
|
+
UpdateTasksDetailsResponse,
|
38
|
+
UpdateTasksDetailsRequest,
|
39
|
+
BatchTaskDetails,
|
40
|
+
InputFileDetails,
|
37
41
|
)
|
38
42
|
from _qwak_proto.qwak.batch_job.v1.batch_job_service_pb2_grpc import (
|
39
43
|
BatchJobManagementServiceStub,
|
@@ -67,6 +71,8 @@ from .results import (
|
|
67
71
|
StartExecutionResult,
|
68
72
|
)
|
69
73
|
|
74
|
+
from typing import List
|
75
|
+
|
70
76
|
CLIENT_TIMEOUT = 180 # Seconds
|
71
77
|
|
72
78
|
|
@@ -541,3 +547,36 @@ class BatchJobManagerClient:
|
|
541
547
|
|
542
548
|
except grpc.RpcError as e:
|
543
549
|
raise QwakException(f"Failed to get batch job details, error is: {e}")
|
550
|
+
|
551
|
+
def update_task_details(self, task_id: str, input_file_paths: List[str]):
|
552
|
+
"""
|
553
|
+
Update task details for a specific task using the provided list of input file paths.
|
554
|
+
|
555
|
+
:param task_id: The ID of the task to update.
|
556
|
+
:param input_file_paths: A list of paths for the input files associated with the task.
|
557
|
+
"""
|
558
|
+
# Create InputFileDetails messages for each input file path
|
559
|
+
input_files_details = [
|
560
|
+
InputFileDetails(path=file_path) for file_path in input_file_paths
|
561
|
+
]
|
562
|
+
|
563
|
+
# Create BatchTaskDetails message for the single task
|
564
|
+
batch_task_details = BatchTaskDetails(
|
565
|
+
task_id=task_id, input_files_details=input_files_details
|
566
|
+
)
|
567
|
+
|
568
|
+
update_request = UpdateTasksDetailsRequest(
|
569
|
+
tasks_details=[batch_task_details] # Wrap in a list
|
570
|
+
)
|
571
|
+
|
572
|
+
try:
|
573
|
+
response: UpdateTasksDetailsResponse = (
|
574
|
+
self.batch_job_management.UpdateTasksDetails(
|
575
|
+
update_request, timeout=CLIENT_TIMEOUT
|
576
|
+
)
|
577
|
+
)
|
578
|
+
return response
|
579
|
+
except grpc.RpcError as e:
|
580
|
+
raise QwakException(
|
581
|
+
f"Failed to update task details for task '{task_id}', error is: {e}"
|
582
|
+
)
|
@@ -487,11 +487,11 @@ _qwak_proto/qwak/logging/log_source_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHD
|
|
487
487
|
_qwak_proto/qwak/model_descriptor/open_ai_descriptor_pb2.py,sha256=HCM2-Ah66CkK5Io1jCouxgDHT5HmSgAYcHKvsfTZw48,6751
|
488
488
|
_qwak_proto/qwak/model_descriptor/open_ai_descriptor_pb2.pyi,sha256=G5CaQGczrZ9kGsMbmJXMFWAwnqMZ4jPSl9KQpSq0yMo,12345
|
489
489
|
_qwak_proto/qwak/model_descriptor/open_ai_descriptor_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
490
|
-
_qwak_proto/qwak/model_group/model_group_pb2.py,sha256=
|
491
|
-
_qwak_proto/qwak/model_group/model_group_pb2.pyi,sha256=
|
492
|
-
_qwak_proto/qwak/model_group/model_group_pb2_grpc.py,sha256=
|
493
|
-
_qwak_proto/qwak/model_group/model_group_repository_details_pb2.py,sha256=
|
494
|
-
_qwak_proto/qwak/model_group/model_group_repository_details_pb2.pyi,sha256=
|
490
|
+
_qwak_proto/qwak/model_group/model_group_pb2.py,sha256=Gh4oDESijyWcSudhDkBKPkS-KTj46mFVy6Be9rmCL4g,5374
|
491
|
+
_qwak_proto/qwak/model_group/model_group_pb2.pyi,sha256=VxmZR2nKY6OjnM8yhTLSIp9eho-Uk-IkZBu6py2D_t4,5073
|
492
|
+
_qwak_proto/qwak/model_group/model_group_pb2_grpc.py,sha256=RAvxDibL9olZBfQRIoqr3lIuVGRyneTntWZS6bhx_zo,5125
|
493
|
+
_qwak_proto/qwak/model_group/model_group_repository_details_pb2.py,sha256=Kax2nuUQKQ5d0X2A3b_hw29rls8FX1JYAWoemEWmmDc,5799
|
494
|
+
_qwak_proto/qwak/model_group/model_group_repository_details_pb2.pyi,sha256=GgYhrSXu8L2RdEV0clooKgB9Gye3_no4q0YrMy8QrZw,5701
|
495
495
|
_qwak_proto/qwak/model_group/model_group_repository_details_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
496
496
|
_qwak_proto/qwak/models/models_pb2.py,sha256=dypKmBnjqzAmSLkXRPx0QMXiB1D-mUNxRu5pGqxVj68,32093
|
497
497
|
_qwak_proto/qwak/models/models_pb2.pyi,sha256=6h6PCqMOwZgSf77CUEx_SiRWX0uTxjiFMysVG_Z0Qvc,39027
|
@@ -601,7 +601,7 @@ _qwak_proto/qwak/workspace/workspace_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXH
|
|
601
601
|
_qwak_proto/qwak/workspace/workspace_service_pb2.py,sha256=AB3C9S_AbOD7Nx1Ni4j1rW6PNtYTV1zjiqFQk-goQ74,21429
|
602
602
|
_qwak_proto/qwak/workspace/workspace_service_pb2.pyi,sha256=nKKCHwnovZhsy8TSVmdz-Vtl0nviOOoX56HD-41Xo08,13726
|
603
603
|
_qwak_proto/qwak/workspace/workspace_service_pb2_grpc.py,sha256=yKGuexxTBza99Ihe0DSTniV2ZSd_AG47inHenqfi890,27193
|
604
|
-
frogml_storage/__init__.py,sha256=
|
604
|
+
frogml_storage/__init__.py,sha256=5Cbsl32LEshQ8ZQ7F7gzUh2VGMGdkb06EdCOlAiWvGc,24
|
605
605
|
frogml_storage/artifactory/__init__.py,sha256=C02rcm7kqsZBVA6c6Gztxamj96hn8Aj6BuzYWFRmWbQ,71
|
606
606
|
frogml_storage/artifactory/_artifactory_api.py,sha256=z8YX90bCy82BWqMNUdpbbig1qF5CarkIOfP6V96uYYg,11188
|
607
607
|
frogml_storage/authentication/login/__init__.py,sha256=ch8UhQwh3o5ddyoJykQ0Bnog5-8qKHmeDpwqny8xMzM,46
|
@@ -639,7 +639,7 @@ frogml_storage/utils/_environment.py,sha256=NEnRxaFdRDi3UA33IVTSfQxqc9ZB6nV9YlHD
|
|
639
639
|
frogml_storage/utils/_input_checks_utility.py,sha256=ZUvkxhcTcbSKtpSo5ePWha3Ca5xohxIpiAlZlpcQ3xk,3221
|
640
640
|
frogml_storage/utils/_storage_utils.py,sha256=HB2g7uY5A3b33yIcAUM1OjHb5jWsnpESsiDrEviQwrI,366
|
641
641
|
frogml_storage/utils/_url_utils.py,sha256=NUEfz9Fp1iE8b676-A5wrMlSTsJVRKrUhcUItOFAJD8,821
|
642
|
-
qwak/__init__.py,sha256=
|
642
|
+
qwak/__init__.py,sha256=DRLZ7BRqdDrMQ_UVJKLmWIYj1PoXgd3S4anrAb26WJ8,587
|
643
643
|
qwak/automations/__init__.py,sha256=qFZRvCxUUn8gcxkJR0v19ulHW2oJ0x6-Rif7HiheDP4,1522
|
644
644
|
qwak/automations/automation_executions.py,sha256=5MeH_epYYWb8NKXgAozwT_jPyyUDednBHG7izloi7RY,3228
|
645
645
|
qwak/automations/automations.py,sha256=3yx8e2v0uSKDnXbqyknasyEoQ5vxGni6K40Hbi1_zkk,12599
|
@@ -675,7 +675,7 @@ qwak/clients/automation_management/client.py,sha256=oO3CihRxPPPlIWN764Dmf4hmWChH
|
|
675
675
|
qwak/clients/autoscaling/__init__.py,sha256=A-zuZOWaZf16NjnpX38204m730c5Lde491KaXneGirE,38
|
676
676
|
qwak/clients/autoscaling/client.py,sha256=55Pc2yc8dLl2C2MSdO2g5E25vYgkmvJSxXnKZriP_dk,1240
|
677
677
|
qwak/clients/batch_job_management/__init__.py,sha256=zywxYf2JupkIWnGVB2C6ugZs5CrOdxTPrksD5P6uQu4,211
|
678
|
-
qwak/clients/batch_job_management/client.py,sha256=
|
678
|
+
qwak/clients/batch_job_management/client.py,sha256=4fwZtljRW93Yz6hqNEpR4YP9T7s7rYXLn2jR7hUE9B8,22453
|
679
679
|
qwak/clients/batch_job_management/executions_config.py,sha256=LYf9j8T5W1M1EK6cjXPwAmiyGNR7wfdjNCmeKNhiREU,6882
|
680
680
|
qwak/clients/batch_job_management/results.py,sha256=nrFGZ3y538FBhej94CYV4cwqQssK1aUQOLGubYdQVrc,1846
|
681
681
|
qwak/clients/build_management/__init__.py,sha256=oXurHX6Kho5X-fOuuNHB3B9oMX6ejYUqh6GWv5qJyjw,43
|
@@ -1072,7 +1072,7 @@ qwak_services_mock/mocks/audience_service_api.py,sha256=2PvXpzKBR-Dnu9Fmb70UJn-h
|
|
1072
1072
|
qwak_services_mock/mocks/authentication_service.py,sha256=79A8hmYUsg4i7EwyGG54CidbANlp-ub4f716BbLCaJQ,1166
|
1073
1073
|
qwak_services_mock/mocks/automation_management_service.py,sha256=C9rYKMy0hzOTaKTCrTkE5jTnPSenVkLV8DCptBKr02U,8211
|
1074
1074
|
qwak_services_mock/mocks/autoscaling_service_api.py,sha256=YgucRD3ZjhxqttNVSF_HL7u3aDo55LdRSEE7q0fxp3M,1019
|
1075
|
-
qwak_services_mock/mocks/batch_job_manager_service.py,sha256=
|
1075
|
+
qwak_services_mock/mocks/batch_job_manager_service.py,sha256=zVBBBkYdvWFwEXP_VHBH8SBIvJosPt0jHnHlJjuf6AI,14080
|
1076
1076
|
qwak_services_mock/mocks/build_management.py,sha256=LYtrEvDt-lJbNJEP-pFpvAKcS82mAzb2gyoCu1-XCOs,3686
|
1077
1077
|
qwak_services_mock/mocks/build_orchestrator_build_api.py,sha256=mtb6wEZug9zCiMHZVrfsU0YOP59rgBrpvZDjEInG7B8,5004
|
1078
1078
|
qwak_services_mock/mocks/build_orchestrator_build_settings_api.py,sha256=oj_JTxY_3xj8FkgWkxQER_EoBFDqL2g21NPrU31fD6o,1379
|
@@ -1113,6 +1113,6 @@ qwak_services_mock/mocks/workspace_manager_service_mock.py,sha256=O9ZSwln4T4kHVk
|
|
1113
1113
|
qwak_services_mock/services_mock.py,sha256=zXtHcX8a_acz7ynxuCBxxVpHpde7aAGjIn6Uw52LY1s,19593
|
1114
1114
|
qwak_services_mock/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1115
1115
|
qwak_services_mock/utils/service_utils.py,sha256=ZlB0CnB1J6oBn6_m7fQO2U8tKoboHdUa6ljjkRMYNXU,265
|
1116
|
-
qwak_core-0.4.
|
1117
|
-
qwak_core-0.4.
|
1118
|
-
qwak_core-0.4.
|
1116
|
+
qwak_core-0.4.275.dist-info/METADATA,sha256=nhP_L33Xeef7gSOW0aW9KWIAxSMn-fNRmYHezoD-S88,15142
|
1117
|
+
qwak_core-0.4.275.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
1118
|
+
qwak_core-0.4.275.dist-info/RECORD,,
|
@@ -36,6 +36,9 @@ from _qwak_proto.qwak.batch_job.v1.batch_job_service_pb2 import (
|
|
36
36
|
StartWarmupJobRequest,
|
37
37
|
StartWarmupJobResponse,
|
38
38
|
TaskExecutionDetails,
|
39
|
+
UpdateTasksDetailsRequest,
|
40
|
+
UpdateTasksDetailsResponse,
|
41
|
+
BatchTaskDetails,
|
39
42
|
)
|
40
43
|
from _qwak_proto.qwak.batch_job.v1.batch_job_service_pb2_grpc import (
|
41
44
|
BatchJobManagementServiceServicer,
|
@@ -51,6 +54,7 @@ class BatchJobManagerService(BatchJobManagementServiceServicer):
|
|
51
54
|
self.id_to_batch_job: Dict[str, MockBatchJob] = dict()
|
52
55
|
self.model_id_active_warmup: Set[str] = set()
|
53
56
|
self.models_to_fail: Set[str] = set()
|
57
|
+
self.task_id_to_update_task_details: Dict[str, BatchTaskDetails] = dict()
|
54
58
|
|
55
59
|
def StartBatchJob(
|
56
60
|
self, request: StartBatchJobRequest, context
|
@@ -265,6 +269,25 @@ class BatchJobManagerService(BatchJobManagementServiceServicer):
|
|
265
269
|
except Exception as e:
|
266
270
|
raise_internal_grpc_error(context, e)
|
267
271
|
|
272
|
+
def UpdateTasksDetails(
|
273
|
+
self, request: UpdateTasksDetailsRequest, context
|
274
|
+
) -> UpdateTasksDetailsResponse:
|
275
|
+
for task in request.tasks_details:
|
276
|
+
task_id = task.task_id
|
277
|
+
if not task_id :
|
278
|
+
raise ValueError("Task ID cannot be empty")
|
279
|
+
input_files = task.input_files_details
|
280
|
+
|
281
|
+
print(f"Updating task with ID: {task_id} and input files: {[file.path for file in input_files]}")
|
282
|
+
self.task_id_to_update_task_details[task_id] = task
|
283
|
+
return UpdateTasksDetailsResponse()
|
284
|
+
|
285
|
+
def get_task_details(self,task_id: str
|
286
|
+
) -> Optional[BatchTaskDetails]:
|
287
|
+
"""
|
288
|
+
Get task details by task ID
|
289
|
+
"""
|
290
|
+
return self.task_id_to_update_task_details[task_id]
|
268
291
|
|
269
292
|
class MockBatchJob:
|
270
293
|
def __init__(self, request: StartBatchJobRequest):
|
@@ -331,4 +354,4 @@ def batch_job_to_message(batch_job: MockBatchJob) -> BatchJobMessage:
|
|
331
354
|
for line in batch_job.report
|
332
355
|
],
|
333
356
|
task_executions=batch_job.tasks,
|
334
|
-
)
|
357
|
+
)
|
File without changes
|