lightning-sdk 0.2.14__py3-none-any.whl → 0.2.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.
- lightning_sdk/__init__.py +1 -1
- lightning_sdk/api/base_studio_api.py +79 -0
- lightning_sdk/api/cluster_api.py +83 -1
- lightning_sdk/api/license_api.py +48 -0
- lightning_sdk/api/llm_api.py +73 -12
- lightning_sdk/api/studio_api.py +50 -1
- lightning_sdk/api/teamspace_api.py +127 -1
- lightning_sdk/api/utils.py +4 -0
- lightning_sdk/base_studio.py +83 -0
- lightning_sdk/cli/create.py +21 -1
- lightning_sdk/cli/delete.py +6 -8
- lightning_sdk/cli/deploy/__init__.py +0 -0
- lightning_sdk/cli/deploy/_auth.py +189 -0
- lightning_sdk/cli/deploy/devbox.py +157 -0
- lightning_sdk/cli/{serve.py → deploy/serve.py} +22 -281
- lightning_sdk/cli/download.py +69 -16
- lightning_sdk/cli/entrypoint.py +1 -1
- lightning_sdk/cli/open.py +21 -2
- lightning_sdk/cli/start.py +12 -3
- lightning_sdk/cli/teamspace_menu.py +9 -1
- lightning_sdk/cli/upload.py +2 -5
- lightning_sdk/lightning_cloud/openapi/__init__.py +29 -0
- lightning_sdk/lightning_cloud/openapi/api/__init__.py +1 -0
- lightning_sdk/lightning_cloud/openapi/api/assistants_service_api.py +121 -0
- lightning_sdk/lightning_cloud/openapi/api/billing_service_api.py +9 -1
- lightning_sdk/lightning_cloud/openapi/api/cloud_space_service_api.py +226 -0
- lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +105 -0
- lightning_sdk/lightning_cloud/openapi/api/file_system_service_api.py +178 -0
- lightning_sdk/lightning_cloud/openapi/api/jobs_service_api.py +984 -101
- lightning_sdk/lightning_cloud/openapi/api/product_license_service_api.py +525 -0
- lightning_sdk/lightning_cloud/openapi/api/storage_service_api.py +93 -0
- lightning_sdk/lightning_cloud/openapi/configuration.py +1 -1
- lightning_sdk/lightning_cloud/openapi/models/__init__.py +28 -0
- lightning_sdk/lightning_cloud/openapi/models/assistant_id_conversations_body.py +79 -1
- lightning_sdk/lightning_cloud/openapi/models/cloudspaces_id_body.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/deployment_id_alertingpolicies_body.py +331 -0
- lightning_sdk/lightning_cloud/openapi/models/deployment_id_alertingpolicies_body1.py +305 -0
- lightning_sdk/lightning_cloud/openapi/models/deployments_id_body.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/endpoints_id_body.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/model_id_versions_body.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/models_id_body.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/orgs_id_body.py +183 -1
- lightning_sdk/lightning_cloud/openapi/models/pipelines_id_body.py +6 -6
- lightning_sdk/lightning_cloud/openapi/models/project_id_cloudspaces_body.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/project_id_storage_body.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/projects_id_body.py +107 -3
- lightning_sdk/lightning_cloud/openapi/models/storage_complete_body.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/update.py +79 -1
- lightning_sdk/lightning_cloud/openapi/models/uploads_upload_id_body1.py +55 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_aws_direct_v1.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_provider.py +3 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space.py +79 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_config.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_template_config.py +79 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_type.py +104 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_source_type.py +103 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cloudflare_v1.py +66 -66
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_tagging_options.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_upload.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_complete_upload.py +55 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_conversation.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_create_cloud_space_environment_template_request.py +79 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_delete_deployment_alerting_policy_response.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_alerting_event.py +487 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_alerting_policy.py +383 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_alerting_policy_frequency.py +105 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_alerting_policy_operation.py +105 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_alerting_policy_severity.py +106 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_alerting_policy_type.py +111 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_api.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_state.py +4 -4
- lightning_sdk/lightning_cloud/openapi/models/v1_endpoint.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_external_search_user.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_ge_list_deployment_routing_telemetry_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_cloud_space_instance_open_ports_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_deployment_routing_telemetry_content_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_job_stats_response.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_get_organization_storage_metadata_response.py +331 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_project_balance_response.py +1 -27
- lightning_sdk/lightning_cloud/openapi/models/v1_google_cloud_direct_v1.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_job_type.py +1 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_deployment_alerting_events_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_deployment_alerting_policies_response.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_product_licenses_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_managed_model.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_membership.py +43 -17
- lightning_sdk/lightning_cloud/openapi/models/v1_modify_filesystem_volume_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_organization.py +183 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_pipeline.py +6 -6
- lightning_sdk/lightning_cloud/openapi/models/v1_pipeline_state.py +111 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_presigned_url.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_product_license.py +409 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_product_license_check_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_project.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_project_membership.py +43 -17
- lightning_sdk/lightning_cloud/openapi/models/v1_project_settings.py +107 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_project_storage.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_r2_data_connection.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_routing_telemetry.py +253 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_secret_type.py +1 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_server_alert_type.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_sleep_server_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_trigger_filesystem_upgrade_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_upload_project_artifact_response.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_usage_report.py +79 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +347 -113
- lightning_sdk/lightning_cloud/openapi/models/v1_user_requested_compute_config.py +27 -1
- lightning_sdk/lightning_cloud/rest_client.py +4 -0
- lightning_sdk/llm/llm.py +132 -40
- lightning_sdk/services/__init__.py +1 -1
- lightning_sdk/services/license.py +236 -0
- lightning_sdk/studio.py +62 -1
- lightning_sdk/teamspace.py +68 -0
- {lightning_sdk-0.2.14.dist-info → lightning_sdk-0.2.16.dist-info}/METADATA +1 -1
- {lightning_sdk-0.2.14.dist-info → lightning_sdk-0.2.16.dist-info}/RECORD +122 -86
- /lightning_sdk/services/{finetune/__init__.py → finetune_llm.py} +0 -0
- {lightning_sdk-0.2.14.dist-info → lightning_sdk-0.2.16.dist-info}/LICENSE +0 -0
- {lightning_sdk-0.2.14.dist-info → lightning_sdk-0.2.16.dist-info}/WHEEL +0 -0
- {lightning_sdk-0.2.14.dist-info → lightning_sdk-0.2.16.dist-info}/entry_points.txt +0 -0
- {lightning_sdk-0.2.14.dist-info → lightning_sdk-0.2.16.dist-info}/top_level.txt +0 -0
lightning_sdk/teamspace.py
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
import glob
|
|
1
2
|
import os
|
|
2
3
|
import warnings
|
|
3
4
|
from pathlib import Path
|
|
4
5
|
from typing import TYPE_CHECKING, List, Optional, Tuple, Union
|
|
5
6
|
|
|
7
|
+
from tqdm.auto import tqdm
|
|
8
|
+
|
|
6
9
|
import lightning_sdk
|
|
7
10
|
from lightning_sdk.agents import Agent
|
|
8
11
|
from lightning_sdk.api import TeamspaceApi
|
|
@@ -401,6 +404,71 @@ class Teamspace:
|
|
|
401
404
|
)
|
|
402
405
|
return self._teamspace_api.list_model_versions(teamspace_id=self.id, model_name=name)
|
|
403
406
|
|
|
407
|
+
def upload_file(self, file_path: str, remote_path: Optional[str] = None, progress_bar: bool = True) -> None:
|
|
408
|
+
"""Uploads file to given remote path in the Teamspace drive."""
|
|
409
|
+
if remote_path is None:
|
|
410
|
+
remote_path = os.path.split(file_path)[1]
|
|
411
|
+
|
|
412
|
+
self._teamspace_api.upload_file(
|
|
413
|
+
teamspace_id=self._teamspace.id,
|
|
414
|
+
cloud_account=self.default_cloud_account,
|
|
415
|
+
file_path=file_path,
|
|
416
|
+
remote_path=os.path.normpath(remote_path),
|
|
417
|
+
progress_bar=progress_bar,
|
|
418
|
+
)
|
|
419
|
+
|
|
420
|
+
def upload_folder(self, folder_path: str, remote_path: Optional[str] = None, progress_bar: bool = True) -> None:
|
|
421
|
+
"""Uploads a given folder to a remote path in the Teamspace drive."""
|
|
422
|
+
if folder_path is None:
|
|
423
|
+
raise ValueError("Cannot upload a folder that is None.")
|
|
424
|
+
folder_path = os.path.normpath(folder_path)
|
|
425
|
+
if os.path.isfile(folder_path):
|
|
426
|
+
raise NotADirectoryError(f"Cannot upload a file as a folder. '{folder_path}' is a file.")
|
|
427
|
+
if not os.path.exists(folder_path):
|
|
428
|
+
raise NotADirectoryError(f"Cannot upload a folder that does not exist. '{folder_path}' is not a directory.")
|
|
429
|
+
all_files = []
|
|
430
|
+
for fp in glob.glob(os.path.join(folder_path, "**"), recursive=True):
|
|
431
|
+
if not os.path.isfile(fp):
|
|
432
|
+
continue
|
|
433
|
+
rel_path = os.path.relpath(fp, folder_path)
|
|
434
|
+
remote_file = os.path.join(remote_path, rel_path) if remote_path else rel_path
|
|
435
|
+
all_files.append((fp, remote_file))
|
|
436
|
+
|
|
437
|
+
if progress_bar:
|
|
438
|
+
progress_bar = tqdm(total=len(all_files), desc="Uploading files", unit="file")
|
|
439
|
+
for local_file, remote_path in sorted(all_files, key=lambda p: p[1]):
|
|
440
|
+
if progress_bar:
|
|
441
|
+
progress_bar.set_description(f"Uploading {local_file}")
|
|
442
|
+
self.upload_file(local_file, remote_path=remote_path, progress_bar=False)
|
|
443
|
+
if progress_bar:
|
|
444
|
+
progress_bar.update(1)
|
|
445
|
+
if progress_bar:
|
|
446
|
+
progress_bar.close()
|
|
447
|
+
|
|
448
|
+
def download_file(self, remote_path: str, file_path: Optional[str] = None) -> None:
|
|
449
|
+
"""Downloads a given file in Teamspace drive to a target location."""
|
|
450
|
+
if file_path is None:
|
|
451
|
+
file_path = remote_path
|
|
452
|
+
|
|
453
|
+
self._teamspace_api.download_file(
|
|
454
|
+
path=remote_path,
|
|
455
|
+
target_path=file_path,
|
|
456
|
+
teamspace_id=self._teamspace.id,
|
|
457
|
+
cloud_account=self.default_cloud_account,
|
|
458
|
+
)
|
|
459
|
+
|
|
460
|
+
def download_folder(self, remote_path: str, target_path: Optional[str] = None) -> None:
|
|
461
|
+
"""Downloads a folder in the Teamspace drive to a given target path."""
|
|
462
|
+
if target_path is None:
|
|
463
|
+
target_path = remote_path
|
|
464
|
+
|
|
465
|
+
self._teamspace_api.download_folder(
|
|
466
|
+
path=remote_path,
|
|
467
|
+
target_path=target_path,
|
|
468
|
+
teamspace_id=self._teamspace.id,
|
|
469
|
+
cloud_account=self.default_cloud_account,
|
|
470
|
+
)
|
|
471
|
+
|
|
404
472
|
|
|
405
473
|
def _list_files(path: Union[str, Path]) -> Tuple[List[Path], List[str]]:
|
|
406
474
|
"""List all folders in a directory and return them as a list and relative path."""
|