zenml-nightly 0.58.2.dev20240625__py3-none-any.whl → 0.60.0.dev20240627__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.
- README.md +1 -1
- RELEASE_NOTES.md +206 -0
- zenml/VERSION +1 -1
- zenml/artifact_stores/base_artifact_store.py +7 -1
- zenml/artifacts/utils.py +13 -10
- zenml/cli/service_connectors.py +1 -0
- zenml/client.py +8 -3
- zenml/integrations/gcp/google_credentials_mixin.py +1 -1
- zenml/integrations/gcp/service_connectors/gcp_service_connector.py +64 -15
- zenml/integrations/s3/artifact_stores/s3_artifact_store.py +76 -3
- zenml/logging/step_logging.py +54 -51
- zenml/stack/stack_component.py +4 -0
- zenml/zen_server/dashboard/assets/{404-CDPQCl4D.js → 404-C1mcUujL.js} +1 -1
- zenml/zen_server/dashboard/assets/{@reactflow-CHBapDaj.js → @reactflow-DYIyhCfd.js} +1 -1
- zenml/zen_server/dashboard/assets/{AwarenessChannel-nXGpmj_f.js → AwarenessChannel-B2KR83Tr.js} +1 -1
- zenml/zen_server/dashboard/assets/{Cards-nwsvQLVS.js → Cards-DSEdjsk8.js} +1 -1
- zenml/zen_server/dashboard/assets/{CodeSnippet-BidtnWOi.js → CodeSnippet-WEzpO0az.js} +1 -1
- zenml/zen_server/dashboard/assets/{Commands-DuIWKg_Q.js → Commands-CTlhyic5.js} +1 -1
- zenml/zen_server/dashboard/assets/{CopyButton-B_YSm-Ds.js → CopyButton-CTrzKmUO.js} +1 -1
- zenml/zen_server/dashboard/assets/{CsvVizualization-BOuez-fG.js → CsvVizualization-Bx931j4U.js} +1 -1
- zenml/zen_server/dashboard/assets/{Error-B6M0dPph.js → Error-4sKxHad4.js} +1 -1
- zenml/zen_server/dashboard/assets/{Helpbox-BQoqCm04.js → Helpbox-DW21i5LD.js} +1 -1
- zenml/zen_server/dashboard/assets/{Infobox-Ce9mefqU.js → Infobox-C7bf70VS.js} +1 -1
- zenml/zen_server/dashboard/assets/{InlineAvatar-DGf3dVhV.js → InlineAvatar-Dxrtafpg.js} +1 -1
- zenml/zen_server/dashboard/assets/{PageHeader-DGaemzjc.js → PageHeader-B0pUife2.js} +1 -1
- zenml/zen_server/dashboard/assets/{Pagination-DVYfBCCc.js → Pagination-B9WG_9cJ.js} +1 -1
- zenml/zen_server/dashboard/assets/{SetPassword-B5s7DJug.js → SetPassword-CiNhT15a.js} +1 -1
- zenml/zen_server/dashboard/assets/{SuccessStep-ZzczaM7g.js → SuccessStep-CykrFndS.js} +1 -1
- zenml/zen_server/dashboard/assets/{UpdatePasswordSchemas-DnM-c11H.js → UpdatePasswordSchemas-CKrd3UZz.js} +1 -1
- zenml/zen_server/dashboard/assets/{cloud-only-Ba_ShBR5.js → cloud-only-Bkawp7CJ.js} +1 -1
- zenml/zen_server/dashboard/assets/{index-QORVVTMN.js → index-BawkpTlr.js} +3 -3
- zenml/zen_server/dashboard/assets/index-CRmm7QhS.css +1 -0
- zenml/zen_server/dashboard/assets/{login-mutation-wzzl23C6.js → login-mutation-Bk2tn324.js} +1 -1
- zenml/zen_server/dashboard/assets/{not-found-Dh2la7kh.js → not-found-BAuhP4Jb.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-DdaIt20-.js → page--5YvAHg3.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-AQKopn_4.js → page-8vRWJ5b8.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-LqLs24Ot.js → page-B0RAq4s_.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-ByrHy6Ss.js → page-BePtEPHl.js} +1 -1
- zenml/zen_server/dashboard/assets/page-C1pra1Bc.js +9 -0
- zenml/zen_server/dashboard/assets/{page-BW6Ket3a.js → page-C6v3o0Qj.js} +1 -1
- zenml/zen_server/dashboard/assets/page-CBuSUrE9.js +1 -0
- zenml/zen_server/dashboard/assets/{page-CuT1SUik.js → page-CCtCgG-x.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-yN4rZ-ZS.js → page-CH26py0a.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-Bi5AI0S7.js → page-COafKNbw.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-DAQQyLxT.js → page-CSs4C9jL.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-CmmukLsl.js → page-Cf2XSej0.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-BQxVFlUl.js → page-ClPUAE_f.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-BmkSiYeQ.js → page-D12Rvf0j.js} +2 -2
- zenml/zen_server/dashboard/assets/{page-B0BrqfS8.js → page-D8pf2vis.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-B-vWk8a6.js → page-DHKMmIQH.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-lebv0c7C.js → page-DMZ0VOda.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-CPtY4Kv_.js → page-Dcg-yQv_.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-B-5jAKoO.js → page-DoAK5FSB.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-BzVZGExK.js → page-Dw9-aJV6.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-DZCbwOEs.js → page-iXiDqE0J.js} +1 -1
- zenml/zen_server/dashboard/assets/{update-server-settings-mutation-0Wgz8pUE.js → update-server-settings-mutation-bKxf7U9h.js} +1 -1
- zenml/zen_server/dashboard/assets/{url-6_xv0WJS.js → url-CgvM-IVM.js} +1 -1
- zenml/zen_server/dashboard/index.html +4 -4
- zenml/zen_server/dashboard_legacy/asset-manifest.json +4 -4
- zenml/zen_server/dashboard_legacy/index.html +1 -1
- zenml/zen_server/dashboard_legacy/{precache-manifest.f4abc5b7cfa7d90c1caf5521918e29a8.js → precache-manifest.e7c29295aae591541ef59d1734d79387.js} +4 -4
- zenml/zen_server/dashboard_legacy/service-worker.js +1 -1
- zenml/zen_server/dashboard_legacy/static/js/{main.ac2f17d0.chunk.js → main.53857d8b.chunk.js} +2 -2
- zenml/zen_server/dashboard_legacy/static/js/{main.ac2f17d0.chunk.js.map → main.53857d8b.chunk.js.map} +1 -1
- zenml/zen_server/deploy/helm/Chart.yaml +1 -1
- zenml/zen_server/deploy/helm/README.md +2 -2
- zenml/zen_stores/migrations/versions/0.60.0_release.py +23 -0
- {zenml_nightly-0.58.2.dev20240625.dist-info → zenml_nightly-0.60.0.dev20240627.dist-info}/METADATA +3 -3
- {zenml_nightly-0.58.2.dev20240625.dist-info → zenml_nightly-0.60.0.dev20240627.dist-info}/RECORD +72 -71
- zenml/zen_server/dashboard/assets/index-CWJ3xbIf.css +0 -1
- zenml/zen_server/dashboard/assets/page-D2D-7qyr.js +0 -9
- zenml/zen_server/dashboard/assets/page-DHkUMl_E.js +0 -1
- {zenml_nightly-0.58.2.dev20240625.dist-info → zenml_nightly-0.60.0.dev20240627.dist-info}/LICENSE +0 -0
- {zenml_nightly-0.58.2.dev20240625.dist-info → zenml_nightly-0.60.0.dev20240627.dist-info}/WHEEL +0 -0
- {zenml_nightly-0.58.2.dev20240625.dist-info → zenml_nightly-0.60.0.dev20240627.dist-info}/entry_points.txt +0 -0
zenml/logging/step_logging.py
CHANGED
@@ -145,61 +145,64 @@ def fetch_logs(
|
|
145
145
|
)
|
146
146
|
|
147
147
|
artifact_store = _load_artifact_store(artifact_store_id, zen_store)
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
files = artifact_store.listdir(logs_uri)
|
152
|
-
if len(files) == 1:
|
153
|
-
return _read_file(
|
154
|
-
os.path.join(logs_uri, str(files[0])), offset, length
|
155
|
-
)
|
148
|
+
try:
|
149
|
+
if not artifact_store.isdir(logs_uri):
|
150
|
+
return _read_file(logs_uri, offset, length)
|
156
151
|
else:
|
157
|
-
|
158
|
-
files
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
152
|
+
files = artifact_store.listdir(logs_uri)
|
153
|
+
if len(files) == 1:
|
154
|
+
return _read_file(
|
155
|
+
os.path.join(logs_uri, str(files[0])), offset, length
|
156
|
+
)
|
157
|
+
else:
|
158
|
+
is_negative_offset = offset < 0
|
159
|
+
files.sort(reverse=is_negative_offset)
|
160
|
+
|
161
|
+
# search for the first file we need to read
|
162
|
+
latest_file_id = 0
|
163
|
+
for i, file in enumerate(files):
|
164
|
+
file_size: int = artifact_store.size(
|
165
|
+
os.path.join(logs_uri, str(file))
|
166
|
+
) # type: ignore[assignment]
|
167
|
+
|
168
|
+
if is_negative_offset:
|
169
|
+
if file_size >= -offset:
|
170
|
+
latest_file_id = -(i + 1)
|
171
|
+
break
|
172
|
+
else:
|
173
|
+
offset += file_size
|
171
174
|
else:
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
175
|
+
if file_size > offset:
|
176
|
+
latest_file_id = i
|
177
|
+
break
|
178
|
+
else:
|
179
|
+
offset -= file_size
|
180
|
+
|
181
|
+
# read the files according to pre-filtering
|
182
|
+
files.sort()
|
183
|
+
ret = []
|
184
|
+
for file in files[latest_file_id:]:
|
185
|
+
ret.append(
|
186
|
+
_read_file(
|
187
|
+
os.path.join(logs_uri, str(file)),
|
188
|
+
offset,
|
189
|
+
length,
|
190
|
+
)
|
191
|
+
)
|
192
|
+
offset = 0
|
193
|
+
length -= len(ret[-1])
|
194
|
+
if length <= 0:
|
195
|
+
# stop further reading, if the whole length is already read
|
176
196
|
break
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
ret = []
|
183
|
-
for file in files[latest_file_id:]:
|
184
|
-
ret.append(
|
185
|
-
_read_file(
|
186
|
-
os.path.join(logs_uri, str(file)),
|
187
|
-
offset,
|
188
|
-
length,
|
197
|
+
|
198
|
+
if not ret:
|
199
|
+
raise DoesNotExistException(
|
200
|
+
f"Folder '{logs_uri}' is empty in artifact store "
|
201
|
+
f"'{artifact_store.name}'."
|
189
202
|
)
|
190
|
-
)
|
191
|
-
|
192
|
-
|
193
|
-
if length <= 0:
|
194
|
-
# stop further reading, if the whole length is already read
|
195
|
-
break
|
196
|
-
|
197
|
-
if not ret:
|
198
|
-
raise DoesNotExistException(
|
199
|
-
f"Folder '{logs_uri}' is empty in artifact store "
|
200
|
-
f"'{artifact_store.name}'."
|
201
|
-
)
|
202
|
-
return "".join(ret)
|
203
|
+
return "".join(ret)
|
204
|
+
finally:
|
205
|
+
artifact_store.cleanup()
|
203
206
|
|
204
207
|
|
205
208
|
class StepLogsStorage:
|
zenml/stack/stack_component.py
CHANGED
@@ -827,6 +827,10 @@ class StackComponent:
|
|
827
827
|
f"Suspending provisioned resources not implemented for {self}."
|
828
828
|
)
|
829
829
|
|
830
|
+
def cleanup(self) -> None:
|
831
|
+
"""Cleans up the component after it has been used."""
|
832
|
+
pass
|
833
|
+
|
830
834
|
def __repr__(self) -> str:
|
831
835
|
"""String representation of the stack component.
|
832
836
|
|
@@ -1 +1 @@
|
|
1
|
-
import{j as e}from"./@tanstack-CEbkxrhX.js";import{h as s,r as t}from"./index-
|
1
|
+
import{j as e}from"./@tanstack-CEbkxrhX.js";import{h as s,r as t}from"./index-BawkpTlr.js";import{E as r}from"./EmptyState-BkooiGtL.js";import{H as a}from"./help-B8rqCvqn.js";import{L as o}from"./@react-router-DYovave8.js";import"./@radix-C9DBgJhe.js";import"./@reactflow-DYIyhCfd.js";function d(){return e.jsx("div",{className:"flex min-h-screen w-full flex-col",children:e.jsx(r,{icon:e.jsx(a,{className:"h-[120px] w-[120px] fill-neutral-300"}),children:e.jsxs("div",{className:"text-center",children:[e.jsx("h1",{className:"mb-2 text-display-xs font-semibold",children:"We can't find the page you are looking for"}),e.jsx("p",{className:"text-lg text-theme-text-secondary",children:"You can try typing a different URL or we can bring you back to your Homepage."}),e.jsx("div",{className:"mt-5 flex justify-center",children:e.jsx(s,{size:"md",asChild:!0,children:e.jsx(o,{className:"w-min self-center whitespace-nowrap",to:t.home,children:e.jsx("span",{className:"px-0.5",children:"Go to Home"})})})})]})})})}export{d as default};
|