frogml-core 0.0.4__py3-none-any.whl → 0.0.6__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 +1 -1
- frogml_core/clients/model_management/client.py +2 -1
- frogml_core/clients/model_version_manager/client.py +5 -4
- frogml_core/utils/model_utils.py +2 -0
- {frogml_core-0.0.4.dist-info → frogml_core-0.0.6.dist-info}/METADATA +3 -5
- {frogml_core-0.0.4.dist-info → frogml_core-0.0.6.dist-info}/RECORD +10 -9
- frogml_proto/qwak/automation/v1/automation_pb2.py +6 -6
- frogml_proto/qwak/automation/v1/automation_pb2.pyi +4 -1
- frogml_services_mock/mocks/authentication_service.py +2 -2
- {frogml_core-0.0.4.dist-info → frogml_core-0.0.6.dist-info}/WHEEL +0 -0
frogml_core/__init__.py
CHANGED
@@ -3,6 +3,7 @@ from typing import Optional
|
|
3
3
|
import grpc
|
4
4
|
from dependency_injector.wiring import Provide
|
5
5
|
|
6
|
+
from frogml_core.utils.model_utils import get_model_id_from_model_name
|
6
7
|
from frogml_proto.qwak.models.models_pb2 import (
|
7
8
|
CreateModelRequest,
|
8
9
|
DeleteModelRequest,
|
@@ -59,7 +60,7 @@ class ModelsManagementClient:
|
|
59
60
|
return self._models_management_service.CreateModel(
|
60
61
|
CreateModelRequest(
|
61
62
|
model_spec=ModelSpec(
|
62
|
-
model_named_id=model_name
|
63
|
+
model_named_id=get_model_id_from_model_name(model_name),
|
63
64
|
display_name=model_name,
|
64
65
|
project_id=project_id,
|
65
66
|
model_description=model_description,
|
@@ -3,6 +3,7 @@ from platform import python_version
|
|
3
3
|
from dependency_injector.wiring import Provide
|
4
4
|
from grpc import RpcError
|
5
5
|
|
6
|
+
from frogml_core.utils.model_utils import get_model_id_from_model_name
|
6
7
|
from frogml_proto.jfml.model_version.v1.model_repository_spec_pb2 import (
|
7
8
|
ModelRepositorySpec,
|
8
9
|
)
|
@@ -33,7 +34,7 @@ class ModelVersionManagerClient:
|
|
33
34
|
def __build_create_model_request(
|
34
35
|
project_key: str,
|
35
36
|
repository_key: str,
|
36
|
-
|
37
|
+
model_name: str,
|
37
38
|
model_version_name: str,
|
38
39
|
model_version_framework: ModelVersionFramework,
|
39
40
|
dry_run: bool,
|
@@ -44,7 +45,7 @@ class ModelVersionManagerClient:
|
|
44
45
|
repository_spec=ModelRepositorySpec(
|
45
46
|
project_key=project_key,
|
46
47
|
repository_key=repository_key,
|
47
|
-
model_id=
|
48
|
+
model_id=get_model_id_from_model_name(model_name),
|
48
49
|
),
|
49
50
|
name=model_version_name,
|
50
51
|
framework=model_version_framework,
|
@@ -64,7 +65,7 @@ class ModelVersionManagerClient:
|
|
64
65
|
create_model_request = self.__build_create_model_request(
|
65
66
|
project_key=project_key,
|
66
67
|
repository_key=repository_key,
|
67
|
-
|
68
|
+
model_name=model_name,
|
68
69
|
model_version_name=model_version_name,
|
69
70
|
model_version_framework=model_version_framework,
|
70
71
|
dry_run=True,
|
@@ -90,7 +91,7 @@ class ModelVersionManagerClient:
|
|
90
91
|
create_model_request = self.__build_create_model_request(
|
91
92
|
project_key=project_key,
|
92
93
|
repository_key=repository_key,
|
93
|
-
|
94
|
+
model_name=model_name,
|
94
95
|
model_version_name=model_version_name,
|
95
96
|
model_version_framework=model_version_framework,
|
96
97
|
dry_run=False,
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: frogml-core
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.6
|
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
|
@@ -12,8 +12,6 @@ Classifier: Programming Language :: Python :: 3
|
|
12
12
|
Classifier: Programming Language :: Python :: 3.9
|
13
13
|
Classifier: Programming Language :: Python :: 3.10
|
14
14
|
Classifier: Programming Language :: Python :: 3.11
|
15
|
-
Classifier: Programming Language :: Python :: 3.7
|
16
|
-
Classifier: Programming Language :: Python :: 3.8
|
17
15
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
18
16
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
19
17
|
Provides-Extra: feature-store
|
@@ -28,12 +26,12 @@ Requires-Dist: frogml-storage (>=0.9.0,<0.10.0)
|
|
28
26
|
Requires-Dist: grpcio (>=1.57.0)
|
29
27
|
Requires-Dist: joblib (>=1.3.2,<2.0.0)
|
30
28
|
Requires-Dist: marshmallow-dataclass (>=8.5.8,<9.0.0)
|
31
|
-
Requires-Dist: protobuf (>=3.10,<4) ;
|
29
|
+
Requires-Dist: protobuf (>=3.10,<4) ; python_version < "3.10"
|
32
30
|
Requires-Dist: protobuf (>=4.21.6) ; python_version >= "3.10"
|
33
31
|
Requires-Dist: pyarrow (>=6.0.0) ; extra == "feature-store"
|
34
32
|
Requires-Dist: pyathena (>=2.2.0,!=2.18.0) ; extra == "feature-store"
|
33
|
+
Requires-Dist: pyjwt (>=2.10.1,<3.0.0)
|
35
34
|
Requires-Dist: pyspark (==3.4.2) ; extra == "feature-store"
|
36
|
-
Requires-Dist: python-jose
|
37
35
|
Requires-Dist: python-json-logger (>=3.2.1,<4.0.0)
|
38
36
|
Requires-Dist: requests
|
39
37
|
Requires-Dist: retrying (==1.3.4)
|
@@ -1,4 +1,4 @@
|
|
1
|
-
frogml_core/__init__.py,sha256=
|
1
|
+
frogml_core/__init__.py,sha256=YrxSzDS2w-mX_wxtVwIoK6vNGQ32nDj-A7Pv5GAq97A,776
|
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
|
@@ -71,9 +71,9 @@ frogml_core/clients/kube_deployment_captain/client.py,sha256=oz7VF37TSO0S07MqXOY
|
|
71
71
|
frogml_core/clients/logging_client/__init__.py,sha256=1OCHnigQBYThBwGbxCreYA0BgP0HcuLFzNEWd3Yxh-c,34
|
72
72
|
frogml_core/clients/logging_client/client.py,sha256=A7qQJWW54Ve7O0DuJX9gmSJlUQyRIKC0VmfGS6bUwjo,4950
|
73
73
|
frogml_core/clients/model_management/__init__.py,sha256=vjWVP8MjmK4_A70WOgJqa6x24AeLK-ABjGJtogGzw9w,43
|
74
|
-
frogml_core/clients/model_management/client.py,sha256=
|
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
|
76
|
+
frogml_core/clients/model_version_manager/client.py,sha256=-QN6ibQ_wdkS_pUqcD_WfjSoroeGgCMFEXOcqOdndVo,4147
|
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
|
@@ -419,6 +419,7 @@ frogml_core/tools/logger/logging.yml,sha256=E3wtIVo7JV5DPP0EjT2Ang1zhdntW9s7uMVW
|
|
419
419
|
frogml_core/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
420
420
|
frogml_core/utils/datetime_utils.py,sha256=3zK7PUrerMlwB7U6WeuYwMAclVMfPqBNZihNRyIVMs4,581
|
421
421
|
frogml_core/utils/dict_utils.py,sha256=YsOSQeGpmrsm3CMnx2ZbqvzEcybk3m-0TCMXbBdBXaY,263
|
422
|
+
frogml_core/utils/model_utils.py,sha256=fLdYIScmVUfChGGxOacH2mID00ZUOPtS4ewUimEDGhg,132
|
422
423
|
frogml_core/utils/proto_utils.py,sha256=QXEOf-pmqRLaijqCVt4IHb7_b8bmG1_ghfgMmqzHrg0,1730
|
423
424
|
frogml_core/vector_store/__init__.py,sha256=9gR2B5A1MXb2ks5VUzqrPASGpVTDuJs4uq7N7FNWOY4,120
|
424
425
|
frogml_core/vector_store/client.py,sha256=mmchLHjR5aOZOLIz1eibmsoXSMHvcHjCtaWB24QZoAY,6067
|
@@ -532,8 +533,8 @@ frogml_proto/qwak/automation/v1/automation_execution_pb2_grpc.py,sha256=1oboBPFx
|
|
532
533
|
frogml_proto/qwak/automation/v1/automation_management_service_pb2.py,sha256=m5Yku2SUszB3-v3c3WCnZ0TICysK52OzAV5rg6Ta4qw,21191
|
533
534
|
frogml_proto/qwak/automation/v1/automation_management_service_pb2.pyi,sha256=Zt3T45t9CXdTZyNkQYWY9k2Axn4HGEMc--VDvzByX10,15257
|
534
535
|
frogml_proto/qwak/automation/v1/automation_management_service_pb2_grpc.py,sha256=8vCWTmXc8c57mT6v-l9aNfvnK-OuEvgEygvZfwGDqwE,25476
|
535
|
-
frogml_proto/qwak/automation/v1/automation_pb2.py,sha256=
|
536
|
-
frogml_proto/qwak/automation/v1/automation_pb2.pyi,sha256=
|
536
|
+
frogml_proto/qwak/automation/v1/automation_pb2.py,sha256=Tmu6jaP5grkKyNtNm8eoEX8RAKskQpSk9PrMtdihufw,3933
|
537
|
+
frogml_proto/qwak/automation/v1/automation_pb2.pyi,sha256=lJ4sdwOmlUv4HESaCHDrtiDeoRJR7aCpf-J-DRunU1c,5594
|
537
538
|
frogml_proto/qwak/automation/v1/automation_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
538
539
|
frogml_proto/qwak/automation/v1/common_pb2.py,sha256=PeJb40TXeIwjENReF-MNsZ8e8QiUxA_DwiGVTwn7QmI,2569
|
539
540
|
frogml_proto/qwak/automation/v1/common_pb2.pyi,sha256=v1FL9ghFd_oy1WuQYnczXOEdl2Firmh52ofRO8GwVx4,2785
|
@@ -967,7 +968,7 @@ frogml_services_mock/mocks/alert_manager_service_api.py,sha256=wEBgwtCRAxUSAni-r
|
|
967
968
|
frogml_services_mock/mocks/alert_registry_service_api.py,sha256=k_MbEytyIvUcMffqd1E6Wf0qBEOyZMVpBu-jaS6Tvjw,2277
|
968
969
|
frogml_services_mock/mocks/analytics_api.py,sha256=9zA90He4hYOd8Wr1k_wZho6bWsbkd8mVUt4MUCrTEKc,2132
|
969
970
|
frogml_services_mock/mocks/audience_service_api.py,sha256=x96adhF05NYqEtI8lJaf5llrZX29udPLHuVXKy_FbR0,2661
|
970
|
-
frogml_services_mock/mocks/authentication_service.py,sha256=
|
971
|
+
frogml_services_mock/mocks/authentication_service.py,sha256=cyuH9XX8oicOz_GFoIgP62ru0NWxk7OiXQushfftBUc,1170
|
971
972
|
frogml_services_mock/mocks/automation_management_service.py,sha256=-7kncqM3R-_pLmppzFpuv_TniXCVGVuESculVuQ3EbY,8238
|
972
973
|
frogml_services_mock/mocks/autoscaling_service_api.py,sha256=u3RkwHxACPFSk9DwhLFQSI7_ULoHN9uWFL-zyyo-sNw,1032
|
973
974
|
frogml_services_mock/mocks/batch_job_manager_service.py,sha256=QY3HA0MlA8eg2jkQEzjyGx8UsSnlGbOUopDLOYLacL4,13146
|
@@ -1012,6 +1013,6 @@ frogml_services_mock/mocks/workspace_manager_service_mock.py,sha256=WbOiWgOyr-xT
|
|
1012
1013
|
frogml_services_mock/services_mock.py,sha256=_34z6rFCHFwcSni-9eyJlrH264xsL_QDNmG-EBv0zMc,20281
|
1013
1014
|
frogml_services_mock/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1014
1015
|
frogml_services_mock/utils/service_utils.py,sha256=ZlB0CnB1J6oBn6_m7fQO2U8tKoboHdUa6ljjkRMYNXU,265
|
1015
|
-
frogml_core-0.0.
|
1016
|
-
frogml_core-0.0.
|
1017
|
-
frogml_core-0.0.
|
1016
|
+
frogml_core-0.0.6.dist-info/METADATA,sha256=Z9dDG7CFuEb9D-pxmi7Lkcv-ORCfXBNMqdOY8TW_T8Q,2105
|
1017
|
+
frogml_core-0.0.6.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
|
1018
|
+
frogml_core-0.0.6.dist-info/RECORD,,
|
@@ -18,7 +18,7 @@ from frogml_proto.qwak.automation.v1 import trigger_pb2 as qwak_dot_automation_d
|
|
18
18
|
from frogml_proto.qwak.automation.v1 import notification_pb2 as qwak_dot_automation_dot_v1_dot_notification__pb2
|
19
19
|
|
20
20
|
|
21
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#qwak/automation/v1/automation.proto\x12\x12qwak.automation.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1fqwak/automation/v1/action.proto\x1a qwak/automation/v1/trigger.proto\x1a%qwak/automation/v1/notification.proto\"\
|
21
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#qwak/automation/v1/automation.proto\x12\x12qwak.automation.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1fqwak/automation/v1/action.proto\x1a qwak/automation/v1/trigger.proto\x1a%qwak/automation/v1/notification.proto\"\xe4\x01\n\nAutomation\x12\x15\n\rautomation_id\x18\x01 \x01(\t\x12;\n\x0f\x61utomation_spec\x18\x02 \x01(\x0b\x32\".qwak.automation.v1.AutomationSpec\x12\x1b\n\x13qwak_environment_id\x18\x03 \x01(\t\x12\x39\n\x0c\x63reate_audit\x18\x04 \x01(\x0b\x32#.qwak.automation.v1.AutomationAudit\x12\x12\n\nis_deleted\x18\x05 \x01(\x08\x12\x16\n\x0ejfrog_token_id\x18\x06 \x01(\t\"\xe3\x02\n\x0e\x41utomationSpec\x12\x10\n\x08model_id\x18\x02 \x01(\t\x12\x17\n\x0f\x61utomation_name\x18\x03 \x01(\t\x12,\n\x07trigger\x18\x04 \x01(\x0b\x32\x1b.qwak.automation.v1.Trigger\x12*\n\x06\x61\x63tion\x18\x05 \x01(\x0b\x32\x1a.qwak.automation.v1.Action\x12\x1e\n\x16\x61utomation_description\x18\x06 \x01(\t\x12\x12\n\nis_enabled\x18\x07 \x01(\x08\x12\x32\n\x08on_error\x18\x08 \x01(\x0b\x32 .qwak.automation.v1.Notification\x12\x34\n\non_success\x18\t \x01(\x0b\x32 .qwak.automation.v1.Notification\x12\x1b\n\x13\x65xecute_immediately\x18\n \x01(\x08\x12\x11\n\tis_sdk_v1\x18\x0b \x01(\x08\"L\n\x0f\x41utomationAudit\x12(\n\x04\x64\x61te\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07user_id\x18\x02 \x01(\tB!\n\x1d\x63om.qwak.ai.automation.api.v1P\x01\x62\x06proto3')
|
22
22
|
|
23
23
|
|
24
24
|
|
@@ -51,9 +51,9 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
51
51
|
DESCRIPTOR._options = None
|
52
52
|
DESCRIPTOR._serialized_options = b'\n\035com.qwak.ai.automation.api.v1P\001'
|
53
53
|
_AUTOMATION._serialized_start=199
|
54
|
-
_AUTOMATION._serialized_end=
|
55
|
-
_AUTOMATIONSPEC._serialized_start=
|
56
|
-
_AUTOMATIONSPEC._serialized_end=
|
57
|
-
_AUTOMATIONAUDIT._serialized_start=
|
58
|
-
_AUTOMATIONAUDIT._serialized_end=
|
54
|
+
_AUTOMATION._serialized_end=427
|
55
|
+
_AUTOMATIONSPEC._serialized_start=430
|
56
|
+
_AUTOMATIONSPEC._serialized_end=785
|
57
|
+
_AUTOMATIONAUDIT._serialized_start=787
|
58
|
+
_AUTOMATIONAUDIT._serialized_end=863
|
59
59
|
# @@protoc_insertion_point(module_scope)
|
@@ -26,6 +26,7 @@ class Automation(google.protobuf.message.Message):
|
|
26
26
|
QWAK_ENVIRONMENT_ID_FIELD_NUMBER: builtins.int
|
27
27
|
CREATE_AUDIT_FIELD_NUMBER: builtins.int
|
28
28
|
IS_DELETED_FIELD_NUMBER: builtins.int
|
29
|
+
JFROG_TOKEN_ID_FIELD_NUMBER: builtins.int
|
29
30
|
automation_id: builtins.str
|
30
31
|
"""The automation ID"""
|
31
32
|
@property
|
@@ -35,6 +36,7 @@ class Automation(google.protobuf.message.Message):
|
|
35
36
|
@property
|
36
37
|
def create_audit(self) -> global___AutomationAudit: ...
|
37
38
|
is_deleted: builtins.bool
|
39
|
+
jfrog_token_id: builtins.str
|
38
40
|
def __init__(
|
39
41
|
self,
|
40
42
|
*,
|
@@ -43,9 +45,10 @@ class Automation(google.protobuf.message.Message):
|
|
43
45
|
qwak_environment_id: builtins.str = ...,
|
44
46
|
create_audit: global___AutomationAudit | None = ...,
|
45
47
|
is_deleted: builtins.bool = ...,
|
48
|
+
jfrog_token_id: builtins.str = ...,
|
46
49
|
) -> None: ...
|
47
50
|
def HasField(self, field_name: typing_extensions.Literal["automation_spec", b"automation_spec", "create_audit", b"create_audit"]) -> builtins.bool: ...
|
48
|
-
def ClearField(self, field_name: typing_extensions.Literal["automation_id", b"automation_id", "automation_spec", b"automation_spec", "create_audit", b"create_audit", "is_deleted", b"is_deleted", "qwak_environment_id", b"qwak_environment_id"]) -> None: ...
|
51
|
+
def ClearField(self, field_name: typing_extensions.Literal["automation_id", b"automation_id", "automation_spec", b"automation_spec", "create_audit", b"create_audit", "is_deleted", b"is_deleted", "jfrog_token_id", b"jfrog_token_id", "qwak_environment_id", b"qwak_environment_id"]) -> None: ...
|
49
52
|
|
50
53
|
global___Automation = Automation
|
51
54
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
from datetime import datetime, timedelta
|
2
2
|
|
3
|
-
|
3
|
+
import jwt
|
4
4
|
|
5
5
|
from frogml_proto.qwak.administration.v0.authentication.authentication_service_pb2 import (
|
6
6
|
AuthenticateRequest,
|
@@ -23,7 +23,7 @@ _payload = {
|
|
23
23
|
"exp": epoch,
|
24
24
|
}
|
25
25
|
|
26
|
-
mock_jwt_token = jwt.encode(_payload, "secret", algorithm="HS256")
|
26
|
+
mock_jwt_token = jwt.encode(_payload, key="secret", algorithm="HS256")
|
27
27
|
|
28
28
|
|
29
29
|
class AuthenticationServiceMock(AuthenticationServiceServicer):
|
File without changes
|