frogml-core 0.0.73__py3-none-any.whl → 0.0.75__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.73"
4
+ __version__ = "0.0.75"
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
@@ -4,9 +4,6 @@ from typing import Optional
4
4
 
5
5
  import requests
6
6
 
7
- from frogml_proto.qwak.builds.builds_orchestrator_service_pb2 import (
8
- AuthenticationDetail,
9
- )
10
7
  from frogml_core.clients.model_management.client import ModelsManagementClient
11
8
  from frogml_core.exceptions import FrogmlException
12
9
 
@@ -71,33 +68,22 @@ def fetch_build_id() -> Optional[str]:
71
68
  def upload_data(
72
69
  upload_url: str,
73
70
  data: bytes,
74
- authentication_details: Optional[AuthenticationDetail],
71
+ headers: dict,
75
72
  content_type: str = "text/plain",
76
- ) -> None:
73
+ ):
77
74
  """
78
75
  Upload data
79
- Args:
80
- upload_url: the url to upload to.
81
- data: the data to upload
82
- authentication_details: authentication details for upload data
83
- content_type: Uploaded content-type
76
+ :param upload_url: the url to upload to.
77
+ :param data: the data to upload
78
+ :param headers: authentication details for upload data
79
+ :param content_type: Uploaded content-type
84
80
  """
85
81
  try:
86
- auth = None
87
- if (
88
- authentication_details.WhichOneof("integration_type")
89
- == "jfrog_authentication_detail"
90
- ):
91
- auth = (
92
- authentication_details.jfrog_authentication_detail.username,
93
- authentication_details.jfrog_authentication_detail.token,
94
- )
95
-
82
+ headers["Content-Type"] = content_type
96
83
  http_response = requests.put( # nosec B113
97
84
  upload_url,
98
85
  data=data,
99
- headers={"content-type": content_type},
100
- auth=auth,
86
+ headers=headers,
101
87
  )
102
88
 
103
89
  if http_response.status_code not in [200, 201]:
@@ -11,6 +11,9 @@ from frogml_core.inner.model_loggers_utils import (
11
11
  validate_model,
12
12
  validate_tag,
13
13
  )
14
+ from frogml_proto.qwak.builds.builds_orchestrator_service_pb2 import (
15
+ GetBuildVersioningUploadURLResponse,
16
+ )
14
17
 
15
18
 
