frogml-core 0.0.14__py3-none-any.whl → 0.0.16__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_core/__init__.py CHANGED
@@ -1,7 +1,7 @@
1
1
  """Top-level package for frogml."""
2
2
 
3
3
  __author__ = "jfrog"
4
- __version__ = "0.0.14"
4
+ __version__ = "0.0.16"
5
5
 
6
6
  from frogml_core.inner.di_configuration import wire_dependencies
7
7
  from frogml_core.model.model_version_tracking import ( # noqa: F401,E501
@@ -1,11 +1,15 @@
1
1
  from platform import python_version
2
+ from typing import List, Optional, Dict, Union, Tuple
2
3
 
3
4
  from dependency_injector.wiring import Provide
5
+ from frogml_storage.entity_manifest import Artifact
4
6
  from grpc import RpcError
5
7
 
6
8
  from frogml_core.exceptions import FrogmlException
7
9
  from frogml_core.inner.di_configuration import FrogmlContainer
8
10
  from frogml_core.utils.model_utils import get_model_id_from_model_name
11
+ from frogml_core.utils.proto_utils import ProtoUtils
12
+ from frogml_proto.jfml.model_version.v1.artifact_pb2 import Artifact as ArtifactProto
9
13
  from frogml_proto.jfml.model_version.v1.model_repository_spec_pb2 import (
10
14
  ModelRepositorySpec,
11
15
  )
@@ -21,7 +25,12 @@ from frogml_proto.jfml.model_version.v1.model_version_manager_service_pb2 import
21
25
  from frogml_proto.jfml.model_version.v1.model_version_manager_service_pb2_grpc import (
22
26
  ModelVersionManagerServiceStub,
23
27
  )
24
- from frogml_proto.jfml.model_version.v1.model_version_pb2 import ModelVersionSpec
28
+ from frogml_proto.jfml.model_version.v1.model_version_pb2 import (
29
+ ModelVersionSpec,
30
+ MlBomData,
31
+ ParameterValue,
32
+ MetricValue,
33
+ )
25
34
 
26
35
 
27
36
  class ModelVersionManagerClient:
@@ -33,14 +42,54 @@ class ModelVersionManagerClient:
33
42
  self.__model_version_manager_stub = ModelVersionManagerServiceStub(grpc_channel)
34
43
 
35
44
  @staticmethod
45
+ def __build_mlbom_data_kwargs(
46
+ model_artifact: List[ArtifactProto],
47
+ code_artifacts: Optional[List[ArtifactProto]] = None,
48
+ dependency_artifacts: Optional[List[ArtifactProto]] = None,
49
+ metrics: Optional[Dict[str, str]] = None,
50
+ parameters: Optional[Dict[str, str]] = None,
51
+ ) -> Dict[
52
+ str, Union[List[ArtifactProto], Dict[str, Union[ParameterValue, MetricValue]]]
53
+ ]:
54
+ kwargs = {"model_artifact": model_artifact}
55
+
56
+ if dependency_artifacts:
57
+ kwargs["dependency_artifacts"] = dependency_artifacts
58
+
59
+ if code_artifacts:
60
+ kwargs["code_artifacts"] = code_artifacts
61
+
62
+ if parameters:
63
+ kwargs["parameters"] = {
64
+ key: ParameterValue(value=str(value))
65
+ for key, value in parameters.items()
66
+ }
67
+
68
+ if metrics:
69
+ kwargs["metrics"] = {
70
+ key: MetricValue(value=str(value)) for key, value in metrics.items()
71
+ }
72
+
73
+ return kwargs
74
+
36
75
  def __build_create_model_version_request(
76
+ self,
37
77
  project_key: str,
38
78
  repository_key: str,
39
79
  model_name: str,
40
80
  model_version_name: str,
41
81
  model_version_framework: ModelVersionFramework,
42
82
  dry_run: bool,
83
+ model_artifacts: List[ArtifactProto],
84
+ dependency_artifacts: Optional[List[ArtifactProto]] = None,
85
+ code_artifacts: Optional[List[ArtifactProto]] = None,
86
+ parameters: Optional[Dict[str, str]] = None,
87
+ metrics: Optional[Dict[str, str]] = None,
43
88
  ) -> CreateModelVersionRequest:
89
+ kwargs: dict = self.__build_mlbom_data_kwargs(
90
+ model_artifacts, code_artifacts, dependency_artifacts, metrics, parameters
91
+ )
92
+
44
93
  return CreateModelVersionRequest(
45
94
  dry_run=dry_run,
46
95
  model_version=ModelVersionSpec(
@@ -54,6 +103,7 @@ class ModelVersionManagerClient:
54
103
  framework=model_version_framework,
55
104
  python_version=python_version(),
56
105
  ),
106
+ ml_bom_data=MlBomData(**kwargs),
57
107
  )
58
108
 
59
109
  def validate_create_model_version(
@@ -63,8 +113,21 @@ class ModelVersionManagerClient:
63
113
  model_name: str,
64
114
  model_version_name: str,
65
115
  model_version_framework: ModelVersionFramework,
116
+ model_artifact: List[Artifact],
117
+ dependency_artifacts: Optional[List[Artifact]] = None,
118
+ code_artifacts: Optional[List[Artifact]] = None,
119
+ parameters: Optional[Dict[str, str]] = None,
120
+ metrics: Optional[Dict[str, str]] = None,
66
121
  ):
67
122
  try:
123
+ (
124
+ code_artifacts_proto,
125
+ dependency_artifacts_proto,
126
+ model_artifact_proto,
127
+ ) = self.convert_artifacts(
128
+ model_artifact, dependency_artifacts, code_artifacts
129
+ )
130
+
68
131
  create_model_request = self.__build_create_model_version_request(
69
132
  project_key=project_key,
70
133
  repository_key=repository_key,
@@ -72,6 +135,11 @@ class ModelVersionManagerClient:
72
135
  model_version_name=model_version_name,
73
136
  model_version_framework=model_version_framework,
74
137
  dry_run=True,
138
+ model_artifacts=model_artifact_proto,
139
+ dependency_artifacts=dependency_artifacts_proto,
140
+ code_artifacts=code_artifacts_proto,
141
+ parameters=parameters,
142
+ metrics=metrics,
75
143
  )
76
144
  self.__model_version_manager_stub.CreateModelVersion(create_model_request)
77
145
  except RpcError as e:
@@ -89,8 +157,21 @@ class ModelVersionManagerClient:
89
157
  model_name: str,
90
158
  model_version_name: str,
91
159
  model_version_framework: ModelVersionFramework,
160
+ model_artifact: List[Artifact],
161
+ dependency_artifacts: Optional[List[Artifact]] = None,
162
+ code_artifacts: Optional[List[Artifact]] = None,
163
+ parameters: Optional[Dict[str, str]] = None,
164
+ metrics: Optional[Dict[str, str]] = None,
92
165
  ) -> CreateModelVersionResponse:
93
166
  try:
167
+ (
168
+ code_artifacts_proto,
169
+ dependency_artifacts_proto,
170
+ model_artifact_proto,
171
+ ) = self.convert_artifacts(
172
+ model_artifact, dependency_artifacts, code_artifacts
173
+ )
174
+
94
175
  create_model_request = self.__build_create_model_version_request(
95
176
  project_key=project_key,
96
177
  repository_key=repository_key,
@@ -98,6 +179,11 @@ class ModelVersionManagerClient:
98
179
  model_version_name=model_version_name,
99
180
  model_version_framework=model_version_framework,
100
181
  dry_run=False,
182
+ model_artifacts=model_artifact_proto,
183
+ dependency_artifacts=dependency_artifacts_proto,
184
+ code_artifacts=code_artifacts_proto,
185
+ parameters=parameters,
186
+ metrics=metrics,
101
187
  )
102
188
  create_model_version_response: CreateModelVersionResponse = (
103
189
  self.__model_version_manager_stub.CreateModelVersion(
@@ -114,6 +200,31 @@ class ModelVersionManagerClient:
114
200
  message = f"Failed to validate model version, details [{e}]"
115
201
  raise FrogmlException(message)
116
202
 
203
+ @staticmethod
204
+ def convert_artifacts(
205
+ model_artifact: List[Artifact],
206
+ dependency_artifacts: Optional[List[Artifact]] = None,
207
+ code_artifacts: Optional[List[Artifact]] = None,
208
+ ) -> Tuple[
209
+ Optional[List[ArtifactProto]],
210
+ Optional[List[ArtifactProto]],
211
+ List[ArtifactProto],
212
+ ]:
213
+ model_artifact_proto: List[
214
+ ArtifactProto
215
+ ] = ProtoUtils.convert_artifacts_to_artifacts_proto(model_artifact)
216
+ dependency_artifacts_proto = (
217
+ ProtoUtils.convert_artifacts_to_artifacts_proto(dependency_artifacts)
218
+ if dependency_artifacts
219
+ else None
220
+ )
221
+ code_artifacts_proto = (
222
+ ProtoUtils.convert_artifacts_to_artifacts_proto(code_artifacts)
223
+ if code_artifacts
224
+ else None
225
+ )
226
+ return code_artifacts_proto, dependency_artifacts_proto, model_artifact_proto
227
+
117
228
  def get_mlbom_by_model_version_id(
118
229
  self, model_version_id: str
119
230
  ) -> GetMlBomModelVersionByIdResponse:
@@ -1,3 +1,11 @@
1
+ from typing import List
2
+
3
+ from frogml_storage.entity_manifest import Artifact
4
+
5
+ from frogml_proto.jfml.model_version.v1.artifact_pb2 import (
6
+ Artifact as ArtifactProto,
7
+ Checksums as ChecksumsProto,
8
+ )
1
9
  from frogml_proto.jfml.model_version.v1.model_version_framework_pb2 import (
2
10
  ModelVersionFramework,
3
11
  CatboostFramework,
@@ -40,3 +48,16 @@ class ProtoUtils:
40
48
  raise ValueError(f"Format {serialization_format} is not supported yet")
41
49
 
42
50
  return ModelVersionFramework(**framework_to_define)
51
+
52
+ @staticmethod
53
+ def convert_artifacts_to_artifacts_proto(
54
+ artifacts: List[Artifact],
55
+ ) -> List[ArtifactProto]:
56
+ return [
57
+ ArtifactProto(
58
+ artifact_path=artifact.artifact_path,
59
+ size=artifact.size,
60
+ checksums=ChecksumsProto(sha2=artifact.checksums.sha2),
61
+ )
62
+ for artifact in artifacts
63
+ ]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: frogml-core
3
- Version: 0.0.14
3
+ Version: 0.0.16
4
4
  Summary: frogml Core contains the necessary objects and communication tools for using the Jfrog ml Platform
5
5
  License: Apache-2.0
6
6
  Keywords: mlops,ml,deployment,serving,model
@@ -1,4 +1,4 @@
1
- frogml_core/__init__.py,sha256=693__WVbTmV7KkdDLdXWTduAveqtsa7sTsR7ZvR6N64,777
1
+ frogml_core/__init__.py,sha256=xfkJMPQDpFXX6tK6N3XczqyEFeBl2j5IVujzbM_rCRw,777
2
2
  frogml_core/automations/__init__.py,sha256=j2gD15MN-xVWhI5rAFsDwhL0CIyICLNT0scXsKvNBkU,1547
3
3
  frogml_core/automations/automation_executions.py,sha256=xpOb9Dq8gPPGNQDJTvBBZbNz4woZDRZY0HqnLSu7pwU,3230
4
4
  frogml_core/automations/automations.py,sha256=GKEQyQMi8sxX5oZn62PaxPi0zD8IaJRjBkhczRJxHNs,13070
@@ -73,7 +73,7 @@ frogml_core/clients/logging_client/client.py,sha256=A7qQJWW54Ve7O0DuJX9gmSJlUQyR
73
73
  frogml_core/clients/model_management/__init__.py,sha256=vjWVP8MjmK4_A70WOgJqa6x24AeLK-ABjGJtogGzw9w,43
74
74
  frogml_core/clients/model_management/client.py,sha256=rXnzcP3-pfXCVG0KlcCwbdeIJ1iFzV84JYtyNC8n-x8,4575
75
75
  frogml_core/clients/model_version_manager/__init__.py,sha256=4Pnfzj4Egps48__dProdbSKQl5pNip0hGJd75w67BfY,46
76
- frogml_core/clients/model_version_manager/client.py,sha256=MKw3ek_dwvm6AhjCaAWtm_s_N3LueN9-Rer4P-ItN9Y,5194
76
+ frogml_core/clients/model_version_manager/client.py,sha256=WeU9XXLu5K0ViS-2YeENq121qV4ESXmI6pzc_K8QkvM,9457
77
77
  frogml_core/clients/project/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
78
78
  frogml_core/clients/project/client.py,sha256=VvnUk7mo-UkE9Gkj9jVkCPGTVx8qmuekMz7oH9Uzv2Y,2159
79
79
  frogml_core/clients/prompt_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -420,7 +420,7 @@ frogml_core/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU
420
420
  frogml_core/utils/datetime_utils.py,sha256=3zK7PUrerMlwB7U6WeuYwMAclVMfPqBNZihNRyIVMs4,581
421
421
  frogml_core/utils/dict_utils.py,sha256=YsOSQeGpmrsm3CMnx2ZbqvzEcybk3m-0TCMXbBdBXaY,263
422
422
  frogml_core/utils/model_utils.py,sha256=fLdYIScmVUfChGGxOacH2mID00ZUOPtS4ewUimEDGhg,132
423
- frogml_core/utils/proto_utils.py,sha256=p0ry5k7iwNT6btEdSBedcfvAKRBmC5X5oKmUz27_E6k,1779
423
+ frogml_core/utils/proto_utils.py,sha256=5kQAIxuzhk2_AB_enOD8kpLpIeruFjEGGSafnnt1fc8,2383
424
424
  frogml_core/vector_store/__init__.py,sha256=9gR2B5A1MXb2ks5VUzqrPASGpVTDuJs4uq7N7FNWOY4,120
425
425
  frogml_core/vector_store/client.py,sha256=mmchLHjR5aOZOLIz1eibmsoXSMHvcHjCtaWB24QZoAY,6067
426
426
  frogml_core/vector_store/collection.py,sha256=KKeEww8iogmHdfEeqgTHqIV9PizeiUl1coWwHJY8Glc,17150
@@ -446,8 +446,8 @@ frogml_proto/jfml/model_version/v1/model_version_framework_pb2_grpc.py,sha256=1o
446
446
  frogml_proto/jfml/model_version/v1/model_version_manager_service_pb2.py,sha256=AdtFAjC0tmEIcQD7k8m7TtTCVTa0ioexf31VSyUcPHk,14670
447
447
  frogml_proto/jfml/model_version/v1/model_version_manager_service_pb2.pyi,sha256=ZEEgWKD0qd8zAD8nljdBAZFP3hnLN0MOAYtZA1EHfjw,13323
448
448
  frogml_proto/jfml/model_version/v1/model_version_manager_service_pb2_grpc.py,sha256=5b77ei6ijZs9-z0frMZ6MngPziapHRYJAqU6CzZFMFs,17535
449
- frogml_proto/jfml/model_version/v1/model_version_pb2.py,sha256=S3xn4m27oPw4FCi1CIwurcOUYRroz1Vh55ctUeZQlBw,8336
450
- frogml_proto/jfml/model_version/v1/model_version_pb2.pyi,sha256=vLtqBIKmdB-Wb2vFPSPIu2D-WWg5UTsmqgjMJ_zWTsY,8914
449
+ frogml_proto/jfml/model_version/v1/model_version_pb2.py,sha256=BdoKHI2jNE5gWrFzBt6iqWynhkdxk_C2qKxqrXhphHw,9443
450
+ frogml_proto/jfml/model_version/v1/model_version_pb2.pyi,sha256=MYREFLuBZP-AJZUUuJVhfNiSfzyqceTAc9naO2T622M,10095
451
451
  frogml_proto/jfml/model_version/v1/model_version_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
452
452
  frogml_proto/qwak/administration/account/v1/account_pb2.py,sha256=eiD7FPyN-7p5OplBBPYYavyXYVAEcu2tFp5sgZ2-fgs,8082
453
453
  frogml_proto/qwak/administration/account/v1/account_pb2.pyi,sha256=-pGJBR4NbmZDPkznUbb3sfGsTu4W6hfg72pE0jtvmpg,10934
@@ -1019,6 +1019,6 @@ frogml_services_mock/mocks/workspace_manager_service_mock.py,sha256=WbOiWgOyr-xT
1019
1019
  frogml_services_mock/services_mock.py,sha256=_34z6rFCHFwcSni-9eyJlrH264xsL_QDNmG-EBv0zMc,20281
1020
1020
  frogml_services_mock/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1021
1021
  frogml_services_mock/utils/service_utils.py,sha256=ZlB0CnB1J6oBn6_m7fQO2U8tKoboHdUa6ljjkRMYNXU,265
1022
- frogml_core-0.0.14.dist-info/METADATA,sha256=Hb8qAPAxhKJKxYeXj-k3o6S_pEWONxeezG43xDNna18,2099
1023
- frogml_core-0.0.14.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
1024
- frogml_core-0.0.14.dist-info/RECORD,,
1022
+ frogml_core-0.0.16.dist-info/METADATA,sha256=v80qSNEQ165y-bZc1x9T8zWowOhh4XJq5uOWEFu_1VE,2099
1023
+ frogml_core-0.0.16.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
1024
+ frogml_core-0.0.16.dist-info/RECORD,,
@@ -18,7 +18,7 @@ from frogml_proto.jfml.model_version.v1 import model_repository_spec_pb2 as jfml
18
18
  from frogml_proto.jfml.model_version.v1 import artifact_pb2 as jfml_dot_model__version_dot_v1_dot_artifact__pb2
19
19
 
20
20
 
21
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n)jfml/model_version/v1/model_version.proto\x12\x15jfml.model_version.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x33jfml/model_version/v1/model_version_framework.proto\x1a\x31jfml/model_version/v1/model_repository_spec.proto\x1a$jfml/model_version/v1/artifact.proto\"\x8e\x02\n\x0cModelVersion\x12\x18\n\x10model_version_id\x18\x01 \x01(\t\x12\x35\n\x04spec\x18\x02 \x01(\x0b\x32\'.jfml.model_version.v1.ModelVersionSpec\x12\x39\n\x06status\x18\x03 \x01(\x0b\x32).jfml.model_version.v1.ModelVersionStatus\x12\x12\n\ncreated_by\x18\x04 \x01(\t\x12.\n\ncreated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xbe\x01\n\x10ModelVersionSpec\x12\x43\n\x0frepository_spec\x18\x01 \x01(\x0b\x32*.jfml.model_version.v1.ModelRepositorySpec\x12\x0c\n\x04name\x18\x02 \x01(\t\x12?\n\tframework\x18\x03 \x01(\x0b\x32,.jfml.model_version.v1.ModelVersionFramework\x12\x16\n\x0epython_version\x18\x04 \x01(\t\"\xa5\x03\n\tMlBomData\x12\x37\n\x0emodel_artifact\x18\x01 \x03(\x0b\x32\x1f.jfml.model_version.v1.Artifact\x12\x37\n\x0e\x63ode_artifacts\x18\x02 \x03(\x0b\x32\x1f.jfml.model_version.v1.Artifact\x12=\n\x14\x64\x65pendency_artifacts\x18\x03 \x03(\x0b\x32\x1f.jfml.model_version.v1.Artifact\x12\x44\n\nparameters\x18\x04 \x03(\x0b\x32\x30.jfml.model_version.v1.MlBomData.ParametersEntry\x12>\n\x07metrics\x18\x05 \x03(\x0b\x32-.jfml.model_version.v1.MlBomData.MetricsEntry\x1a\x31\n\x0fParametersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a.\n\x0cMetricsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xf6\x01\n\x12ModelVersionStatus\x12J\n\x0bin_progress\x18\x01 \x01(\x0b\x32\x33.jfml.model_version.v1.ModelVersionInProgressStatusH\x00\x12G\n\tcompleted\x18\x02 \x01(\x0b\x32\x32.jfml.model_version.v1.ModelVersionCompletedStatusH\x00\x12\x41\n\x06\x66\x61iled\x18\x03 \x01(\x0b\x32/.jfml.model_version.v1.ModelVersionFailedStatusH\x00\x42\x08\n\x06status\"\x1e\n\x1cModelVersionInProgressStatus\"\x1d\n\x1bModelVersionCompletedStatus\"\x1a\n\x18ModelVersionFailedStatusB%\n!com.jfrog.ml.model_version.api.v1P\x01\x62\x06proto3')
21
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n)jfml/model_version/v1/model_version.proto\x12\x15jfml.model_version.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x33jfml/model_version/v1/model_version_framework.proto\x1a\x31jfml/model_version/v1/model_repository_spec.proto\x1a$jfml/model_version/v1/artifact.proto\"\x8e\x02\n\x0cModelVersion\x12\x18\n\x10model_version_id\x18\x01 \x01(\t\x12\x35\n\x04spec\x18\x02 \x01(\x0b\x32\'.jfml.model_version.v1.ModelVersionSpec\x12\x39\n\x06status\x18\x03 \x01(\x0b\x32).jfml.model_version.v1.ModelVersionStatus\x12\x12\n\ncreated_by\x18\x04 \x01(\t\x12.\n\ncreated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xbe\x01\n\x10ModelVersionSpec\x12\x43\n\x0frepository_spec\x18\x01 \x01(\x0b\x32*.jfml.model_version.v1.ModelRepositorySpec\x12\x0c\n\x04name\x18\x02 \x01(\t\x12?\n\tframework\x18\x03 \x01(\x0b\x32,.jfml.model_version.v1.ModelVersionFramework\x12\x16\n\x0epython_version\x18\x04 \x01(\t\"\xf0\x03\n\tMlBomData\x12\x37\n\x0emodel_artifact\x18\x01 \x03(\x0b\x32\x1f.jfml.model_version.v1.Artifact\x12\x37\n\x0e\x63ode_artifacts\x18\x02 \x03(\x0b\x32\x1f.jfml.model_version.v1.Artifact\x12=\n\x14\x64\x65pendency_artifacts\x18\x03 \x03(\x0b\x32\x1f.jfml.model_version.v1.Artifact\x12\x44\n\nparameters\x18\x04 \x03(\x0b\x32\x30.jfml.model_version.v1.MlBomData.ParametersEntry\x12>\n\x07metrics\x18\x05 \x03(\x0b\x32-.jfml.model_version.v1.MlBomData.MetricsEntry\x1aX\n\x0fParametersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x34\n\x05value\x18\x02 \x01(\x0b\x32%.jfml.model_version.v1.ParameterValue:\x02\x38\x01\x1aR\n\x0cMetricsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x31\n\x05value\x18\x02 \x01(\x0b\x32\".jfml.model_version.v1.MetricValue:\x02\x38\x01\"\x1f\n\x0eParameterValue\x12\r\n\x05value\x18\x01 \x01(\t\"\x1c\n\x0bMetricValue\x12\r\n\x05value\x18\x01 \x01(\t\"\xf6\x01\n\x12ModelVersionStatus\x12J\n\x0bin_progress\x18\x01 \x01(\x0b\x32\x33.jfml.model_version.v1.ModelVersionInProgressStatusH\x00\x12G\n\tcompleted\x18\x02 \x01(\x0b\x32\x32.jfml.model_version.v1.ModelVersionCompletedStatusH\x00\x12\x41\n\x06\x66\x61iled\x18\x03 \x01(\x0b\x32/.jfml.model_version.v1.ModelVersionFailedStatusH\x00\x42\x08\n\x06status\"\x1e\n\x1cModelVersionInProgressStatus\"\x1d\n\x1bModelVersionCompletedStatus\"\x1a\n\x18ModelVersionFailedStatusB%\n!com.jfrog.ml.model_version.api.v1P\x01\x62\x06proto3')
22
22
 
23
23
 
24
24
 
@@ -27,6 +27,8 @@ _MODELVERSIONSPEC = DESCRIPTOR.message_types_by_name['ModelVersionSpec']
27
27
  _MLBOMDATA = DESCRIPTOR.message_types_by_name['MlBomData']
28
28
  _MLBOMDATA_PARAMETERSENTRY = _MLBOMDATA.nested_types_by_name['ParametersEntry']
29
29
  _MLBOMDATA_METRICSENTRY = _MLBOMDATA.nested_types_by_name['MetricsEntry']
30
+ _PARAMETERVALUE = DESCRIPTOR.message_types_by_name['ParameterValue']
31
+ _METRICVALUE = DESCRIPTOR.message_types_by_name['MetricValue']
30
32
  _MODELVERSIONSTATUS = DESCRIPTOR.message_types_by_name['ModelVersionStatus']
31
33
  _MODELVERSIONINPROGRESSSTATUS = DESCRIPTOR.message_types_by_name['ModelVersionInProgressStatus']
32
34
  _MODELVERSIONCOMPLETEDSTATUS = DESCRIPTOR.message_types_by_name['ModelVersionCompletedStatus']
@@ -68,6 +70,20 @@ _sym_db.RegisterMessage(MlBomData)
68
70
  _sym_db.RegisterMessage(MlBomData.ParametersEntry)
69
71
  _sym_db.RegisterMessage(MlBomData.MetricsEntry)
70
72
 
73
+ ParameterValue = _reflection.GeneratedProtocolMessageType('ParameterValue', (_message.Message,), {
74
+ 'DESCRIPTOR' : _PARAMETERVALUE,
75
+ '__module__' : 'jfml.model_version.v1.model_version_pb2'
76
+ # @@protoc_insertion_point(class_scope:jfml.model_version.v1.ParameterValue)
77
+ })
78
+ _sym_db.RegisterMessage(ParameterValue)
79
+
80
+ MetricValue = _reflection.GeneratedProtocolMessageType('MetricValue', (_message.Message,), {
81
+ 'DESCRIPTOR' : _METRICVALUE,
82
+ '__module__' : 'jfml.model_version.v1.model_version_pb2'
83
+ # @@protoc_insertion_point(class_scope:jfml.model_version.v1.MetricValue)
84
+ })
85
+ _sym_db.RegisterMessage(MetricValue)
86
+
71
87
  ModelVersionStatus = _reflection.GeneratedProtocolMessageType('ModelVersionStatus', (_message.Message,), {
72
88
  'DESCRIPTOR' : _MODELVERSIONSTATUS,
73
89
  '__module__' : 'jfml.model_version.v1.model_version_pb2'
@@ -109,17 +125,21 @@ if _descriptor._USE_C_DESCRIPTORS == False:
109
125
  _MODELVERSIONSPEC._serialized_start=517
110
126
  _MODELVERSIONSPEC._serialized_end=707
111
127
  _MLBOMDATA._serialized_start=710
112
- _MLBOMDATA._serialized_end=1131
128
+ _MLBOMDATA._serialized_end=1206
113
129
  _MLBOMDATA_PARAMETERSENTRY._serialized_start=1034
114
- _MLBOMDATA_PARAMETERSENTRY._serialized_end=1083
115
- _MLBOMDATA_METRICSENTRY._serialized_start=1085
116
- _MLBOMDATA_METRICSENTRY._serialized_end=1131
117
- _MODELVERSIONSTATUS._serialized_start=1134
118
- _MODELVERSIONSTATUS._serialized_end=1380
119
- _MODELVERSIONINPROGRESSSTATUS._serialized_start=1382
120
- _MODELVERSIONINPROGRESSSTATUS._serialized_end=1412
121
- _MODELVERSIONCOMPLETEDSTATUS._serialized_start=1414
122
- _MODELVERSIONCOMPLETEDSTATUS._serialized_end=1443
123
- _MODELVERSIONFAILEDSTATUS._serialized_start=1445
124
- _MODELVERSIONFAILEDSTATUS._serialized_end=1471
130
+ _MLBOMDATA_PARAMETERSENTRY._serialized_end=1122
131
+ _MLBOMDATA_METRICSENTRY._serialized_start=1124
132
+ _MLBOMDATA_METRICSENTRY._serialized_end=1206
133
+ _PARAMETERVALUE._serialized_start=1208
134
+ _PARAMETERVALUE._serialized_end=1239
135
+ _METRICVALUE._serialized_start=1241
136
+ _METRICVALUE._serialized_end=1269
137
+ _MODELVERSIONSTATUS._serialized_start=1272
138
+ _MODELVERSIONSTATUS._serialized_end=1518
139
+ _MODELVERSIONINPROGRESSSTATUS._serialized_start=1520
140
+ _MODELVERSIONINPROGRESSSTATUS._serialized_end=1550
141
+ _MODELVERSIONCOMPLETEDSTATUS._serialized_start=1552
142
+ _MODELVERSIONCOMPLETEDSTATUS._serialized_end=1581
143
+ _MODELVERSIONFAILEDSTATUS._serialized_start=1583
144
+ _MODELVERSIONFAILEDSTATUS._serialized_end=1609
125
145
  # @@protoc_insertion_point(module_scope)
@@ -92,13 +92,15 @@ class MlBomData(google.protobuf.message.Message):
92
92
  KEY_FIELD_NUMBER: builtins.int
93
93
  VALUE_FIELD_NUMBER: builtins.int
94
94
  key: builtins.str
95
- value: builtins.str
95
+ @property
96
+ def value(self) -> global___ParameterValue: ...
96
97
  def __init__(
97
98
  self,
98
99
  *,
99
100
  key: builtins.str = ...,
100
- value: builtins.str = ...,
101
+ value: global___ParameterValue | None = ...,
101
102
  ) -> None: ...
103
+ def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ...
102
104
  def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...
103
105
 
104
106
  class MetricsEntry(google.protobuf.message.Message):
@@ -107,13 +109,15 @@ class MlBomData(google.protobuf.message.Message):
107
109
  KEY_FIELD_NUMBER: builtins.int
108
110
  VALUE_FIELD_NUMBER: builtins.int
109
111
  key: builtins.str
110
- value: builtins.str
112
+ @property
113
+ def value(self) -> global___MetricValue: ...
111
114
  def __init__(
112
115
  self,
113
116
  *,
114
117
  key: builtins.str = ...,
115
- value: builtins.str = ...,
118
+ value: global___MetricValue | None = ...,
116
119
  ) -> None: ...
120
+ def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ...
117
121
  def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...
118
122
 
119
123
  MODEL_ARTIFACT_FIELD_NUMBER: builtins.int
@@ -131,10 +135,10 @@ class MlBomData(google.protobuf.message.Message):
131
135
  def dependency_artifacts(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[jfml.model_version.v1.artifact_pb2.Artifact]:
132
136
  """The model's dependency artifacts"""
133
137
  @property
134
- def parameters(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]:
138
+ def parameters(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___ParameterValue]:
135
139
  """The model's parameters"""
136
140
  @property
137
- def metrics(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]:
141
+ def metrics(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___MetricValue]:
138
142
  """The model's metrics"""
139
143
  def __init__(
140
144
  self,
@@ -142,13 +146,41 @@ class MlBomData(google.protobuf.message.Message):
142
146
  model_artifact: collections.abc.Iterable[jfml.model_version.v1.artifact_pb2.Artifact] | None = ...,
143
147
  code_artifacts: collections.abc.Iterable[jfml.model_version.v1.artifact_pb2.Artifact] | None = ...,
144
148
  dependency_artifacts: collections.abc.Iterable[jfml.model_version.v1.artifact_pb2.Artifact] | None = ...,
145
- parameters: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
146
- metrics: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
149
+ parameters: collections.abc.Mapping[builtins.str, global___ParameterValue] | None = ...,
150
+ metrics: collections.abc.Mapping[builtins.str, global___MetricValue] | None = ...,
147
151
  ) -> None: ...
148
152
  def ClearField(self, field_name: typing_extensions.Literal["code_artifacts", b"code_artifacts", "dependency_artifacts", b"dependency_artifacts", "metrics", b"metrics", "model_artifact", b"model_artifact", "parameters", b"parameters"]) -> None: ...
149
153
 
150
154
  global___MlBomData = MlBomData
151
155
 
156
+ class ParameterValue(google.protobuf.message.Message):
157
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
158
+
159
+ VALUE_FIELD_NUMBER: builtins.int
160
+ value: builtins.str
161
+ def __init__(
162
+ self,
163
+ *,
164
+ value: builtins.str = ...,
165
+ ) -> None: ...
166
+ def ClearField(self, field_name: typing_extensions.Literal["value", b"value"]) -> None: ...
167
+
168
+ global___ParameterValue = ParameterValue
169
+
170
+ class MetricValue(google.protobuf.message.Message):
171
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
172
+
173
+ VALUE_FIELD_NUMBER: builtins.int
174
+ value: builtins.str
175
+ def __init__(
176
+ self,
177
+ *,
178
+ value: builtins.str = ...,
179
+ ) -> None: ...
180
+ def ClearField(self, field_name: typing_extensions.Literal["value", b"value"]) -> None: ...
181
+
182
+ global___MetricValue = MetricValue
183
+
152
184
  class ModelVersionStatus(google.protobuf.message.Message):
153
185
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
154
186