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.
Files changed (122) hide show
  1. lightning_sdk/__init__.py +1 -1
  2. lightning_sdk/api/base_studio_api.py +79 -0
  3. lightning_sdk/api/cluster_api.py +83 -1
  4. lightning_sdk/api/license_api.py +48 -0
  5. lightning_sdk/api/llm_api.py +73 -12
  6. lightning_sdk/api/studio_api.py +50 -1
  7. lightning_sdk/api/teamspace_api.py +127 -1
  8. lightning_sdk/api/utils.py +4 -0
  9. lightning_sdk/base_studio.py +83 -0
  10. lightning_sdk/cli/create.py +21 -1
  11. lightning_sdk/cli/delete.py +6 -8
  12. lightning_sdk/cli/deploy/__init__.py +0 -0
  13. lightning_sdk/cli/deploy/_auth.py +189 -0
  14. lightning_sdk/cli/deploy/devbox.py +157 -0
  15. lightning_sdk/cli/{serve.py → deploy/serve.py} +22 -281
  16. lightning_sdk/cli/download.py +69 -16
  17. lightning_sdk/cli/entrypoint.py +1 -1
  18. lightning_sdk/cli/open.py +21 -2
  19. lightning_sdk/cli/start.py +12 -3
  20. lightning_sdk/cli/teamspace_menu.py +9 -1
  21. lightning_sdk/cli/upload.py +2 -5
  22. lightning_sdk/lightning_cloud/openapi/__init__.py +29 -0
  23. lightning_sdk/lightning_cloud/openapi/api/__init__.py +1 -0
  24. lightning_sdk/lightning_cloud/openapi/api/assistants_service_api.py +121 -0
  25. lightning_sdk/lightning_cloud/openapi/api/billing_service_api.py +9 -1
  26. lightning_sdk/lightning_cloud/openapi/api/cloud_space_service_api.py +226 -0
  27. lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +105 -0
  28. lightning_sdk/lightning_cloud/openapi/api/file_system_service_api.py +178 -0
  29. lightning_sdk/lightning_cloud/openapi/api/jobs_service_api.py +984 -101
  30. lightning_sdk/lightning_cloud/openapi/api/product_license_service_api.py +525 -0
  31. lightning_sdk/lightning_cloud/openapi/api/storage_service_api.py +93 -0
  32. lightning_sdk/lightning_cloud/openapi/configuration.py +1 -1
  33. lightning_sdk/lightning_cloud/openapi/models/__init__.py +28 -0
  34. lightning_sdk/lightning_cloud/openapi/models/assistant_id_conversations_body.py +79 -1
  35. lightning_sdk/lightning_cloud/openapi/models/cloudspaces_id_body.py +53 -1
  36. lightning_sdk/lightning_cloud/openapi/models/deployment_id_alertingpolicies_body.py +331 -0
  37. lightning_sdk/lightning_cloud/openapi/models/deployment_id_alertingpolicies_body1.py +305 -0
  38. lightning_sdk/lightning_cloud/openapi/models/deployments_id_body.py +53 -1
  39. lightning_sdk/lightning_cloud/openapi/models/endpoints_id_body.py +27 -1
  40. lightning_sdk/lightning_cloud/openapi/models/model_id_versions_body.py +27 -1
  41. lightning_sdk/lightning_cloud/openapi/models/models_id_body.py +123 -0
  42. lightning_sdk/lightning_cloud/openapi/models/orgs_id_body.py +183 -1
  43. lightning_sdk/lightning_cloud/openapi/models/pipelines_id_body.py +6 -6
  44. lightning_sdk/lightning_cloud/openapi/models/project_id_cloudspaces_body.py +27 -1
  45. lightning_sdk/lightning_cloud/openapi/models/project_id_storage_body.py +27 -1
  46. lightning_sdk/lightning_cloud/openapi/models/projects_id_body.py +107 -3
  47. lightning_sdk/lightning_cloud/openapi/models/storage_complete_body.py +27 -1
  48. lightning_sdk/lightning_cloud/openapi/models/update.py +79 -1
  49. lightning_sdk/lightning_cloud/openapi/models/uploads_upload_id_body1.py +55 -3
  50. lightning_sdk/lightning_cloud/openapi/models/v1_aws_direct_v1.py +53 -1
  51. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_provider.py +3 -0
  52. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space.py +79 -1
  53. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_config.py +123 -0
  54. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_template_config.py +79 -1
  55. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_type.py +104 -0
  56. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_source_type.py +103 -0
  57. lightning_sdk/lightning_cloud/openapi/models/v1_cloudflare_v1.py +66 -66
  58. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py +27 -1
  59. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_tagging_options.py +27 -1
  60. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_upload.py +149 -0
  61. lightning_sdk/lightning_cloud/openapi/models/v1_complete_upload.py +55 -3
  62. lightning_sdk/lightning_cloud/openapi/models/v1_conversation.py +27 -1
  63. lightning_sdk/lightning_cloud/openapi/models/v1_create_cloud_space_environment_template_request.py +79 -1
  64. lightning_sdk/lightning_cloud/openapi/models/v1_delete_deployment_alerting_policy_response.py +175 -0
  65. lightning_sdk/lightning_cloud/openapi/models/v1_deployment.py +53 -1
  66. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_alerting_event.py +487 -0
  67. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_alerting_policy.py +383 -0
  68. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_alerting_policy_frequency.py +105 -0
  69. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_alerting_policy_operation.py +105 -0
  70. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_alerting_policy_severity.py +106 -0
  71. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_alerting_policy_type.py +111 -0
  72. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_api.py +27 -1
  73. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_state.py +4 -4
  74. lightning_sdk/lightning_cloud/openapi/models/v1_endpoint.py +27 -1
  75. lightning_sdk/lightning_cloud/openapi/models/v1_external_search_user.py +27 -1
  76. lightning_sdk/lightning_cloud/openapi/models/v1_ge_list_deployment_routing_telemetry_response.py +123 -0
  77. lightning_sdk/lightning_cloud/openapi/models/v1_get_cloud_space_instance_open_ports_response.py +123 -0
  78. lightning_sdk/lightning_cloud/openapi/models/v1_get_deployment_routing_telemetry_content_response.py +123 -0
  79. lightning_sdk/lightning_cloud/openapi/models/v1_get_job_stats_response.py +53 -1
  80. lightning_sdk/lightning_cloud/openapi/models/v1_get_organization_storage_metadata_response.py +331 -0
  81. lightning_sdk/lightning_cloud/openapi/models/v1_get_project_balance_response.py +1 -27
  82. lightning_sdk/lightning_cloud/openapi/models/v1_google_cloud_direct_v1.py +27 -1
  83. lightning_sdk/lightning_cloud/openapi/models/v1_job_type.py +1 -0
  84. lightning_sdk/lightning_cloud/openapi/models/v1_list_deployment_alerting_events_response.py +123 -0
  85. lightning_sdk/lightning_cloud/openapi/models/v1_list_deployment_alerting_policies_response.py +175 -0
  86. lightning_sdk/lightning_cloud/openapi/models/v1_list_product_licenses_response.py +123 -0
  87. lightning_sdk/lightning_cloud/openapi/models/v1_managed_model.py +27 -1
  88. lightning_sdk/lightning_cloud/openapi/models/v1_membership.py +43 -17
  89. lightning_sdk/lightning_cloud/openapi/models/v1_modify_filesystem_volume_response.py +97 -0
  90. lightning_sdk/lightning_cloud/openapi/models/v1_organization.py +183 -1
  91. lightning_sdk/lightning_cloud/openapi/models/v1_pipeline.py +6 -6
  92. lightning_sdk/lightning_cloud/openapi/models/v1_pipeline_state.py +111 -0
  93. lightning_sdk/lightning_cloud/openapi/models/v1_presigned_url.py +53 -1
  94. lightning_sdk/lightning_cloud/openapi/models/v1_product_license.py +409 -0
  95. lightning_sdk/lightning_cloud/openapi/models/v1_product_license_check_response.py +123 -0
  96. lightning_sdk/lightning_cloud/openapi/models/v1_project.py +27 -1
  97. lightning_sdk/lightning_cloud/openapi/models/v1_project_membership.py +43 -17
  98. lightning_sdk/lightning_cloud/openapi/models/v1_project_settings.py +107 -3
  99. lightning_sdk/lightning_cloud/openapi/models/v1_project_storage.py +53 -1
  100. lightning_sdk/lightning_cloud/openapi/models/v1_r2_data_connection.py +53 -1
  101. lightning_sdk/lightning_cloud/openapi/models/v1_routing_telemetry.py +253 -0
  102. lightning_sdk/lightning_cloud/openapi/models/v1_secret_type.py +1 -0
  103. lightning_sdk/lightning_cloud/openapi/models/v1_server_alert_type.py +2 -0
  104. lightning_sdk/lightning_cloud/openapi/models/v1_sleep_server_response.py +97 -0
  105. lightning_sdk/lightning_cloud/openapi/models/v1_trigger_filesystem_upgrade_response.py +123 -0
  106. lightning_sdk/lightning_cloud/openapi/models/v1_upload_project_artifact_response.py +27 -1
  107. lightning_sdk/lightning_cloud/openapi/models/v1_usage_report.py +79 -1
  108. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +347 -113
  109. lightning_sdk/lightning_cloud/openapi/models/v1_user_requested_compute_config.py +27 -1
  110. lightning_sdk/lightning_cloud/rest_client.py +4 -0
  111. lightning_sdk/llm/llm.py +132 -40
  112. lightning_sdk/services/__init__.py +1 -1
  113. lightning_sdk/services/license.py +236 -0
  114. lightning_sdk/studio.py +62 -1
  115. lightning_sdk/teamspace.py +68 -0
  116. {lightning_sdk-0.2.14.dist-info → lightning_sdk-0.2.16.dist-info}/METADATA +1 -1
  117. {lightning_sdk-0.2.14.dist-info → lightning_sdk-0.2.16.dist-info}/RECORD +122 -86
  118. /lightning_sdk/services/{finetune/__init__.py → finetune_llm.py} +0 -0
  119. {lightning_sdk-0.2.14.dist-info → lightning_sdk-0.2.16.dist-info}/LICENSE +0 -0
  120. {lightning_sdk-0.2.14.dist-info → lightning_sdk-0.2.16.dist-info}/WHEEL +0 -0
  121. {lightning_sdk-0.2.14.dist-info → lightning_sdk-0.2.16.dist-info}/entry_points.txt +0 -0
  122. {lightning_sdk-0.2.14.dist-info → lightning_sdk-0.2.16.dist-info}/top_level.txt +0 -0
@@ -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."""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lightning_sdk
3
- Version: 0.2.14
3
+ Version: 0.2.16
4
4
  Summary: SDK to develop using Lightning AI Studios
5
5
  Author-email: Lightning-AI <justus@lightning.ai>
6
6
  License: MIT License