16
19
  def log_file(
@@ -38,7 +41,9 @@ def log_file(
38
41
  # Checking if called inside a model - then build id saved as environment variable or stays
39
42
  build_id = fetch_build_id()
40
43
 
41
- upload_url_response = BuildOrchestratorClient().get_build_versioning_upload_url(
44
+ upload_url_response: (
45
+ GetBuildVersioningUploadURLResponse
46
+ ) = BuildOrchestratorClient().get_build_versioning_upload_url(
42
47
  build_id=build_id,
43
48
  model_id=model_id,
44
49
  tag=tag,
@@ -53,7 +58,7 @@ def log_file(
53
58
  upload_data(
54
59
  upload_url_response.upload_url,
55
60
  f.read(),
56
- upload_url_response.authentication_detail,
61
+ upload_url_response.headers,
57
62
  )
58
63
 
59
64
 
@@ -12,6 +12,9 @@ from frogml_proto.qwak.builds.build_pb2 import (
12
12
  DataTableDefinition,
13
13
  )
14
14
  from frogml_proto.qwak.builds.build_url_pb2 import BuildVersioningTagsType
15
+ from frogml_proto.qwak.builds.builds_orchestrator_service_pb2 import (
16
+ GetBuildVersioningUploadURLResponse,
17
+ )
15
18
  from frogml_core.clients.build_orchestrator.client import BuildOrchestratorClient
16
19
  from frogml_core.clients.data_versioning.client import DataVersioningManagementClient
17
20
  from frogml_core.exceptions import FrogmlException
@@ -63,11 +66,13 @@ def log_data(
63
66
  build_id = fetch_build_id()
64
67
 
65
68
  client = BuildOrchestratorClient()
66
- upload_url_response = client.get_build_versioning_upload_url(
67
- build_id=build_id,
68
- model_id=model_id,
69
- tag=str(data_tag),
70
- tag_type=BuildVersioningTagsType.DATA_TAG_TYPE,
69
+ upload_url_response: GetBuildVersioningUploadURLResponse = (
70
+ client.get_build_versioning_upload_url(
71
+ build_id=build_id,
72
+ model_id=model_id,
73
+ tag=str(data_tag),
74
+ tag_type=BuildVersioningTagsType.DATA_TAG_TYPE,
75
+ )
71
76
  )
72
77
 
73
78
  string_buffer = StringIO()
@@ -76,7 +81,7 @@ def log_data(
76
81
  upload_url=upload_url_response.upload_url,
77
82
  data=gzip.compress(bytes(string_buffer.getvalue(), "utf-8")),
78
83
  content_type="text/plain",
79
- authentication_details=upload_url_response.authentication_detail,
84
+ headers=upload_url_response.headers,
80
85
  )
81
86
 
82
87
  dataframe_definition = DataTableDefinition(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: frogml-core
3
- Version: 0.0.73
3
+ Version: 0.0.75
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
@@ -30,8 +30,8 @@ Requires-Dist: protobuf (>=3.10,<4) ; python_version < "3.10"
30
30
  Requires-Dist: protobuf (>=4.21.6) ; python_version >= "3.10"
31
31
  Requires-Dist: pyarrow (>=6.0.0) ; extra == "feature-store"
32
32
  Requires-Dist: pyathena (>=2.2.0,!=2.18.0) ; extra == "feature-store"
33
+ Requires-Dist: pyjwt
33
34
  Requires-Dist: pyspark (==3.4.2) ; extra == "feature-store"
34
- Requires-Dist: python-jose
35
35
  Requires-Dist: python-json-logger (>=2.0.2)
36
36
  Requires-Dist: requests
37
37
  Requires-Dist: retrying (==1.3.4)
@@ -1,4 +1,4 @@
1
- frogml_core/__init__.py,sha256=H1v3NaV6G8_CLt1gzMDEGJYry0urU7ROISKUYX1mw5Q,777
1
+ frogml_core/__init__.py,sha256=YA-VXr_BCBVozb9QhI4ooAWWlaRYsojikorr_XdKa_U,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
@@ -275,7 +275,7 @@ frogml_core/inner/di_configuration/config.yml,sha256=GUvaZMWIDIR_d7hFcPVG_kHdCwp
275
275
  frogml_core/inner/di_configuration/containers.py,sha256=epzNvWcHcfO07EV6aQxEaGIehqgKBUK2CGzKgk1HeEA,1148
276
276
  frogml_core/inner/instance_template/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
277
277
  frogml_core/inner/instance_template/verify_template_id.py,sha256=3rmVpZyqDs7wUyXSmfJ8YjUK15Q4_H95J8Ba5E6KuA8,1951
278
- frogml_core/inner/model_loggers_utils.py,sha256=pGZ8Eh6PsoQTmDMKnI3ZVckl9n6ZVBslbuZdUnZFGbA,2967
278
+ frogml_core/inner/model_loggers_utils.py,sha256=NOSLcdKEoLIcK9Hx19KP1iGgzJu2NjWOGUh4yAuycTI,2465
279
279
  frogml_core/inner/provider.py,sha256=3evQnyp0v0enpvGGDyaZziusO4BGi-U9j1sno8DAHo4,70
280
280
  frogml_core/inner/runtime_di/__init__.py,sha256=HXqtejgH3J9TXjnEBT6cNwnTDPq6v3sTifcmfWiwyFA,312
281
281
  frogml_core/inner/runtime_di/containers.py,sha256=LbapepWFjBjkELEOTK7m7AJEfj4KENVDlpD7lv7zw6o,577
@@ -405,8 +405,8 @@ frogml_core/model/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG
405
405
  frogml_core/model/utils/extract_wrapped_function.py,sha256=uIle1zL8vbmeS3PGAuaNFLIUQAsvpuzk3LlH-Teba94,320
406
406
  frogml_core/model/utils/feature_utils.py,sha256=ObIU4jLKOMEa3DWEyrXm1m3wC2wseAVwr-zxlSiojYk,2525
407
407
  frogml_core/model_loggers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
408
- frogml_core/model_loggers/artifact_logger.py,sha256=xD3XVN8_qHP40q1ZbZS28vgEQUMljwAQINTonzXN-VU,2975
409
- frogml_core/model_loggers/data_logger.py,sha256=DhFA43cbJJJc7J4xGx1lUF0MhC8do7TN8RxcOdzTFgk,5520
408
+ frogml_core/model_loggers/artifact_logger.py,sha256=7T06QL1keo6BTpIh76JtXRcNlZuIbqECz343kEw0Hfc,3128
409
+ frogml_core/model_loggers/data_logger.py,sha256=I3o2TkAGAnKuVWccPMlGL5-rg1e2UDHRc9cRSS8kqmc,5678
410
410
  frogml_core/model_loggers/model_logger.py,sha256=xDUIwRzeFAorzzR47ovyag5ohwuYZWp9fRWpLpMzcg4,863
411
411
  frogml_core/testing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
412
412
  frogml_core/testing/fixtures.py,sha256=tjWIvdZ2nIfNPs6VtUeGx5coJepQVMUWemKGtqUYPzM,318
@@ -1041,7 +1041,7 @@ frogml_services_mock/mocks/alert_manager_service_api.py,sha256=wEBgwtCRAxUSAni-r
1041
1041
  frogml_services_mock/mocks/alert_registry_service_api.py,sha256=k_MbEytyIvUcMffqd1E6Wf0qBEOyZMVpBu-jaS6Tvjw,2277
1042
1042
  frogml_services_mock/mocks/analytics_api.py,sha256=9zA90He4hYOd8Wr1k_wZho6bWsbkd8mVUt4MUCrTEKc,2132
1043
1043
  frogml_services_mock/mocks/audience_service_api.py,sha256=x96adhF05NYqEtI8lJaf5llrZX29udPLHuVXKy_FbR0,2661
1044
- frogml_services_mock/mocks/authentication_service.py,sha256=M3cVfnQ2XcxQAWZCm9uR9cAVu_0BahEP4BdymYQfihI,1180
1044
+ frogml_services_mock/mocks/authentication_service.py,sha256=QevoMagWaRpP84jCrVyIiB57R8gyY1VMPl4BBSkh68o,1196
1045
1045
  frogml_services_mock/mocks/automation_management_service.py,sha256=-7kncqM3R-_pLmppzFpuv_TniXCVGVuESculVuQ3EbY,8238
1046
1046
  frogml_services_mock/mocks/autoscaling_service_api.py,sha256=u3RkwHxACPFSk9DwhLFQSI7_ULoHN9uWFL-zyyo-sNw,1032
1047
1047
  frogml_services_mock/mocks/batch_job_manager_service.py,sha256=QY3HA0MlA8eg2jkQEzjyGx8UsSnlGbOUopDLOYLacL4,13146
@@ -1087,6 +1087,6 @@ frogml_services_mock/mocks/workspace_manager_service_mock.py,sha256=WbOiWgOyr-xT
1087
1087
  frogml_services_mock/services_mock.py,sha256=xfbYvl05gFUq2oT82cT-6K2CEJ6d9kFX_tk77QZHTFI,20787
1088
1088
  frogml_services_mock/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1089
1089
  frogml_services_mock/utils/service_utils.py,sha256=ZlB0CnB1J6oBn6_m7fQO2U8tKoboHdUa6ljjkRMYNXU,265
1090
- frogml_core-0.0.73.dist-info/METADATA,sha256=Wj9TaS1GR3LEc-TVI0YUKGKbjTAjLE6wz-6cnvlYriA,2004
1091
- frogml_core-0.0.73.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
1092
- frogml_core-0.0.73.dist-info/RECORD,,
1090
+ frogml_core-0.0.75.dist-info/METADATA,sha256=Xuq12Oay9OO-Y9xizvv-JUQMocbZZem2lb-Wen_vUT0,1998
1091
+ frogml_core-0.0.75.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
1092
+ frogml_core-0.0.75.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 2.0.1
2
+ Generator: poetry-core 2.1.1
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -1,6 +1,6 @@
1
- from datetime import datetime, timedelta
1
+ from datetime import datetime, timedelta, timezone
2
2
 
3
- from jose import jwt
3
+ import jwt
4
4
 
5
5
  from frogml_proto.qwak.administration.v0.authentication.authentication_service_pb2 import (
6
6
  AuthenticateRequest,
@@ -10,7 +10,7 @@ from frogml_proto.qwak.administration.v0.authentication.authentication_service_p
10
10
  AuthenticationServiceServicer,
11
11
  )
12
12
 
13
- epoch = datetime.timestamp(datetime.utcnow() + timedelta(days=1))
13
+ epoch: float = datetime.timestamp(datetime.now(timezone.utc) + timedelta(days=1))
14
14
 
15
15
  _payload = {
16
16
  "https://auth-token.qwak.ai/qwak-partner-id": "9",