frogml 1.2.35__py3-none-any.whl → 1.2.41__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.
- frogml/__init__.py +1 -1
- frogml/_proto/com/jfrog/ml/model/deployment/v1/auto_scaling_pb2.py +43 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/auto_scaling_pb2.pyi +218 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/auto_scaling_pb2_grpc.py +4 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/deployment_pb2.py +53 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/deployment_pb2.pyi +258 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/deployment_pb2_grpc.py +4 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/deployment_service_pb2.py +58 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/deployment_service_pb2.pyi +224 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/deployment_service_pb2_grpc.py +206 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/environment_variables_configuration_pb2.py +33 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/environment_variables_configuration_pb2.pyi +99 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/environment_variables_configuration_pb2_grpc.py +4 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/model_artifact_identifier_pb2.py +31 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/model_artifact_identifier_pb2.pyi +99 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/model_artifact_identifier_pb2_grpc.py +4 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/model_deployment_brief_pb2.py +30 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/model_deployment_brief_pb2.pyi +55 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/model_deployment_brief_pb2_grpc.py +4 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/model_deployment_filter_pb2.py +42 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/model_deployment_filter_pb2.pyi +204 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/model_deployment_filter_pb2_grpc.py +4 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/probes_configuration_pb2.py +29 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/probes_configuration_pb2.pyi +60 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/probes_configuration_pb2_grpc.py +4 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/realtime_deployment_pb2.py +28 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/realtime_deployment_pb2.pyi +47 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/realtime_deployment_pb2_grpc.py +4 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/resource_configuration_pb2.py +27 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/resource_configuration_pb2.pyi +29 -0
- frogml/_proto/com/jfrog/ml/model/deployment/v1/resource_configuration_pb2_grpc.py +4 -0
- frogml/_proto/qwak/logging/log_source_pb2.py +31 -25
- frogml/_proto/qwak/logging/log_source_pb2.pyi +28 -14
- frogml/_proto/qwak/models/models_pb2.py +81 -79
- frogml/_proto/qwak/models/models_pb2.pyi +24 -0
- frogml/_proto/qwak/models/models_pb2_grpc.py +34 -0
- frogml/core/clients/batch_job_management/client.py +14 -6
- frogml/core/clients/logging_client/client.py +118 -33
- frogml/core/clients/model_deployment_manager/__init__.py +1 -0
- frogml/core/clients/model_deployment_manager/client.py +103 -0
- {frogml-1.2.35.dist-info → frogml-1.2.41.dist-info}/METADATA +1 -1
- {frogml-1.2.35.dist-info → frogml-1.2.41.dist-info}/RECORD +46 -13
- frogml_services_mock/mocks/frogml_mocks.py +11 -3
- frogml_services_mock/mocks/model_deployment_manager_service_mock.py +255 -0
- frogml_services_mock/services_mock.py +18 -2
- {frogml-1.2.35.dist-info → frogml-1.2.41.dist-info}/WHEEL +0 -0
|
@@ -71,7 +71,7 @@ from .results import (
|
|
|
71
71
|
GetExecutionReportResult,
|
|
72
72
|
StartExecutionResult,
|
|
73
73
|
)
|
|
74
|
-
from typing import List
|
|
74
|
+
from typing import List, Optional
|
|
75
75
|
|
|
76
76
|
CLIENT_TIMEOUT = 180 # Seconds
|
|
77
77
|
|
|
@@ -359,15 +359,21 @@ class BatchJobManagerClient:
|
|
|
359
359
|
except grpc.RpcError as e:
|
|
360
360
|
raise FrogmlException(f"Failed to cancel execution, error is {e}")
|
|
361
361
|
|
|
362
|
-
def get_execution_report(
|
|
362
|
+
def get_execution_report(
|
|
363
|
+
self,
|
|
364
|
+
execution_id: str,
|
|
365
|
+
model_id: Optional[str] = None,
|
|
366
|
+
model_group_name: Optional[str] = None,
|
|
367
|
+
) -> GetExecutionReportResult:
|
|
363
368
|
"""
|
|
364
369
|
|
|
365
370
|
Args:
|
|
366
|
-
execution_id:
|
|
371
|
+
execution_id: The batch execution id to get the report for.
|
|
372
|
+
model_id: The model ID. This is the display name(identifier), not the UUID.
|
|
373
|
+
model_group_name: The model group name.
|
|
367
374
|
|
|
368
375
|
Returns:
|
|
369
|
-
A full report of all the events that occurred as part of the execution job
|
|
370
|
-
|
|
376
|
+
A full report of all the events that occurred as part of the execution job.
|
|
371
377
|
"""
|
|
372
378
|
try:
|
|
373
379
|
self.logging_client = (
|
|
@@ -383,7 +389,9 @@ class BatchJobManagerClient:
|
|
|
383
389
|
try:
|
|
384
390
|
execution_log_response: ReadLogsResponse = (
|
|
385
391
|
self.logging_client.read_execution_models_logs(
|
|
386
|
-
execution_id=execution_id
|
|
392
|
+
execution_id=execution_id,
|
|
393
|
+
model_id=model_id,
|
|
394
|
+
model_group_name=model_group_name,
|
|
387
395
|
)
|
|
388
396
|
)
|
|
389
397
|
execution_logs = execution_log_response.log_line
|
|
@@ -49,15 +49,41 @@ class LoggingClient:
|
|
|
49
49
|
|
|
50
50
|
def read_build_logs(
|
|
51
51
|
self,
|
|
52
|
-
build_id=None,
|
|
53
|
-
before_offset=None,
|
|
54
|
-
after_offset=None,
|
|
55
|
-
max_number_of_results=None,
|
|
56
|
-
log_text_filter=None,
|
|
57
|
-
|
|
52
|
+
build_id: Optional[str] = None,
|
|
53
|
+
before_offset: Optional[str] = None,
|
|
54
|
+
after_offset: Optional[str] = None,
|
|
55
|
+
max_number_of_results: Optional[int] = None,
|
|
56
|
+
log_text_filter: Optional[str] = None,
|
|
57
|
+
model_id: Optional[str] = None,
|
|
58
|
+
model_group_name: Optional[str] = None,
|
|
59
|
+
) -> ReadLogsResponse:
|
|
60
|
+
"""
|
|
61
|
+
Read logs for a remote build.
|
|
62
|
+
|
|
63
|
+
Args:
|
|
64
|
+
build_id: The build ID to fetch logs for
|
|
65
|
+
before_offset: Optional offset to read logs before this point
|
|
66
|
+
after_offset: Optional offset to read logs after this point
|
|
67
|
+
max_number_of_results: Optional maximum number of log lines to return
|
|
68
|
+
log_text_filter: Optional text filter to search for in logs
|
|
69
|
+
model_id: The model ID. This is the display name(identifier), not the UUID.
|
|
70
|
+
model_group_name: The model group name.
|
|
71
|
+
|
|
72
|
+
Returns:
|
|
73
|
+
ReadLogsResponse containing the log lines
|
|
74
|
+
|
|
75
|
+
Raises:
|
|
76
|
+
FrogmlException: If reading logs fails
|
|
77
|
+
"""
|
|
58
78
|
try:
|
|
79
|
+
remote_build_source = RemoteBuildSource(
|
|
80
|
+
build_id=build_id,
|
|
81
|
+
model_id=model_id,
|
|
82
|
+
model_group_name=model_group_name,
|
|
83
|
+
)
|
|
84
|
+
|
|
59
85
|
response = self.read_logs(
|
|
60
|
-
source=LogSource(remote_build=
|
|
86
|
+
source=LogSource(remote_build=remote_build_source),
|
|
61
87
|
before_offset=before_offset,
|
|
62
88
|
after_offset=after_offset,
|
|
63
89
|
log_text_filter=log_text_filter,
|
|
@@ -70,20 +96,44 @@ class LoggingClient:
|
|
|
70
96
|
|
|
71
97
|
def read_model_runtime_logs(
|
|
72
98
|
self,
|
|
73
|
-
build_id=None,
|
|
74
|
-
deployment_id=None,
|
|
75
|
-
before_offset=None,
|
|
76
|
-
after_offset=None,
|
|
77
|
-
max_number_of_results=None,
|
|
78
|
-
log_text_filter=None,
|
|
99
|
+
build_id: Optional[str] = None,
|
|
100
|
+
deployment_id: Optional[str] = None,
|
|
101
|
+
before_offset: Optional[str] = None,
|
|
102
|
+
after_offset: Optional[str] = None,
|
|
103
|
+
max_number_of_results: Optional[int] = None,
|
|
104
|
+
log_text_filter: Optional[str] = None,
|
|
105
|
+
model_id: Optional[str] = None,
|
|
106
|
+
model_group_name: Optional[str] = None,
|
|
79
107
|
) -> ReadLogsResponse:
|
|
108
|
+
"""
|
|
109
|
+
Read logs for a model runtime (deployment).
|
|
110
|
+
|
|
111
|
+
Args:
|
|
112
|
+
build_id: The build ID to fetch logs for
|
|
113
|
+
deployment_id: The deployment ID to fetch logs for
|
|
114
|
+
before_offset: Optional offset to read logs before this point
|
|
115
|
+
after_offset: Optional offset to read logs after this point
|
|
116
|
+
max_number_of_results: Optional maximum number of log lines to return
|
|
117
|
+
log_text_filter: Optional text filter to search for in logs
|
|
118
|
+
model_id: The model ID. This is the display name(identifier), not the UUID.
|
|
119
|
+
model_group_name: The model group name.
|
|
120
|
+
|
|
121
|
+
Returns:
|
|
122
|
+
ReadLogsResponse containing the log lines
|
|
123
|
+
|
|
124
|
+
Raises:
|
|
125
|
+
FrogmlException: If reading logs fails
|
|
126
|
+
"""
|
|
80
127
|
try:
|
|
128
|
+
model_runtime_source = ModelRuntimeSource(
|
|
129
|
+
build_id=build_id,
|
|
130
|
+
deployment_id=deployment_id,
|
|
131
|
+
model_id=model_id,
|
|
132
|
+
model_group_name=model_group_name,
|
|
133
|
+
)
|
|
134
|
+
|
|
81
135
|
response = self.read_logs(
|
|
82
|
-
source=LogSource(
|
|
83
|
-
model_runtime=ModelRuntimeSource(
|
|
84
|
-
build_id=build_id, deployment_id=deployment_id
|
|
85
|
-
)
|
|
86
|
-
),
|
|
136
|
+
source=LogSource(model_runtime=model_runtime_source),
|
|
87
137
|
before_offset=before_offset,
|
|
88
138
|
after_offset=after_offset,
|
|
89
139
|
log_text_filter=log_text_filter,
|
|
@@ -96,19 +146,41 @@ class LoggingClient:
|
|
|
96
146
|
|
|
97
147
|
def read_execution_models_logs(
|
|
98
148
|
self,
|
|
99
|
-
execution_id,
|
|
100
|
-
before_offset=None,
|
|
101
|
-
after_offset=None,
|
|
102
|
-
max_number_of_results=None,
|
|
103
|
-
log_text_filter=None,
|
|
149
|
+
execution_id: str,
|
|
150
|
+
before_offset: Optional[str] = None,
|
|
151
|
+
after_offset: Optional[str] = None,
|
|
152
|
+
max_number_of_results: Optional[int] = None,
|
|
153
|
+
log_text_filter: Optional[str] = None,
|
|
154
|
+
model_id: Optional[str] = None,
|
|
155
|
+
model_group_name: Optional[str] = None,
|
|
104
156
|
) -> ReadLogsResponse:
|
|
157
|
+
"""
|
|
158
|
+
Read logs for a model inference execution (batch job).
|
|
159
|
+
|
|
160
|
+
Args:
|
|
161
|
+
execution_id: The execution/inference job ID to fetch logs for
|
|
162
|
+
before_offset: Optional offset to read logs before this point
|
|
163
|
+
after_offset: Optional offset to read logs after this point
|
|
164
|
+
max_number_of_results: Optional maximum number of log lines to return
|
|
165
|
+
log_text_filter: Optional text filter to search for in logs
|
|
166
|
+
model_id: The model ID. This is the display name(identifier), not the UUID.
|
|
167
|
+
model_group_name: The model group name.
|
|
168
|
+
|
|
169
|
+
Returns:
|
|
170
|
+
ReadLogsResponse containing the log lines
|
|
171
|
+
|
|
172
|
+
Raises:
|
|
173
|
+
FrogmlException: If reading logs fails
|
|
174
|
+
"""
|
|
105
175
|
try:
|
|
176
|
+
inference_execution_source = InferenceExecutionSource(
|
|
177
|
+
inference_job_id=execution_id,
|
|
178
|
+
model_id=model_id,
|
|
179
|
+
model_group_name=model_group_name,
|
|
180
|
+
)
|
|
181
|
+
|
|
106
182
|
response = self.read_logs(
|
|
107
|
-
source=LogSource(
|
|
108
|
-
inference_execution=InferenceExecutionSource(
|
|
109
|
-
inference_job_id=execution_id
|
|
110
|
-
)
|
|
111
|
-
),
|
|
183
|
+
source=LogSource(inference_execution=inference_execution_source),
|
|
112
184
|
before_offset=before_offset,
|
|
113
185
|
after_offset=after_offset,
|
|
114
186
|
log_text_filter=log_text_filter,
|
|
@@ -122,12 +194,25 @@ class LoggingClient:
|
|
|
122
194
|
@grpc_try_catch_wrapper("Failed to read logs request")
|
|
123
195
|
def read_logs(
|
|
124
196
|
self,
|
|
125
|
-
source,
|
|
126
|
-
before_offset,
|
|
127
|
-
after_offset,
|
|
128
|
-
max_number_of_results,
|
|
129
|
-
log_text_filter,
|
|
197
|
+
source: LogSource,
|
|
198
|
+
before_offset: Optional[str],
|
|
199
|
+
after_offset: Optional[str],
|
|
200
|
+
max_number_of_results: Optional[int],
|
|
201
|
+
log_text_filter: Optional[str],
|
|
130
202
|
) -> ReadLogsResponse:
|
|
203
|
+
"""
|
|
204
|
+
Low-level method to read logs from any source.
|
|
205
|
+
|
|
206
|
+
Args:
|
|
207
|
+
source: The log source to read from
|
|
208
|
+
before_offset: Optional offset to read logs before this point
|
|
209
|
+
after_offset: Optional offset to read logs after this point
|
|
210
|
+
max_number_of_results: Optional maximum number of log lines to return
|
|
211
|
+
log_text_filter: Optional text filter to search for in logs
|
|
212
|
+
|
|
213
|
+
Returns:
|
|
214
|
+
ReadLogsResponse containing the log lines
|
|
215
|
+
"""
|
|
131
216
|
response: ReadLogsResponse = self._logging_service.ReadLogs(
|
|
132
217
|
ReadLogsRequest(
|
|
133
218
|
source=source,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from .client import ModelDeploymentManagerClient
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
from dependency_injector.wiring import Provide
|
|
2
|
+
from frogml._proto.com.jfrog.ml.model.deployment.v1.deployment_pb2 import (
|
|
3
|
+
Deployment,
|
|
4
|
+
ModelDeploymentInformation,
|
|
5
|
+
MultipleEnvironmentDeployment,
|
|
6
|
+
)
|
|
7
|
+
from frogml._proto.com.jfrog.ml.model.deployment.v1.deployment_service_pb2 import (
|
|
8
|
+
DeploymentIds,
|
|
9
|
+
DeploymentIdToDeploymentSpecMap,
|
|
10
|
+
DeployModelRequest,
|
|
11
|
+
EditModelDeploymentRequest,
|
|
12
|
+
GetModelDeploymentResponse,
|
|
13
|
+
ListModelDeploymentsRequest,
|
|
14
|
+
ListModelDeploymentsResponse,
|
|
15
|
+
UndeployModelRequest,
|
|
16
|
+
)
|
|
17
|
+
from frogml._proto.com.jfrog.ml.model.deployment.v1.deployment_service_pb2_grpc import (
|
|
18
|
+
ModelDeploymentServiceStub,
|
|
19
|
+
)
|
|
20
|
+
from frogml._proto.com.jfrog.ml.model.deployment.v1.model_artifact_identifier_pb2 import (
|
|
21
|
+
ModelArtifactIdentifier,
|
|
22
|
+
ModelBasedArtifactIdentifier,
|
|
23
|
+
)
|
|
24
|
+
from frogml._proto.com.jfrog.ml.model.deployment.v1.model_deployment_brief_pb2 import (
|
|
25
|
+
ModelDeploymentBrief,
|
|
26
|
+
)
|
|
27
|
+
from frogml._proto.com.jfrog.ml.model.deployment.v1.model_deployment_filter_pb2 import (
|
|
28
|
+
ModelDeploymentFilter,
|
|
29
|
+
)
|
|
30
|
+
from frogml._proto.qwak.deployment.deployment_service_pb2 import GetDeploymentRequest
|
|
31
|
+
from frogml.core.inner.di_configuration import FrogmlContainer
|
|
32
|
+
from frogml.core.inner.tool.grpc.grpc_try_wrapping import grpc_try_catch_wrapper
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class ModelDeploymentManagerClient:
|
|
36
|
+
def __init__(self, grpc_channel=Provide[FrogmlContainer.core_grpc_channel]):
|
|
37
|
+
self.__client = ModelDeploymentServiceStub(grpc_channel)
|
|
38
|
+
|
|
39
|
+
@grpc_try_catch_wrapper("Failed to deploy LLM for model {model_id}")
|
|
40
|
+
def deploy_llm(
|
|
41
|
+
self,
|
|
42
|
+
model_id: str,
|
|
43
|
+
model_group_id: str,
|
|
44
|
+
image_path: str,
|
|
45
|
+
environment_deployment_configuration: dict[str, Deployment],
|
|
46
|
+
) -> None:
|
|
47
|
+
llm_model_identifier = ModelBasedArtifactIdentifier(
|
|
48
|
+
model_group_id=model_group_id,
|
|
49
|
+
model_id=model_id,
|
|
50
|
+
image_path=image_path,
|
|
51
|
+
)
|
|
52
|
+
model_artifact_identifier = ModelArtifactIdentifier(
|
|
53
|
+
model_based_artifact_id=llm_model_identifier
|
|
54
|
+
)
|
|
55
|
+
multiple_environment_deployment = MultipleEnvironmentDeployment(
|
|
56
|
+
model_artifact_identifier=model_artifact_identifier,
|
|
57
|
+
deployments=environment_deployment_configuration,
|
|
58
|
+
)
|
|
59
|
+
request = DeployModelRequest(
|
|
60
|
+
multiple_environment_deployment=multiple_environment_deployment
|
|
61
|
+
)
|
|
62
|
+
|
|
63
|
+
self.__client.DeployModel(request)
|
|
64
|
+
|
|
65
|
+
@grpc_try_catch_wrapper("Failed to undeploy")
|
|
66
|
+
def undeploy(self, deployment_ids: list[str]) -> None:
|
|
67
|
+
deployment_ids_proto = DeploymentIds(deployment_id=deployment_ids)
|
|
68
|
+
request = UndeployModelRequest(deployment_ids=deployment_ids_proto)
|
|
69
|
+
self.__client.UndeployModel(request)
|
|
70
|
+
|
|
71
|
+
@grpc_try_catch_wrapper("Failed to edit deployments")
|
|
72
|
+
def edit_deployments(
|
|
73
|
+
self, deployment_id_to_spec_map: dict[str, Deployment]
|
|
74
|
+
) -> None:
|
|
75
|
+
deployments_map = DeploymentIdToDeploymentSpecMap(
|
|
76
|
+
deployments=deployment_id_to_spec_map
|
|
77
|
+
)
|
|
78
|
+
request = EditModelDeploymentRequest(
|
|
79
|
+
deployment_id_to_deployment_spec_map=deployments_map
|
|
80
|
+
)
|
|
81
|
+
self.__client.EditModelDeployment(request)
|
|
82
|
+
|
|
83
|
+
@grpc_try_catch_wrapper("Failed to list deployments")
|
|
84
|
+
def list_deployments(
|
|
85
|
+
self,
|
|
86
|
+
model_deployment_filter: ModelDeploymentFilter = None,
|
|
87
|
+
) -> list[ModelDeploymentBrief]:
|
|
88
|
+
if model_deployment_filter is None:
|
|
89
|
+
model_deployment_filter = ModelDeploymentFilter()
|
|
90
|
+
|
|
91
|
+
request = ListModelDeploymentsRequest(
|
|
92
|
+
model_deployment_filter=model_deployment_filter
|
|
93
|
+
)
|
|
94
|
+
response: ListModelDeploymentsResponse = self.__client.ListModelDeployments(
|
|
95
|
+
request
|
|
96
|
+
)
|
|
97
|
+
return list(response.model_deployment_brief)
|
|
98
|
+
|
|
99
|
+
@grpc_try_catch_wrapper("Failed to get deployment with ID {deployment_id}")
|
|
100
|
+
def get_deployment(self, deployment_id: str) -> ModelDeploymentInformation:
|
|
101
|
+
request = GetDeploymentRequest(deployment_id=deployment_id)
|
|
102
|
+
response: GetModelDeploymentResponse = self.__client.GetModelDeployment(request)
|
|
103
|
+
return response.model_deployment_information
|
|
@@ -1,4 +1,34 @@
|
|
|
1
|
-
frogml/__init__.py,sha256=
|
|
1
|
+
frogml/__init__.py,sha256=Iha2EFEpm8UEhQZulMOPWPSHZKElxWm4XT9dGhtHKck,741
|
|
2
|
+
frogml/_proto/com/jfrog/ml/model/deployment/v1/auto_scaling_pb2.py,sha256=-SD6RYgn5DFBLlwTpH9YkV8aW_zYymBI68Y-12Fn0I0,4193
|
|
3
|
+
frogml/_proto/com/jfrog/ml/model/deployment/v1/auto_scaling_pb2.pyi,sha256=s0rdjIYw_dOfmuentpri79ls5dC3NqoUq__-XeavaXE,9688
|
|
4
|
+
frogml/_proto/com/jfrog/ml/model/deployment/v1/auto_scaling_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
5
|
+
frogml/_proto/com/jfrog/ml/model/deployment/v1/deployment_pb2.py,sha256=c1cvdGhas7PyjFa_qWgp8cQBT9FJJatDXpLFaAVqbIo,6441
|
|
6
|
+
frogml/_proto/com/jfrog/ml/model/deployment/v1/deployment_pb2.pyi,sha256=NMwN-k3r1Y3Z_2yrUvfTQvO0rywEMIsyXTpkroNy6X8,12950
|
|
7
|
+
frogml/_proto/com/jfrog/ml/model/deployment/v1/deployment_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
8
|
+
frogml/_proto/com/jfrog/ml/model/deployment/v1/deployment_service_pb2.py,sha256=MtpCW3ZPBYrpIhMC0XMJRCGDVpI-Ak_jeKQ9DGqYaUQ,6286
|
|
9
|
+
frogml/_proto/com/jfrog/ml/model/deployment/v1/deployment_service_pb2.pyi,sha256=srnR6yTrjo8tnqAmnhxXEbf5EKD-dxMnfXZ-rABtmaY,9569
|
|
10
|
+
frogml/_proto/com/jfrog/ml/model/deployment/v1/deployment_service_pb2_grpc.py,sha256=qvF_o89cqJ9Jz_nZs3n72p_pY2Bo75Sq99ObFsx4Nsw,11599
|
|
11
|
+
frogml/_proto/com/jfrog/ml/model/deployment/v1/environment_variables_configuration_pb2.py,sha256=RPbECbR8DOWfq37aSYm4oWJhlVd-IWKGYEIhjmJ5VlU,2422
|
|
12
|
+
frogml/_proto/com/jfrog/ml/model/deployment/v1/environment_variables_configuration_pb2.pyi,sha256=z3FDspmH0Bfd15x_KnzPDRvBdVbxCPxIz7ckC5wqJPM,3860
|
|
13
|
+
frogml/_proto/com/jfrog/ml/model/deployment/v1/environment_variables_configuration_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
14
|
+
frogml/_proto/com/jfrog/ml/model/deployment/v1/model_artifact_identifier_pb2.py,sha256=7TCaIZwY3cYX5JKUA1NR8WmkRH0CtLipi4kiaTjeL9E,2331
|
|
15
|
+
frogml/_proto/com/jfrog/ml/model/deployment/v1/model_artifact_identifier_pb2.pyi,sha256=4FFrif0OZFR18xXKuEpZC7sibeKNMMXM49Y-J7VXyGA,4529
|
|
16
|
+
frogml/_proto/com/jfrog/ml/model/deployment/v1/model_artifact_identifier_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
17
|
+
frogml/_proto/com/jfrog/ml/model/deployment/v1/model_deployment_brief_pb2.py,sha256=r1nMzNPG0MktLtRPTFFif66qEHL0VGHuAoiM2ffXVlk,2306
|
|
18
|
+
frogml/_proto/com/jfrog/ml/model/deployment/v1/model_deployment_brief_pb2.pyi,sha256=H-XA4wfh7t8PLYtfbPINIbWea43ubn8tbFdPN9IjLKs,2628
|
|
19
|
+
frogml/_proto/com/jfrog/ml/model/deployment/v1/model_deployment_brief_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
20
|
+
frogml/_proto/com/jfrog/ml/model/deployment/v1/model_deployment_filter_pb2.py,sha256=6qhYmErXArD2rOoKeqnlvjwC-6dJo8k0HUcTTMW4oQQ,3889
|
|
21
|
+
frogml/_proto/com/jfrog/ml/model/deployment/v1/model_deployment_filter_pb2.pyi,sha256=gdxw9GSXh-Msfe0ifVSmER-7kHtcU3u0RNCjb93YY-Y,9804
|
|
22
|
+
frogml/_proto/com/jfrog/ml/model/deployment/v1/model_deployment_filter_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
23
|
+
frogml/_proto/com/jfrog/ml/model/deployment/v1/probes_configuration_pb2.py,sha256=xn_xW0y6JJ0TjyLaJBDVE7UwHO22tQr3nphz7xLGaSM,1833
|
|
24
|
+
frogml/_proto/com/jfrog/ml/model/deployment/v1/probes_configuration_pb2.pyi,sha256=t_EkUDqnMHgXr0ft9IXyfYbIR4vXR3yGzVp-cG0P0G4,2578
|
|
25
|
+
frogml/_proto/com/jfrog/ml/model/deployment/v1/probes_configuration_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
26
|
+
frogml/_proto/com/jfrog/ml/model/deployment/v1/realtime_deployment_pb2.py,sha256=PhvTR0wld0M7fQFbmQ2vWplyHIDThaM_ZmVHNqcQBCc,1799
|
|
27
|
+
frogml/_proto/com/jfrog/ml/model/deployment/v1/realtime_deployment_pb2.pyi,sha256=tGb_ZZJuwMWmfKBiONnhwxREuREmDpV0x4Ya4DQaqos,2234
|
|
28
|
+
frogml/_proto/com/jfrog/ml/model/deployment/v1/realtime_deployment_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
29
|
+
frogml/_proto/com/jfrog/ml/model/deployment/v1/resource_configuration_pb2.py,sha256=d3oCCHJywlvPD91GiTB_RveXoUhHyyJOkNJ5d5tGl58,1435
|
|
30
|
+
frogml/_proto/com/jfrog/ml/model/deployment/v1/resource_configuration_pb2.pyi,sha256=FRhxd3AhNEICHElc8iv0gSnRH2zqmIw7Yd98tLWaR78,1253
|
|
31
|
+
frogml/_proto/com/jfrog/ml/model/deployment/v1/resource_configuration_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
2
32
|
frogml/_proto/jfml/hosting_gateway/v1/build_upload_url_pb2.py,sha256=pY7-QarLJWbL9uNmZ69RfE7IPVzwpVIhtd3A0wztSNY,1942
|
|
3
33
|
frogml/_proto/jfml/hosting_gateway/v1/build_upload_url_pb2.pyi,sha256=505I4uUrCmv2hsUw2H5eT-nlkNOCQOWodpvEkH2fHIo,3073
|
|
4
34
|
frogml/_proto/jfml/hosting_gateway/v1/build_upload_url_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
@@ -530,8 +560,8 @@ frogml/_proto/qwak/logging/log_line_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHD
|
|
|
530
560
|
frogml/_proto/qwak/logging/log_reader_service_pb2.py,sha256=mGzDgASTP_oJlVcPkId5JxjhpUbh7O_CQ9xbcQRUOXI,2561
|
|
531
561
|
frogml/_proto/qwak/logging/log_reader_service_pb2.pyi,sha256=KdIIgfFCw0I-51d2dEMZy3zVgkGw4tZNF26WcR5yNz4,3451
|
|
532
562
|
frogml/_proto/qwak/logging/log_reader_service_pb2_grpc.py,sha256=5iwiKKEWLCgNl6KyUanuUFpsg-159HgiF6ugMvGgW9k,2833
|
|
533
|
-
frogml/_proto/qwak/logging/log_source_pb2.py,sha256=
|
|
534
|
-
frogml/_proto/qwak/logging/log_source_pb2.pyi,sha256=
|
|
563
|
+
frogml/_proto/qwak/logging/log_source_pb2.py,sha256=7wzXkpjxW6tEYJ-hZJ1s_7eB1G5m2K2_WEjL8NtyfqY,6971
|
|
564
|
+
frogml/_proto/qwak/logging/log_source_pb2.pyi,sha256=9ekSIfto3LP-e2pyVwHjx_ewbDxaHpQf_siyT4zdP_4,20017
|
|
535
565
|
frogml/_proto/qwak/logging/log_source_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
536
566
|
frogml/_proto/qwak/model_descriptor/open_ai_descriptor_pb2.py,sha256=-4tcS6KSdpUK3knQ9YUyQTsMcHFaPTQ3A8kHPOLVPSQ,4203
|
|
537
567
|
frogml/_proto/qwak/model_descriptor/open_ai_descriptor_pb2.pyi,sha256=7ZaPgYKgRhZvq9LMaj7jWlQxKhQ9fRUDK86SaJvMuu0,11801
|
|
@@ -542,9 +572,9 @@ frogml/_proto/qwak/model_group/model_group_pb2_grpc.py,sha256=YgDt3DtagEdZ7UtxcP
|
|
|
542
572
|
frogml/_proto/qwak/model_group/model_group_repository_details_pb2.py,sha256=BxaVjDayd9h5Va2ZId3pNPeJFAqVXb8TJHIWmYsURN4,3806
|
|
543
573
|
frogml/_proto/qwak/model_group/model_group_repository_details_pb2.pyi,sha256=3oCsYmmfvBjGkA1nRcx2cg11WNr40uuR3gAWXC7Wz2I,7245
|
|
544
574
|
frogml/_proto/qwak/model_group/model_group_repository_details_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
545
|
-
frogml/_proto/qwak/models/models_pb2.py,sha256=
|
|
546
|
-
frogml/_proto/qwak/models/models_pb2.pyi,sha256=
|
|
547
|
-
frogml/_proto/qwak/models/models_pb2_grpc.py,sha256=
|
|
575
|
+
frogml/_proto/qwak/models/models_pb2.py,sha256=jtw5KSbMwX5q6NVhfA5eblpJIANVavURyYvmXYvFVr0,19427
|
|
576
|
+
frogml/_proto/qwak/models/models_pb2.pyi,sha256=c8e6l8fxCXXJmlyV9GSZ7PTThelw79sCYiEpMKaMRZE,43564
|
|
577
|
+
frogml/_proto/qwak/models/models_pb2_grpc.py,sha256=7HZ5RwIk9I0MOHMOvZhvPFq_UIKwVdjZ79N3h-dlk8o,25406
|
|
548
578
|
frogml/_proto/qwak/models/models_query_pb2.py,sha256=ZDEx_w4JgAL1q2wNOq5qkXiO5DctBgVRWbjrpOmOzbo,2880
|
|
549
579
|
frogml/_proto/qwak/models/models_query_pb2.pyi,sha256=JEWkO0TXbGD2uKElgZB6VNPfYoq99GQ3Nj3jHObBQ2s,7490
|
|
550
580
|
frogml/_proto/qwak/models/models_query_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
@@ -656,7 +686,7 @@ frogml/core/clients/automation_management/client.py,sha256=Dk6SsZGMLaVDLLzvFBysL
|
|
|
656
686
|
frogml/core/clients/autoscaling/__init__.py,sha256=A-zuZOWaZf16NjnpX38204m730c5Lde491KaXneGirE,38
|
|
657
687
|
frogml/core/clients/autoscaling/client.py,sha256=d1BoUH4hBiqoSR6ZM2_Ds6H7gV9HZPM2IIYNDbjPGgY,1299
|
|
658
688
|
frogml/core/clients/batch_job_management/__init__.py,sha256=zywxYf2JupkIWnGVB2C6ugZs5CrOdxTPrksD5P6uQu4,211
|
|
659
|
-
frogml/core/clients/batch_job_management/client.py,sha256=
|
|
689
|
+
frogml/core/clients/batch_job_management/client.py,sha256=TBN_9MkHXW342PLRepUckuQmA_gLPPrq5VavkkDtnCQ,22979
|
|
660
690
|
frogml/core/clients/batch_job_management/executions_config.py,sha256=tyQbNiIAo3U4t_vyQp8nY17U0oQIyuE5GLW5WqhDxjA,7045
|
|
661
691
|
frogml/core/clients/batch_job_management/results.py,sha256=nrFGZ3y538FBhej94CYV4cwqQssK1aUQOLGubYdQVrc,1846
|
|
662
692
|
frogml/core/clients/build_orchestrator/__init__.py,sha256=ReW7Lbjws06MbVlCTRdsymDZiS2CKuczXIZ1xnPKSdg,105
|
|
@@ -691,7 +721,9 @@ frogml/core/clients/kube_deployment_captain/client.py,sha256=la4V7WsVL1z4zuLQtPZ
|
|
|
691
721
|
frogml/core/clients/location_discovery/__init__.py,sha256=sqGQ75YHFE6nvOcir38fykUUmAa6cFEIze8PJYgYWRc,44
|
|
692
722
|
frogml/core/clients/location_discovery/client.py,sha256=ZcBbbLqzZ9E7oLyamBTLTpp611LldhfFOSkzWroyIQg,2895
|
|
693
723
|
frogml/core/clients/logging_client/__init__.py,sha256=1OCHnigQBYThBwGbxCreYA0BgP0HcuLFzNEWd3Yxh-c,34
|
|
694
|
-
frogml/core/clients/logging_client/client.py,sha256=
|
|
724
|
+
frogml/core/clients/logging_client/client.py,sha256=ZTRRPrcM2cqrZX9T3DvIr0YICrhDK91P4CDP-ei_ZjQ,8599
|
|
725
|
+
frogml/core/clients/model_deployment_manager/__init__.py,sha256=Kp6FTZzsXjvfoCLz8kurr7AIypRGIIdUek7_SBCt7f4,49
|
|
726
|
+
frogml/core/clients/model_deployment_manager/client.py,sha256=VLPgE3WDZOOg9y_mYZSKKYqVSi866vJipvAi5aOlDng,4135
|
|
695
727
|
frogml/core/clients/model_group_management/__init__.py,sha256=f-nExP4vGWoWMUrRstY8QdtPqXnbsl2Ux0KfFkvGBkg,47
|
|
696
728
|
frogml/core/clients/model_group_management/client.py,sha256=F8YCbfyphcljb8WxpeY7H7wnPpksyaKQ2ZOKi03RU6M,2016
|
|
697
729
|
frogml/core/clients/model_management/__init__.py,sha256=vjWVP8MjmK4_A70WOgJqa6x24AeLK-ABjGJtogGzw9w,43
|
|
@@ -1123,7 +1155,7 @@ frogml_services_mock/mocks/features_operator_v3_service.py,sha256=v6XdUpiI5T5mog
|
|
|
1123
1155
|
frogml_services_mock/mocks/features_set_state_service_api.py,sha256=YaF3X12gCFDKFYFUAH3ZsK2jjbxU1aYYyExwe-F1Zdg,2293
|
|
1124
1156
|
frogml_services_mock/mocks/feedback_service.py,sha256=yHItKZnlrN75F7D2rIGVrffipRaBCyMIvxK5ZmMVckE,1142
|
|
1125
1157
|
frogml_services_mock/mocks/file_versioning_service.py,sha256=PF_XyipSF5I8SfCNDYv298p3lMCizgDTZORlSuo4RYQ,2609
|
|
1126
|
-
frogml_services_mock/mocks/frogml_mocks.py,sha256=
|
|
1158
|
+
frogml_services_mock/mocks/frogml_mocks.py,sha256=16-x7m3pHl9C51SbuVYwDWmBWv4vzEAwEjfykQaSlfM,6336
|
|
1127
1159
|
frogml_services_mock/mocks/fs_offline_serving_service.py,sha256=rzxL_G8t3PIM-IFuchqkHuUUzlOZfiP5A5IMSeSQynA,2096
|
|
1128
1160
|
frogml_services_mock/mocks/instance_template_management_service.py,sha256=AZ-QCzrx4d4g5E4XIPqFNhOJPBwb4S90mfVzsn6oNe4,4766
|
|
1129
1161
|
frogml_services_mock/mocks/integration_management_service.py,sha256=cw45A8EadycTyq3Okx1sgcuWZ-Lz2iPMRin6f4e_0Ws,2775
|
|
@@ -1133,6 +1165,7 @@ frogml_services_mock/mocks/job_registry_service_api.py,sha256=gbytsg5mc5yjOYE_LP
|
|
|
1133
1165
|
frogml_services_mock/mocks/kube_captain_service_api.py,sha256=0zRthbKSWeIl1qj16tqTg4jiTbUZoJRyPpEOXiESK2A,1598
|
|
1134
1166
|
frogml_services_mock/mocks/location_discovery_service_api.py,sha256=i_alD-qEZ1SsIFgQew9gibGN47MrPhTfMqnxapJhTbo,3685
|
|
1135
1167
|
frogml_services_mock/mocks/logging_service.py,sha256=-1FrXhGO5_NNUW7pzajTwGSf1soQC1feLuMwkOAXD7A,7389
|
|
1168
|
+
frogml_services_mock/mocks/model_deployment_manager_service_mock.py,sha256=83BtdT3FLhewmEjvqMLw7hrrKOxp_lLe_hlDIZ72ukI,9743
|
|
1136
1169
|
frogml_services_mock/mocks/model_group_management_service.py,sha256=tEtBQPExusWI1NiigqEToSDIAforCP1DpVCGXiqfppc,1540
|
|
1137
1170
|
frogml_services_mock/mocks/model_management_service.py,sha256=3byRc-8Fb5WnXTrWkHj1-S6RA2yfqK1yzX-7fqq_ZNk,4169
|
|
1138
1171
|
frogml_services_mock/mocks/model_version_manager_service.py,sha256=XzRnAnn0VMY5hW8jP1ngWF-6OYIq8OgatZQ79JyxeMQ,3759
|
|
@@ -1144,9 +1177,9 @@ frogml_services_mock/mocks/system_secret_service.py,sha256=ceOR1nfQOGW4ZBcry4Q_l
|
|
|
1144
1177
|
frogml_services_mock/mocks/user_application_instance_service_api.py,sha256=Es3s9MnutY0Qsd_FOq_ctKvT-3wHn7-fxah1fvr5Jv4,4100
|
|
1145
1178
|
frogml_services_mock/mocks/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1146
1179
|
frogml_services_mock/mocks/utils/exception_handlers.py,sha256=k_8mez3cwjNjKE9yGQRJUuK95qNQyk_slotIF08IIEE,308
|
|
1147
|
-
frogml_services_mock/services_mock.py,sha256=
|
|
1180
|
+
frogml_services_mock/services_mock.py,sha256=hciz4Q2NvjT84DE08sgxfVVDELfD4hitqgoDrZugcjg,19961
|
|
1148
1181
|
frogml_services_mock/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1149
1182
|
frogml_services_mock/utils/service_utils.py,sha256=ZlB0CnB1J6oBn6_m7fQO2U8tKoboHdUa6ljjkRMYNXU,265
|
|
1150
|
-
frogml-1.2.
|
|
1151
|
-
frogml-1.2.
|
|
1152
|
-
frogml-1.2.
|
|
1183
|
+
frogml-1.2.41.dist-info/METADATA,sha256=-RAwoyHVI5VO_IY9sSKBZXVs9EJzKAd6qIHhXxKdZIc,5599
|
|
1184
|
+
frogml-1.2.41.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
1185
|
+
frogml-1.2.41.dist-info/RECORD,,
|
|
@@ -56,7 +56,9 @@ from frogml_services_mock.mocks.integration_management_service import (
|
|
|
56
56
|
from frogml_services_mock.mocks.internal_build_orchestrator_service import (
|
|
57
57
|
InternalBuildOrchestratorServiceMock,
|
|
58
58
|
)
|
|
59
|
-
from frogml_services_mock.mocks.jfrog_tenant_info_service_mock import
|
|
59
|
+
from frogml_services_mock.mocks.jfrog_tenant_info_service_mock import (
|
|
60
|
+
JFrogTenantInfoServiceMock,
|
|
61
|
+
)
|
|
60
62
|
from frogml_services_mock.mocks.job_registry_service_api import (
|
|
61
63
|
JobRegistryServiceApiMock,
|
|
62
64
|
)
|
|
@@ -67,15 +69,20 @@ from frogml_services_mock.mocks.location_discovery_service_api import (
|
|
|
67
69
|
LocationDiscoveryServiceApiMock,
|
|
68
70
|
)
|
|
69
71
|
from frogml_services_mock.mocks.logging_service import LoggingServiceApiMock
|
|
70
|
-
from frogml_services_mock.mocks.
|
|
72
|
+
from frogml_services_mock.mocks.model_deployment_manager_service_mock import (
|
|
73
|
+
ModelDeploymentManagerMock,
|
|
74
|
+
)
|
|
75
|
+
from frogml_services_mock.mocks.model_group_management_service import (
|
|
76
|
+
ModelGroupManagementServiceMock,
|
|
77
|
+
)
|
|
71
78
|
from frogml_services_mock.mocks.model_management_service import (
|
|
72
79
|
ModelsManagementServiceMock,
|
|
73
80
|
)
|
|
74
81
|
from frogml_services_mock.mocks.model_version_manager_service import (
|
|
75
82
|
ModelVersionManagerServiceMock,
|
|
76
83
|
)
|
|
77
|
-
from frogml_services_mock.mocks.repository_service_mock import RepositoryServiceMock
|
|
78
84
|
from frogml_services_mock.mocks.project_manager_service import ProjectManagerServiceMock
|
|
85
|
+
from frogml_services_mock.mocks.repository_service_mock import RepositoryServiceMock
|
|
79
86
|
from frogml_services_mock.mocks.secret_service import SecretServiceMock
|
|
80
87
|
from frogml_services_mock.mocks.self_service_user_service import (
|
|
81
88
|
SelfServiceUserServiceMock,
|
|
@@ -127,3 +134,4 @@ class FrogmlMocks:
|
|
|
127
134
|
repository_service: RepositoryServiceMock
|
|
128
135
|
location_discovery_service: LocationDiscoveryServiceApiMock
|
|
129
136
|
jfrog_tenant_info_service: JFrogTenantInfoServiceMock
|
|
137
|
+
model_deployment_manager_mock: ModelDeploymentManagerMock
|