frogml 1.2.24__py3-none-any.whl → 1.2.29__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/jfml/model_version/v1/model_repository_spec_pb2.pyi +4 -1
- frogml/_proto/qwak/builds/build_values_pb2.py +38 -38
- frogml/_proto/qwak/builds/build_values_pb2.pyi +7 -1
- frogml/core/clients/model_version_manager/client.py +12 -19
- frogml/sdk/model_version/utils/jml/customer_client.py +4 -35
- frogml/sdk/model_version/utils/storage.py +15 -20
- frogml/storage/artifactory/_artifactory_api.py +0 -6
- frogml/storage/frog_ml.py +0 -6
- {frogml-1.2.24.dist-info → frogml-1.2.29.dist-info}/METADATA +1 -1
- {frogml-1.2.24.dist-info → frogml-1.2.29.dist-info}/RECORD +12 -12
- {frogml-1.2.24.dist-info → frogml-1.2.29.dist-info}/WHEEL +0 -0
frogml/__init__.py
CHANGED
|
@@ -19,7 +19,10 @@ class ModelRepositorySpec(google.protobuf.message.Message):
|
|
|
19
19
|
MODEL_ID_FIELD_NUMBER: builtins.int
|
|
20
20
|
MODEL_NAME_FIELD_NUMBER: builtins.int
|
|
21
21
|
project_key: builtins.str
|
|
22
|
-
"""JFrog project key
|
|
22
|
+
"""JFrog project key
|
|
23
|
+
This is not used in the request of `CreateModelVersion`. The project key used there is
|
|
24
|
+
derived from the repository. The request value is being ignored in this endpoint.
|
|
25
|
+
"""
|
|
23
26
|
repository_key: builtins.str
|
|
24
27
|
model_id: builtins.str
|
|
25
28
|
model_name: builtins.str
|
|
@@ -15,7 +15,7 @@ _sym_db = _symbol_database.Default()
|
|
|
15
15
|
from frogml._proto.qwak.user_application.common.v0 import resources_pb2 as qwak_dot_user__application_dot_common_dot_v0_dot_resources__pb2
|
|
16
16
|
|
|
17
17
|
|
|
18
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1eqwak/builds/build_values.proto\x12\x15qwak.build.management\x1a/qwak/user_application/common/v0/resources.proto\"\xc3\x03\n\x10ModelBuildValues\x12\x34\n\nbuild_info\x18\x01 \x01(\x0b\x32 .qwak.build.management.BuildInfo\x12<\n\x0emodel_metadata\x18\x02 \x01(\x0b\x32$.qwak.build.management.ModelMetadata\x12\x45\n\x13model_code_location\x18\x03 \x01(\x0b\x32(.qwak.build.management.ModelCodeLocation\x12G\n\x14\x62uild_execution_spec\x18\x04 \x01(\x0b\x32).qwak.build.management.BuildExecutionSpec\x12\x30\n\x08sdk_spec\x18\x05 \x01(\x0b\x32\x1e.qwak.build.management.SdkSpec\x12G\n\x14jfrog_ecosystem_spec\x18\x06 \x01(\x0b\x32).qwak.build.management.JfrogEcosystemSpec\x12\x30\n\x08job_spec\x18\x07 \x01(\x0b\x32\x1e.qwak.build.management.JobSpec\"\xa3\x01\n\tBuildInfo\x12\x10\n\x08\x62uild_id\x18\x01 \x01(\t\x12\x13\n\x0b\x62ranch_name\x18\x02 \x01(\t\x12\x12\n\nbuild_tags\x18\x03 \x03(\t\x12\x14\n\x0c\x62uild_config\x18\x04 \x01(\t\x12\x45\n\x13\x62uild_properties_v1\x18\x05 \x01(\x0b\x32(.qwak.build.management.BuildPropertiesV1\"]\n\x11\x42uildPropertiesV1\x12\x18\n\x10\x62uild_config_url\x18\x01 \x01(\t\x12\x15\n\rsdk_wheel_url\x18\x02 \x01(\t\x12\x17\n\x0fsdk_version_url\x18\x03 \x01(\t\"\
|
|
18
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1eqwak/builds/build_values.proto\x12\x15qwak.build.management\x1a/qwak/user_application/common/v0/resources.proto\"\xc3\x03\n\x10ModelBuildValues\x12\x34\n\nbuild_info\x18\x01 \x01(\x0b\x32 .qwak.build.management.BuildInfo\x12<\n\x0emodel_metadata\x18\x02 \x01(\x0b\x32$.qwak.build.management.ModelMetadata\x12\x45\n\x13model_code_location\x18\x03 \x01(\x0b\x32(.qwak.build.management.ModelCodeLocation\x12G\n\x14\x62uild_execution_spec\x18\x04 \x01(\x0b\x32).qwak.build.management.BuildExecutionSpec\x12\x30\n\x08sdk_spec\x18\x05 \x01(\x0b\x32\x1e.qwak.build.management.SdkSpec\x12G\n\x14jfrog_ecosystem_spec\x18\x06 \x01(\x0b\x32).qwak.build.management.JfrogEcosystemSpec\x12\x30\n\x08job_spec\x18\x07 \x01(\x0b\x32\x1e.qwak.build.management.JobSpec\"\xa3\x01\n\tBuildInfo\x12\x10\n\x08\x62uild_id\x18\x01 \x01(\t\x12\x13\n\x0b\x62ranch_name\x18\x02 \x01(\t\x12\x12\n\nbuild_tags\x18\x03 \x03(\t\x12\x14\n\x0c\x62uild_config\x18\x04 \x01(\t\x12\x45\n\x13\x62uild_properties_v1\x18\x05 \x01(\x0b\x32(.qwak.build.management.BuildPropertiesV1\"]\n\x11\x42uildPropertiesV1\x12\x18\n\x10\x62uild_config_url\x18\x01 \x01(\t\x12\x15\n\rsdk_wheel_url\x18\x02 \x01(\t\x12\x17\n\x0fsdk_version_url\x18\x03 \x01(\t\"\xa8\x01\n\rModelMetadata\x12\x10\n\x08model_id\x18\x01 \x01(\t\x12\x12\n\naccount_id\x18\x02 \x01(\t\x12\x0f\n\x07user_id\x18\x03 \x01(\t\x12\x46\n\x13\x61rtifactory_details\x18\x04 \x01(\x0b\x32).qwak.build.management.ArtifactoryDetails\x12\x18\n\x10model_group_name\x18\x05 \x01(\t\")\n\x12\x41rtifactoryDetails\x12\x13\n\x0bproject_key\x18\x01 \x01(\t\"\xa0\x01\n\x11ModelCodeLocation\x12\x1c\n\x14main_model_directory\x18\x01 \x01(\t\x12\x34\n\tlocal_uri\x18\x02 \x01(\x0b\x32\x1f.qwak.build.management.LocalUriH\x00\x12\x30\n\x07git_uri\x18\x03 \x01(\x0b\x32\x1d.qwak.build.management.GitUriH\x00\x42\x05\n\x03uri\"\x18\n\x08LocalUri\x12\x0c\n\x04path\x18\x01 \x01(\t\"M\n\x06GitUri\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x36\n\x0bgit_details\x18\x02 \x01(\x0b\x32!.qwak.build.management.GitDetails\"|\n\nGitDetails\x12\x0e\n\x06\x62ranch\x18\x01 \x01(\t\x12\x11\n\tcommit_id\x18\x02 \x01(\t\x12\x15\n\x0b\x63redentials\x18\x03 \x01(\tH\x00\x12!\n\x17\x63redentials_secret_name\x18\x04 \x01(\tH\x00\x42\x11\n\x0fgit_credentials\"\xd0\x02\n\x12\x42uildExecutionSpec\x12\x1f\n\x17\x62uild_image_destination\x18\x01 \x01(\t\x12\"\n\x1ashould_build_without_cache\x18\x02 \x01(\x08\x12G\n\x14logs_verbosity_level\x18\x03 \x01(\x0e\x32).qwak.build.management.LogsVerbosityLevel\x12\x12\n\nbase_image\x18\x04 \x01(\t\x12\x1b\n\x13\x63ustom_iam_role_arn\x18\x05 \x01(\t\x12\x10\n\x08\x65nv_vars\x18\x06 \x03(\t\x12\'\n\x1fremote_builder_auth_secret_name\x18\x07 \x01(\t\x12@\n\x10\x63ontainer_engine\x18\x08 \x01(\x0b\x32&.qwak.build.management.ContainerEngine\"a\n\x07SdkSpec\x12\x13\n\x0bsdk_version\x18\x01 \x01(\t\x12\x1b\n\x13sdk_extra_index_url\x18\x02 \x01(\t\x12$\n\x1csdk_runtime_version_override\x18\x03 \x01(\t\"k\n\x12JfrogEcosystemSpec\x12\x0f\n\x07\x62\x61seUrl\x18\x01 \x01(\t\x12\x1d\n\x15\x61\x63\x63\x65ssTokenSecretName\x18\x02 \x01(\t\x12%\n\x1d\x61rtifactorySettingsSecretName\x18\x03 \x01(\t\"\xb5\x04\n\x07JobSpec\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\"\n\x1aprovision_instance_timeout\x18\x02 \x01(\x05\x12>\n\x0fpurchase_option\x18\x03 \x01(\x0e\x32%.qwak.build.management.PurchaseOption\x12$\n\x1cis_node_optimization_enabled\x18\x04 \x01(\x08\x12\"\n\x1ashould_use_build_isolation\x18\x05 \x01(\x08\x12#\n\x1bis_multi_tenant_environment\x18\x06 \x01(\x08\x12\x1a\n\x12is_self_hosted_jpd\x18\n \x01(\x08\x12 \n\x18\x62uild_executor_image_url\x18\x07 \x01(\t\x12<\n\x0e\x63loud_provider\x18\x08 \x01(\x0e\x32$.qwak.build.management.CloudProvider\x12\x30\n\x08job_size\x18\t \x01(\x0b\x32\x1e.qwak.build.management.JobSize\x12Y\n\x17\x62uild_executor_env_vars\x18\x0b \x03(\x0b\x32\x38.qwak.build.management.JobSpec.BuildExecutorEnvVarsEntry\x1a;\n\x19\x42uildExecutorEnvVarsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x9e\x02\n\x07JobSize\x12\x0f\n\x03\x63pu\x18\x01 \x01(\x02\x42\x02\x18\x01\x12\x19\n\rmemory_amount\x18\x02 \x01(\x05\x42\x02\x18\x01\x12;\n\x0cmemory_units\x18\x03 \x01(\x0e\x32!.qwak.build.management.MemoryUnitB\x02\x18\x01\x12H\n\rgpu_resources\x18\x04 \x01(\x0b\x32-.qwak.user_application.common.v0.GpuResourcesB\x02\x18\x01\x12`\n\x1c\x63lient_pod_compute_resources\x18\x05 \x01(\x0b\x32:.qwak.user_application.common.v0.ClientPodComputeResources\"\x9d\x01\n\x0f\x43ontainerEngine\x12>\n\x06\x64ocker\x18\x01 \x01(\x0b\x32,.qwak.build.management.DockerContainerEngineH\x00\x12\x42\n\x06podman\x18\x02 \x01(\x0b\x32,.qwak.build.management.PodmanContainerEngineB\x02\x18\x01H\x00\x42\x06\n\x04type\"\x17\n\x15\x44ockerContainerEngine\"\x17\n\x15PodmanContainerEngine*e\n\x0ePurchaseOption\x12\x1b\n\x17INVALID_PURCHASE_OPTION\x10\x00\x12\x18\n\x14SPOT_PURCHASE_OPTION\x10\x01\x12\x1c\n\x18ONDEMAND_PURCHASE_OPTION\x10\x02*H\n\rCloudProvider\x12\x1a\n\x16INVALID_CLOUD_PROVIDER\x10\x00\x12\x07\n\x03\x41WS\x10\x01\x12\x07\n\x03GCP\x10\x02\x12\t\n\x05\x41ZURE\x10\x03*7\n\nMemoryUnit\x12\x17\n\x13INVALID_MEMORY_UNIT\x10\x00\x12\x07\n\x03MIB\x10\x01\x12\x07\n\x03GIB\x10\x02*S\n\x12LogsVerbosityLevel\x12\x1a\n\x16INVALID_LOGS_VERBOSITY\x10\x00\x12\t\n\x05\x44\x45\x42UG\x10\n\x12\x08\n\x04INFO\x10\x14\x12\x0c\n\x08\x43RITICAL\x10\x32\x42\x36\n com.qwak.ai.management.build.apiP\x01Z\x10qwak/build;buildb\x06proto3')
|
|
19
19
|
|
|
20
20
|
_globals = globals()
|
|
21
21
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -35,14 +35,14 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
35
35
|
_globals['_JOBSIZE'].fields_by_name['gpu_resources']._serialized_options = b'\030\001'
|
|
36
36
|
_globals['_CONTAINERENGINE'].fields_by_name['podman']._options = None
|
|
37
37
|
_globals['_CONTAINERENGINE'].fields_by_name['podman']._serialized_options = b'\030\001'
|
|
38
|
-
_globals['_PURCHASEOPTION']._serialized_start=
|
|
39
|
-
_globals['_PURCHASEOPTION']._serialized_end=
|
|
40
|
-
_globals['_CLOUDPROVIDER']._serialized_start=
|
|
41
|
-
_globals['_CLOUDPROVIDER']._serialized_end=
|
|
42
|
-
_globals['_MEMORYUNIT']._serialized_start=
|
|
43
|
-
_globals['_MEMORYUNIT']._serialized_end=
|
|
44
|
-
_globals['_LOGSVERBOSITYLEVEL']._serialized_start=
|
|
45
|
-
_globals['_LOGSVERBOSITYLEVEL']._serialized_end=
|
|
38
|
+
_globals['_PURCHASEOPTION']._serialized_start=3043
|
|
39
|
+
_globals['_PURCHASEOPTION']._serialized_end=3144
|
|
40
|
+
_globals['_CLOUDPROVIDER']._serialized_start=3146
|
|
41
|
+
_globals['_CLOUDPROVIDER']._serialized_end=3218
|
|
42
|
+
_globals['_MEMORYUNIT']._serialized_start=3220
|
|
43
|
+
_globals['_MEMORYUNIT']._serialized_end=3275
|
|
44
|
+
_globals['_LOGSVERBOSITYLEVEL']._serialized_start=3277
|
|
45
|
+
_globals['_LOGSVERBOSITYLEVEL']._serialized_end=3360
|
|
46
46
|
_globals['_MODELBUILDVALUES']._serialized_start=107
|
|
47
47
|
_globals['_MODELBUILDVALUES']._serialized_end=558
|
|
48
48
|
_globals['_BUILDINFO']._serialized_start=561
|
|
@@ -50,33 +50,33 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
50
50
|
_globals['_BUILDPROPERTIESV1']._serialized_start=726
|
|
51
51
|
_globals['_BUILDPROPERTIESV1']._serialized_end=819
|
|
52
52
|
_globals['_MODELMETADATA']._serialized_start=822
|
|
53
|
-
_globals['_MODELMETADATA']._serialized_end=
|
|
54
|
-
_globals['_ARTIFACTORYDETAILS']._serialized_start=
|
|
55
|
-
_globals['_ARTIFACTORYDETAILS']._serialized_end=
|
|
56
|
-
_globals['_MODELCODELOCATION']._serialized_start=
|
|
57
|
-
_globals['_MODELCODELOCATION']._serialized_end=
|
|
58
|
-
_globals['_LOCALURI']._serialized_start=
|
|
59
|
-
_globals['_LOCALURI']._serialized_end=
|
|
60
|
-
_globals['_GITURI']._serialized_start=
|
|
61
|
-
_globals['_GITURI']._serialized_end=
|
|
62
|
-
_globals['_GITDETAILS']._serialized_start=
|
|
63
|
-
_globals['_GITDETAILS']._serialized_end=
|
|
64
|
-
_globals['_BUILDEXECUTIONSPEC']._serialized_start=
|
|
65
|
-
_globals['_BUILDEXECUTIONSPEC']._serialized_end=
|
|
66
|
-
_globals['_SDKSPEC']._serialized_start=
|
|
67
|
-
_globals['_SDKSPEC']._serialized_end=
|
|
68
|
-
_globals['_JFROGECOSYSTEMSPEC']._serialized_start=
|
|
69
|
-
_globals['_JFROGECOSYSTEMSPEC']._serialized_end=
|
|
70
|
-
_globals['_JOBSPEC']._serialized_start=
|
|
71
|
-
_globals['_JOBSPEC']._serialized_end=
|
|
72
|
-
_globals['_JOBSPEC_BUILDEXECUTORENVVARSENTRY']._serialized_start=
|
|
73
|
-
_globals['_JOBSPEC_BUILDEXECUTORENVVARSENTRY']._serialized_end=
|
|
74
|
-
_globals['_JOBSIZE']._serialized_start=
|
|
75
|
-
_globals['_JOBSIZE']._serialized_end=
|
|
76
|
-
_globals['_CONTAINERENGINE']._serialized_start=
|
|
77
|
-
_globals['_CONTAINERENGINE']._serialized_end=
|
|
78
|
-
_globals['_DOCKERCONTAINERENGINE']._serialized_start=
|
|
79
|
-
_globals['_DOCKERCONTAINERENGINE']._serialized_end=
|
|
80
|
-
_globals['_PODMANCONTAINERENGINE']._serialized_start=
|
|
81
|
-
_globals['_PODMANCONTAINERENGINE']._serialized_end=
|
|
53
|
+
_globals['_MODELMETADATA']._serialized_end=990
|
|
54
|
+
_globals['_ARTIFACTORYDETAILS']._serialized_start=992
|
|
55
|
+
_globals['_ARTIFACTORYDETAILS']._serialized_end=1033
|
|
56
|
+
_globals['_MODELCODELOCATION']._serialized_start=1036
|
|
57
|
+
_globals['_MODELCODELOCATION']._serialized_end=1196
|
|
58
|
+
_globals['_LOCALURI']._serialized_start=1198
|
|
59
|
+
_globals['_LOCALURI']._serialized_end=1222
|
|
60
|
+
_globals['_GITURI']._serialized_start=1224
|
|
61
|
+
_globals['_GITURI']._serialized_end=1301
|
|
62
|
+
_globals['_GITDETAILS']._serialized_start=1303
|
|
63
|
+
_globals['_GITDETAILS']._serialized_end=1427
|
|
64
|
+
_globals['_BUILDEXECUTIONSPEC']._serialized_start=1430
|
|
65
|
+
_globals['_BUILDEXECUTIONSPEC']._serialized_end=1766
|
|
66
|
+
_globals['_SDKSPEC']._serialized_start=1768
|
|
67
|
+
_globals['_SDKSPEC']._serialized_end=1865
|
|
68
|
+
_globals['_JFROGECOSYSTEMSPEC']._serialized_start=1867
|
|
69
|
+
_globals['_JFROGECOSYSTEMSPEC']._serialized_end=1974
|
|
70
|
+
_globals['_JOBSPEC']._serialized_start=1977
|
|
71
|
+
_globals['_JOBSPEC']._serialized_end=2542
|
|
72
|
+
_globals['_JOBSPEC_BUILDEXECUTORENVVARSENTRY']._serialized_start=2483
|
|
73
|
+
_globals['_JOBSPEC_BUILDEXECUTORENVVARSENTRY']._serialized_end=2542
|
|
74
|
+
_globals['_JOBSIZE']._serialized_start=2545
|
|
75
|
+
_globals['_JOBSIZE']._serialized_end=2831
|
|
76
|
+
_globals['_CONTAINERENGINE']._serialized_start=2834
|
|
77
|
+
_globals['_CONTAINERENGINE']._serialized_end=2991
|
|
78
|
+
_globals['_DOCKERCONTAINERENGINE']._serialized_start=2993
|
|
79
|
+
_globals['_DOCKERCONTAINERENGINE']._serialized_end=3016
|
|
80
|
+
_globals['_PODMANCONTAINERENGINE']._serialized_start=3018
|
|
81
|
+
_globals['_PODMANCONTAINERENGINE']._serialized_end=3041
|
|
82
82
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -217,9 +217,14 @@ class ModelMetadata(google.protobuf.message.Message):
|
|
|
217
217
|
ACCOUNT_ID_FIELD_NUMBER: builtins.int
|
|
218
218
|
USER_ID_FIELD_NUMBER: builtins.int
|
|
219
219
|
ARTIFACTORY_DETAILS_FIELD_NUMBER: builtins.int
|
|
220
|
+
MODEL_GROUP_NAME_FIELD_NUMBER: builtins.int
|
|
220
221
|
model_id: builtins.str
|
|
221
222
|
account_id: builtins.str
|
|
222
223
|
user_id: builtins.str
|
|
224
|
+
model_group_name: builtins.str
|
|
225
|
+
"""Human readable model group identifier (e.g., "my-model-group").
|
|
226
|
+
This is the display name, not the UUID.
|
|
227
|
+
"""
|
|
223
228
|
@property
|
|
224
229
|
def artifactory_details(self) -> global___ArtifactoryDetails: ...
|
|
225
230
|
def __init__(
|
|
@@ -229,9 +234,10 @@ class ModelMetadata(google.protobuf.message.Message):
|
|
|
229
234
|
account_id: builtins.str = ...,
|
|
230
235
|
user_id: builtins.str = ...,
|
|
231
236
|
artifactory_details: global___ArtifactoryDetails | None = ...,
|
|
237
|
+
model_group_name: builtins.str = ...,
|
|
232
238
|
) -> None: ...
|
|
233
239
|
def HasField(self, field_name: typing.Literal["artifactory_details", b"artifactory_details"]) -> builtins.bool: ...
|
|
234
|
-
def ClearField(self, field_name: typing.Literal["account_id", b"account_id", "artifactory_details", b"artifactory_details", "model_id", b"model_id", "user_id", b"user_id"]) -> None: ...
|
|
240
|
+
def ClearField(self, field_name: typing.Literal["account_id", b"account_id", "artifactory_details", b"artifactory_details", "model_group_name", b"model_group_name", "model_id", b"model_id", "user_id", b"user_id"]) -> None: ...
|
|
235
241
|
|
|
236
242
|
global___ModelMetadata = ModelMetadata
|
|
237
243
|
|
|
@@ -6,18 +6,8 @@ from dependency_injector.wiring import Provide
|
|
|
6
6
|
from grpc import RpcError
|
|
7
7
|
from typing_extensions import Self
|
|
8
8
|
|
|
9
|
-
from frogml.core.clients.model_version_manager.build_model_version_dto import (
|
|
10
|
-
BuildConfigDTO,
|
|
11
|
-
)
|
|
12
|
-
from frogml.core.clients.model_version_manager.build_model_version_request_mapper import (
|
|
13
|
-
map_build_conf_to_build_spec,
|
|
14
|
-
)
|
|
15
|
-
from frogml.core.exceptions import FrogmlException
|
|
16
|
-
from frogml.core.inner.di_configuration import FrogmlContainer
|
|
17
|
-
from frogml.core.inner.tool.grpc.grpc_try_wrapping import grpc_try_catch_wrapper
|
|
18
|
-
from frogml.core.utils.model_utils import get_model_id_from_model_name
|
|
19
|
-
from frogml.core.utils.proto_utils import ProtoUtils
|
|
20
9
|
from frogml._proto.jfml.model_version.v1.artifact_pb2 import Artifact as ArtifactProto
|
|
10
|
+
from frogml._proto.jfml.model_version.v1.build_spec_pb2 import BuildSpec
|
|
21
11
|
from frogml._proto.jfml.model_version.v1.model_repository_spec_pb2 import (
|
|
22
12
|
ModelRepositorySpec,
|
|
23
13
|
)
|
|
@@ -39,10 +29,19 @@ from frogml._proto.jfml.model_version.v1.model_version_pb2 import (
|
|
|
39
29
|
ParameterValue,
|
|
40
30
|
MetricValue,
|
|
41
31
|
)
|
|
42
|
-
from frogml.
|
|
32
|
+
from frogml.core.clients.model_version_manager.build_model_version_dto import (
|
|
33
|
+
BuildConfigDTO,
|
|
34
|
+
)
|
|
35
|
+
from frogml.core.clients.model_version_manager.build_model_version_request_mapper import (
|
|
36
|
+
map_build_conf_to_build_spec,
|
|
37
|
+
)
|
|
38
|
+
from frogml.core.exceptions import FrogmlException
|
|
39
|
+
from frogml.core.inner.di_configuration import FrogmlContainer
|
|
40
|
+
from frogml.core.inner.tool.grpc.grpc_try_wrapping import grpc_try_catch_wrapper
|
|
41
|
+
from frogml.core.utils.model_utils import get_model_id_from_model_name
|
|
42
|
+
from frogml.core.utils.proto_utils import ProtoUtils
|
|
43
43
|
from frogml.storage.models.entity_manifest import Artifact
|
|
44
44
|
|
|
45
|
-
|
|
46
45
|
logger = logging.getLogger(__name__)
|
|
47
46
|
|
|
48
47
|
|
|
@@ -87,7 +86,6 @@ class ModelVersionManagerClient:
|
|
|
87
86
|
|
|
88
87
|
def __build_create_model_version_request(
|
|
89
88
|
self,
|
|
90
|
-
project_key: str,
|
|
91
89
|
repository_key: str,
|
|
92
90
|
model_name: str,
|
|
93
91
|
model_version_name: str,
|
|
@@ -107,7 +105,6 @@ class ModelVersionManagerClient:
|
|
|
107
105
|
dry_run=dry_run,
|
|
108
106
|
model_version=ModelVersionSpec(
|
|
109
107
|
repository_spec=ModelRepositorySpec(
|
|
110
|
-
project_key=project_key,
|
|
111
108
|
repository_key=repository_key,
|
|
112
109
|
model_id=get_model_id_from_model_name(model_name),
|
|
113
110
|
model_name=model_name,
|
|
@@ -121,7 +118,6 @@ class ModelVersionManagerClient:
|
|
|
121
118
|
|
|
122
119
|
def validate_create_model_version(
|
|
123
120
|
self,
|
|
124
|
-
project_key: str,
|
|
125
121
|
repository_key: str,
|
|
126
122
|
model_name: str,
|
|
127
123
|
model_version_name: str,
|
|
@@ -142,7 +138,6 @@ class ModelVersionManagerClient:
|
|
|
142
138
|
)
|
|
143
139
|
|
|
144
140
|
create_model_request = self.__build_create_model_version_request(
|
|
145
|
-
project_key=project_key,
|
|
146
141
|
repository_key=repository_key,
|
|
147
142
|
model_name=model_name,
|
|
148
143
|
model_version_name=model_version_name,
|
|
@@ -165,7 +160,6 @@ class ModelVersionManagerClient:
|
|
|
165
160
|
|
|
166
161
|
def create_model_version(
|
|
167
162
|
self,
|
|
168
|
-
project_key: str,
|
|
169
163
|
repository_key: str,
|
|
170
164
|
model_name: str,
|
|
171
165
|
model_version_name: str,
|
|
@@ -186,7 +180,6 @@ class ModelVersionManagerClient:
|
|
|
186
180
|
)
|
|
187
181
|
|
|
188
182
|
create_model_request = self.__build_create_model_version_request(
|
|
189
|
-
project_key=project_key,
|
|
190
183
|
repository_key=repository_key,
|
|
191
184
|
model_name=model_name,
|
|
192
185
|
model_version_name=model_version_name,
|
|
@@ -3,23 +3,19 @@ import os
|
|
|
3
3
|
import sys
|
|
4
4
|
from typing import Optional, Dict, Any, TextIO, Union
|
|
5
5
|
|
|
6
|
-
import requests
|
|
7
|
-
from requests import Response
|
|
8
|
-
|
|
9
|
-
from frogml.core.clients.administration.eco_system.client import EcosystemClient
|
|
10
|
-
from frogml.storage.frog_ml import FrogMLStorage
|
|
11
|
-
from frogml.storage.models.serialization_metadata import SerializationMetadata
|
|
12
|
-
from frogml.storage.models.frogml_model_version import FrogMLModelVersion
|
|
13
|
-
|
|
14
6
|
from typing_extensions import Self
|
|
15
7
|
|
|
16
8
|
from frogml._proto.jfml.model_version.v1.model_version_framework_pb2 import (
|
|
17
9
|
ModelVersionFramework,
|
|
18
10
|
)
|
|
11
|
+
from frogml.core.clients.administration.eco_system.client import EcosystemClient
|
|
19
12
|
from frogml.core.clients.model_version_manager import ModelVersionManagerClient
|
|
20
13
|
from frogml.core.exceptions import FrogmlException
|
|
21
14
|
from frogml.sdk.model_version.constants import FROGML_LOG_LEVEL_ENVAR_NAME
|
|
15
|
+
from frogml.storage.frog_ml import FrogMLStorage
|
|
16
|
+
from frogml.storage.models.frogml_model_version import FrogMLModelVersion
|
|
22
17
|
from frogml.storage.models.model_manifest import ModelManifest
|
|
18
|
+
from frogml.storage.models.serialization_metadata import SerializationMetadata
|
|
23
19
|
|
|
24
20
|
|
|
25
21
|
class JmlCustomerClient:
|
|
@@ -66,7 +62,6 @@ class JmlCustomerClient:
|
|
|
66
62
|
|
|
67
63
|
def validate_model_version(
|
|
68
64
|
self: Self,
|
|
69
|
-
project_key: str,
|
|
70
65
|
repository: str,
|
|
71
66
|
model_name: str,
|
|
72
67
|
model_version: str,
|
|
@@ -74,7 +69,6 @@ class JmlCustomerClient:
|
|
|
74
69
|
):
|
|
75
70
|
try:
|
|
76
71
|
self.__model_version_manager_client.validate_create_model_version(
|
|
77
|
-
project_key=project_key,
|
|
78
72
|
repository_key=repository,
|
|
79
73
|
model_name=model_name,
|
|
80
74
|
model_version_name=model_version,
|
|
@@ -84,29 +78,6 @@ class JmlCustomerClient:
|
|
|
84
78
|
except Exception as e:
|
|
85
79
|
raise ValueError(str(e)) from e
|
|
86
80
|
|
|
87
|
-
def get_project_key(self: Self, repository_key: str) -> str:
|
|
88
|
-
self.__logger.info("Getting project key for repository %s", repository_key)
|
|
89
|
-
repo_configuration_response: Response = (
|
|
90
|
-
self.__ml_storage.get_repository_configuration(
|
|
91
|
-
repository_key=repository_key
|
|
92
|
-
)
|
|
93
|
-
)
|
|
94
|
-
try:
|
|
95
|
-
repo_configuration_response.raise_for_status()
|
|
96
|
-
except requests.exceptions.HTTPError as err:
|
|
97
|
-
# Attach the response body for better error logging
|
|
98
|
-
raise FrogmlException(f"{err}\nResponse body: {err.response.text}") from err
|
|
99
|
-
|
|
100
|
-
configuration_json: dict[str, object] = repo_configuration_response.json()
|
|
101
|
-
project_key: Optional[str] = configuration_json.get("projectKey")
|
|
102
|
-
|
|
103
|
-
if project_key is None:
|
|
104
|
-
raise ValueError(
|
|
105
|
-
f"Repository '{repository_key}' does not belong to any project"
|
|
106
|
-
)
|
|
107
|
-
|
|
108
|
-
return project_key
|
|
109
|
-
|
|
110
81
|
def log_model_to_artifactory(
|
|
111
82
|
self: Self,
|
|
112
83
|
dependencies: Optional[list[str]],
|
|
@@ -131,7 +102,6 @@ class JmlCustomerClient:
|
|
|
131
102
|
|
|
132
103
|
def register_model_version_in_jml(
|
|
133
104
|
self: Self,
|
|
134
|
-
project_key: str,
|
|
135
105
|
repository: str,
|
|
136
106
|
model_name: str,
|
|
137
107
|
model_version_name: str,
|
|
@@ -143,7 +113,6 @@ class JmlCustomerClient:
|
|
|
143
113
|
"""Register a model version in JFrog ML."""
|
|
144
114
|
try:
|
|
145
115
|
self.__model_version_manager_client.create_model_version(
|
|
146
|
-
project_key=project_key,
|
|
147
116
|
repository_key=repository,
|
|
148
117
|
model_name=model_name,
|
|
149
118
|
model_version_name=model_version_name,
|
|
@@ -3,8 +3,23 @@ import os
|
|
|
3
3
|
from platform import python_version
|
|
4
4
|
from typing import Dict, Optional, Callable, cast, Any
|
|
5
5
|
|
|
6
|
+
from frogml._proto.jfml.model_version.v1.model_version_framework_pb2 import (
|
|
7
|
+
ModelVersionFramework,
|
|
8
|
+
CatboostFramework,
|
|
9
|
+
HuggingFaceFramework,
|
|
10
|
+
OnnxFramework,
|
|
11
|
+
PythonPickleFramework,
|
|
12
|
+
PytorchFramework,
|
|
13
|
+
ScikitLearnFramework,
|
|
14
|
+
)
|
|
6
15
|
from frogml.core.exceptions import FrogmlException
|
|
7
16
|
from frogml.sdk.model_version.constants import (
|
|
17
|
+
CATBOOST_SERIALIZED_TYPE,
|
|
18
|
+
HUGGINGFACE_FRAMEWORK_FORMAT,
|
|
19
|
+
ONNX_FRAMEWORK_FORMAT,
|
|
20
|
+
PYTHON_FRAMEWORK_FORMAT,
|
|
21
|
+
PYTORCH_FRAMEWORK_FORMAT,
|
|
22
|
+
SCIKIT_LEARN_FRAMEWORK_FORMAT,
|
|
8
23
|
FROGML_LOG_LEVEL_ENVAR_NAME,
|
|
9
24
|
ModelFramework,
|
|
10
25
|
STORAGE_MODEL_ENTITY_TYPE,
|
|
@@ -28,23 +43,6 @@ from frogml.sdk.model_version.utils.validations import (
|
|
|
28
43
|
from frogml.storage.frog_ml import SerializationMetadata, FrogMLStorage
|
|
29
44
|
from frogml.storage.models.frogml_model_version import FrogMLModelVersion
|
|
30
45
|
from frogml.storage.models.model_manifest import ModelManifest
|
|
31
|
-
from frogml._proto.jfml.model_version.v1.model_version_framework_pb2 import (
|
|
32
|
-
ModelVersionFramework,
|
|
33
|
-
CatboostFramework,
|
|
34
|
-
HuggingFaceFramework,
|
|
35
|
-
OnnxFramework,
|
|
36
|
-
PythonPickleFramework,
|
|
37
|
-
PytorchFramework,
|
|
38
|
-
ScikitLearnFramework,
|
|
39
|
-
)
|
|
40
|
-
from frogml.sdk.model_version.constants import (
|
|
41
|
-
CATBOOST_SERIALIZED_TYPE,
|
|
42
|
-
HUGGINGFACE_FRAMEWORK_FORMAT,
|
|
43
|
-
ONNX_FRAMEWORK_FORMAT,
|
|
44
|
-
PYTHON_FRAMEWORK_FORMAT,
|
|
45
|
-
PYTORCH_FRAMEWORK_FORMAT,
|
|
46
|
-
SCIKIT_LEARN_FRAMEWORK_FORMAT,
|
|
47
|
-
)
|
|
48
46
|
|
|
49
47
|
_PYTHON_RUNTIME = "python"
|
|
50
48
|
|
|
@@ -128,9 +126,7 @@ def _log_model(config: ModelLogConfig) -> None:
|
|
|
128
126
|
)
|
|
129
127
|
|
|
130
128
|
if is_customer_exists_in_jml:
|
|
131
|
-
project_key: str = jml_customer_client.get_project_key(config.repository)
|
|
132
129
|
jml_customer_client.validate_model_version(
|
|
133
|
-
project_key,
|
|
134
130
|
config.repository,
|
|
135
131
|
config.model_name,
|
|
136
132
|
config.version,
|
|
@@ -170,7 +166,6 @@ def _log_model(config: ModelLogConfig) -> None:
|
|
|
170
166
|
|
|
171
167
|
if is_customer_exists_in_jml:
|
|
172
168
|
jml_customer_client.register_model_version_in_jml(
|
|
173
|
-
project_key,
|
|
174
169
|
config.repository,
|
|
175
170
|
config.model_name,
|
|
176
171
|
config.version,
|
|
@@ -280,12 +280,6 @@ class ArtifactoryApi:
|
|
|
280
280
|
url=join_url(self.uri, "/api/security/encryptedPassword")
|
|
281
281
|
)
|
|
282
282
|
|
|
283
|
-
def get_repository_configuration(self: Self, repository_key: str) -> Response:
|
|
284
|
-
url: str = modify_url(
|
|
285
|
-
self.uri, f"artifactory/api/v2/repositories/{repository_key}"
|
|
286
|
-
)
|
|
287
|
-
return self.http_client.get(url=url)
|
|
288
|
-
|
|
289
283
|
def generate_access_token(self: Self) -> Response:
|
|
290
284
|
"""
|
|
291
285
|
Generates an access token for authenticating with the JFrog Platform.
|
frogml/storage/frog_ml.py
CHANGED
|
@@ -42,7 +42,6 @@ from frogml.storage.utils import (
|
|
|
42
42
|
validate_not_folder_paths,
|
|
43
43
|
validate_path_exists,
|
|
44
44
|
)
|
|
45
|
-
from typing_extensions import Self
|
|
46
45
|
|
|
47
46
|
|
|
48
47
|
class FileType(Enum):
|
|
@@ -74,11 +73,6 @@ class FrogMLStorage(BaseStorage):
|
|
|
74
73
|
max_workers=self.http_threads_count
|
|
75
74
|
)
|
|
76
75
|
|
|
77
|
-
def get_repository_configuration(self: Self, repository_key: str):
|
|
78
|
-
return self.artifactory_api.get_repository_configuration(
|
|
79
|
-
repository_key=repository_key
|
|
80
|
-
)
|
|
81
|
-
|
|
82
76
|
def upload_dataset_version(
|
|
83
77
|
self,
|
|
84
78
|
repository: str,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
frogml/__init__.py,sha256=
|
|
1
|
+
frogml/__init__.py,sha256=JP-cFHP8AlTdbWNRE2HEH53VyOlH_yKMy1q0PTGN0Pg,741
|
|
2
2
|
frogml/_proto/jfml/hosting_gateway/v1/build_upload_url_pb2.py,sha256=pY7-QarLJWbL9uNmZ69RfE7IPVzwpVIhtd3A0wztSNY,1942
|
|
3
3
|
frogml/_proto/jfml/hosting_gateway/v1/build_upload_url_pb2.pyi,sha256=505I4uUrCmv2hsUw2H5eT-nlkNOCQOWodpvEkH2fHIo,3073
|
|
4
4
|
frogml/_proto/jfml/hosting_gateway/v1/build_upload_url_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
@@ -12,7 +12,7 @@ frogml/_proto/jfml/model_version/v1/build_spec_pb2.py,sha256=S_pdnyFvTLnXNe_iRZ0
|
|
|
12
12
|
frogml/_proto/jfml/model_version/v1/build_spec_pb2.pyi,sha256=P7We8OZGBi-_0g-s1p4hPwvqYE3ygaiZsqjYiBmJA2E,4821
|
|
13
13
|
frogml/_proto/jfml/model_version/v1/build_spec_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
14
14
|
frogml/_proto/jfml/model_version/v1/model_repository_spec_pb2.py,sha256=C41E30HmYwfYtAwPUM9lJW_oWg6JH7u9NAQWN3DnMWI,1503
|
|
15
|
-
frogml/_proto/jfml/model_version/v1/model_repository_spec_pb2.pyi,sha256=
|
|
15
|
+
frogml/_proto/jfml/model_version/v1/model_repository_spec_pb2.pyi,sha256=_Rr7sdDxsVjl0L4GReKMAaeUC_yZJ_OgvkNg81IrmWs,1660
|
|
16
16
|
frogml/_proto/jfml/model_version/v1/model_repository_spec_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
17
17
|
frogml/_proto/jfml/model_version/v1/model_version_framework_pb2.py,sha256=ACFTNdlRZ1yHF1mV0ZxjE_rR-gWZxS8HB2maPUw59J0,2765
|
|
18
18
|
frogml/_proto/jfml/model_version/v1/model_version_framework_pb2.pyi,sha256=Ov8O3lWPtc-KmGjpm3-It15IINzCVt2QXAC6JXNrupY,3725
|
|
@@ -221,8 +221,8 @@ frogml/_proto/qwak/builds/build_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMh
|
|
|
221
221
|
frogml/_proto/qwak/builds/build_url_pb2.py,sha256=A0RbECLF1IWKNTCEnQbrrG8chWeDtNMEJE4X4JOe45E,4706
|
|
222
222
|
frogml/_proto/qwak/builds/build_url_pb2.pyi,sha256=_GLOeKP0Mq-2NT57sIPXYJYIvfGqgICc_sZkxzbMA5s,11352
|
|
223
223
|
frogml/_proto/qwak/builds/build_url_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
224
|
-
frogml/_proto/qwak/builds/build_values_pb2.py,sha256=
|
|
225
|
-
frogml/_proto/qwak/builds/build_values_pb2.pyi,sha256=
|
|
224
|
+
frogml/_proto/qwak/builds/build_values_pb2.py,sha256=rXPVsz5X3NgzYO4oIS24U5Pzl97_q-RpVadfpEBuHpg,9777
|
|
225
|
+
frogml/_proto/qwak/builds/build_values_pb2.pyi,sha256=suQvCUD9CZQyeTBCsmlHl0CG2YaXws86npEkcvLDGnE,25328
|
|
226
226
|
frogml/_proto/qwak/builds/build_values_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
227
227
|
frogml/_proto/qwak/builds/builds_orchestrator_service_pb2.py,sha256=2JsoBmnLaY6DLoRyHavps7-ZBpONfjFo6R5J2CwZSwo,14842
|
|
228
228
|
frogml/_proto/qwak/builds/builds_orchestrator_service_pb2.pyi,sha256=VyAxKaI_R0P6zo__ZHVLkRHVQ_TNwIlJ-Ht26zfpAuE,24904
|
|
@@ -702,7 +702,7 @@ frogml/core/clients/model_management/client.py,sha256=L3rUPfxRNA2s4KV5294QXkPCmi
|
|
|
702
702
|
frogml/core/clients/model_version_manager/__init__.py,sha256=4Pnfzj4Egps48__dProdbSKQl5pNip0hGJd75w67BfY,46
|
|
703
703
|
frogml/core/clients/model_version_manager/build_model_version_dto.py,sha256=N-W84WyKDiwr-lmcpLss0gOV3QK4EAcpv2lqv1TROos,1984
|
|
704
704
|
frogml/core/clients/model_version_manager/build_model_version_request_mapper.py,sha256=BYK_nmfLF0o9QWTKfcOfsP5j1hmdu5RQkmsQ0ypO6rI,4760
|
|
705
|
-
frogml/core/clients/model_version_manager/client.py,sha256=
|
|
705
|
+
frogml/core/clients/model_version_manager/client.py,sha256=T3pJmjgkL8E0SPSGWZHXDVmEAs3Ow36p-nHAg-tjgxo,11108
|
|
706
706
|
frogml/core/clients/model_version_manager/const.py,sha256=SBEi06KU-ntF6oxjTpSXbd9R72x_mm9cD9JhYQLXsMY,684
|
|
707
707
|
frogml/core/clients/secret_service/__init__.py,sha256=TdQl1lgplXCKVHYSN4feRIAoonZ7XDz50zALjwVDcM4,40
|
|
708
708
|
frogml/core/clients/secret_service/client.py,sha256=RDicLLGWIV1Ecm5A4F4TcQec5SHudTkdXG8eRilHJ8M,3657
|
|
@@ -1057,16 +1057,16 @@ frogml/sdk/model_version/transformers/initialize_model_transformer.py,sha256=7AT
|
|
|
1057
1057
|
frogml/sdk/model_version/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1058
1058
|
frogml/sdk/model_version/utils/dependencies_tools.py,sha256=Sdmbf3Nb_xlc8uY4fK8bvPOGwh7OtejdZd1m5POfsDU,6403
|
|
1059
1059
|
frogml/sdk/model_version/utils/files_tools.py,sha256=9995FuZ5xMbN5Bm77BzDYU0cQ4nwCYYAl6goynJVvdI,11595
|
|
1060
|
-
frogml/sdk/model_version/utils/jml/customer_client.py,sha256=
|
|
1060
|
+
frogml/sdk/model_version/utils/jml/customer_client.py,sha256=a5S2CaRFiFSXmFsuFCmd7OO_bpweha-KcAHzcyjz1fA,5034
|
|
1061
1061
|
frogml/sdk/model_version/utils/log_model_helper.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1062
1062
|
frogml/sdk/model_version/utils/model_log_config.py,sha256=6Geo68s02zJc9pqqmEoOe8za5DU2ttvWBdKf8eXhvVY,12267
|
|
1063
|
-
frogml/sdk/model_version/utils/storage.py,sha256=
|
|
1063
|
+
frogml/sdk/model_version/utils/storage.py,sha256=aVyixU-BygUTVFrxV4nMfA5AiSPCyuia8GL38YoJmiM,10255
|
|
1064
1064
|
frogml/sdk/model_version/utils/storage_helper.py,sha256=fZLIjEAHVxhFXVk08z0pfFWFzOeJDZjLSVVnp3ZY9kw,374
|
|
1065
1065
|
frogml/sdk/model_version/utils/validations.py,sha256=pGrhd5f5WeL5qit9CCG0Jlx21WY5M3V_psTD9tlcs7U,1203
|
|
1066
1066
|
frogml/storage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1067
1067
|
frogml/storage/_environment.py,sha256=zuzOJBtBwFaguwn_JkKjfhXStZoustgP30KzOP3mYv8,707
|
|
1068
1068
|
frogml/storage/artifactory/__init__.py,sha256=C02rcm7kqsZBVA6c6Gztxamj96hn8Aj6BuzYWFRmWbQ,71
|
|
1069
|
-
frogml/storage/artifactory/_artifactory_api.py,sha256=
|
|
1069
|
+
frogml/storage/artifactory/_artifactory_api.py,sha256=MkK6ZZ5tJcj7xTk6OqMcfY2MEnFv7zO40Vdndo4ocUQ,12522
|
|
1070
1070
|
frogml/storage/authentication/login/__init__.py,sha256=ch8UhQwh3o5ddyoJykQ0Bnog5-8qKHmeDpwqny8xMzM,46
|
|
1071
1071
|
frogml/storage/authentication/login/_login_cli.py,sha256=ZSTIGdoiH2vsOJCqaN0DVwgMgKnV--7SnMkySIWMiks,7798
|
|
1072
1072
|
frogml/storage/authentication/login/_login_command.py,sha256=4ib9UVMC-CmsMuJATd_l3luvUhRvzbIs35fZw2bA0Ms,2845
|
|
@@ -1081,7 +1081,7 @@ frogml/storage/base_storage.py,sha256=k9CAj9wlnlydxuVZKcC-IcW9GP0KdVoDNKUevemeaY
|
|
|
1081
1081
|
frogml/storage/constants.py,sha256=9MxTEogYeHYn-6jE5AGBxVcHVX8N8a5eOwfRDGHEvGY,2268
|
|
1082
1082
|
frogml/storage/exceptions/checksum_verification_error.py,sha256=t1muLRYvqza7Q4jo1mYHck9ZoDwlGE7WxcheAFAnIQs,159
|
|
1083
1083
|
frogml/storage/exceptions/validation_error.py,sha256=_twu_xcL-O7D26qkskuuR-_NcnPPTADIUO9HGY4g0x0,156
|
|
1084
|
-
frogml/storage/frog_ml.py,sha256=
|
|
1084
|
+
frogml/storage/frog_ml.py,sha256=s9rfedc3e2RYTflU2Vt59MnEIZvaPW4FwmD5R2PTHxs,23525
|
|
1085
1085
|
frogml/storage/http/__init__.py,sha256=BOXGzjq1gJXlihldaZvMQNGJIdCy-UHWsk3u-bXEZnQ,36
|
|
1086
1086
|
frogml/storage/http/http_client.py,sha256=tXegbonhMiyN0FzjTSqOeg5OBsFYBozkbMtRfZibTUM,2435
|
|
1087
1087
|
frogml/storage/logging/__init__.py,sha256=JaBPWQQt3pjoLhUcZtgqPydGlKAWYpSvfPkt2z1Wi90,32
|
|
@@ -1150,6 +1150,6 @@ frogml_services_mock/mocks/utils/exception_handlers.py,sha256=k_8mez3cwjNjKE9yGQ
|
|
|
1150
1150
|
frogml_services_mock/services_mock.py,sha256=y1_h189Ldu5MdVUW4nj-WMBtvUfkM_aKse7UfAb6Rxk,19419
|
|
1151
1151
|
frogml_services_mock/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1152
1152
|
frogml_services_mock/utils/service_utils.py,sha256=ZlB0CnB1J6oBn6_m7fQO2U8tKoboHdUa6ljjkRMYNXU,265
|
|
1153
|
-
frogml-1.2.
|
|
1154
|
-
frogml-1.2.
|
|
1155
|
-
frogml-1.2.
|
|
1153
|
+
frogml-1.2.29.dist-info/METADATA,sha256=FrfR_z0VNK7nnmL3lf2C80r6XQobmt1kggPic-yDxYM,5599
|
|
1154
|
+
frogml-1.2.29.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
1155
|
+
frogml-1.2.29.dist-info/RECORD,,
|
|
File without changes
|