lightning-sdk 2025.12.17__py3-none-any.whl → 2026.1.22__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 (99) hide show
  1. lightning_sdk/__version__.py +1 -1
  2. lightning_sdk/api/k8s_api.py +75 -29
  3. lightning_sdk/api/studio_api.py +195 -33
  4. lightning_sdk/api/teamspace_api.py +28 -9
  5. lightning_sdk/cli/cp/__init__.py +64 -0
  6. lightning_sdk/cli/entrypoint.py +2 -0
  7. lightning_sdk/cli/groups.py +22 -0
  8. lightning_sdk/cli/legacy/clusters_menu.py +2 -2
  9. lightning_sdk/cli/legacy/deploy/_auth.py +7 -6
  10. lightning_sdk/cli/legacy/run.py +13 -2
  11. lightning_sdk/cli/studio/__init__.py +4 -0
  12. lightning_sdk/cli/studio/cp.py +20 -64
  13. lightning_sdk/cli/studio/ls.py +57 -0
  14. lightning_sdk/cli/studio/rm.py +71 -0
  15. lightning_sdk/cli/utils/logging.py +2 -1
  16. lightning_sdk/cli/utils/studio_filesystem.py +65 -0
  17. lightning_sdk/cli/utils/teamspace_selection.py +5 -0
  18. lightning_sdk/exceptions.py +4 -0
  19. lightning_sdk/job/base.py +1 -1
  20. lightning_sdk/k8s_cluster.py +9 -10
  21. lightning_sdk/lightning_cloud/__version__.py +1 -1
  22. lightning_sdk/lightning_cloud/openapi/__init__.py +29 -11
  23. lightning_sdk/lightning_cloud/openapi/api/__init__.py +1 -1
  24. lightning_sdk/lightning_cloud/openapi/api/cloud_space_service_api.py +113 -0
  25. lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +268 -123
  26. lightning_sdk/lightning_cloud/openapi/api/k8_s_cluster_service_api.py +246 -19
  27. lightning_sdk/lightning_cloud/openapi/api/lightningwork_service_api.py +116 -11
  28. lightning_sdk/lightning_cloud/openapi/api/lit_logger_service_api.py +588 -2
  29. lightning_sdk/lightning_cloud/openapi/api/models_store_api.py +9 -1
  30. lightning_sdk/lightning_cloud/openapi/api/{kubernetes_virtual_machine_service_api.py → virtual_machine_service_api.py} +82 -82
  31. lightning_sdk/lightning_cloud/openapi/models/__init__.py +28 -10
  32. lightning_sdk/lightning_cloud/openapi/models/cluster_service_create_cluster_capacity_reservation_body.py +53 -1
  33. lightning_sdk/lightning_cloud/openapi/models/cluster_service_create_machine_body.py +53 -1
  34. lightning_sdk/lightning_cloud/openapi/models/cluster_service_create_org_cluster_capacity_reservation_body.py +409 -0
  35. lightning_sdk/lightning_cloud/openapi/models/cluster_service_report_machine_system_metrics_body.py +123 -0
  36. lightning_sdk/lightning_cloud/openapi/models/externalv1_cloud_space_instance_status.py +27 -1
  37. lightning_sdk/lightning_cloud/openapi/models/lit_logger_service_create_lit_logger_media_body.py +305 -0
  38. lightning_sdk/lightning_cloud/openapi/models/lit_logger_service_update_lit_logger_media_body.py +149 -0
  39. lightning_sdk/lightning_cloud/openapi/models/lit_logger_service_update_metrics_stream_body.py +53 -1
  40. lightning_sdk/lightning_cloud/openapi/models/v1_capacity_reservation_used_by.py +227 -0
  41. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_provider.py +1 -1
  42. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_type.py +1 -0
  43. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_accelerator.py +27 -1
  44. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_capacity_reservation.py +27 -1
  45. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py +53 -27
  46. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_type.py +0 -1
  47. lightning_sdk/lightning_cloud/openapi/models/v1_create_lit_logger_media_response.py +149 -0
  48. lightning_sdk/lightning_cloud/openapi/models/v1_create_org_cluster_capacity_reservation_response.py +201 -0
  49. lightning_sdk/lightning_cloud/openapi/models/v1_create_sdk_command_history_request.py +29 -3
  50. lightning_sdk/lightning_cloud/openapi/models/{v1_ai_pod_v1.py → v1_cudo_direct_v1.py} +51 -51
  51. lightning_sdk/lightning_cloud/openapi/models/{v1_delete_kubernetes_virtual_machine_response.py → v1_delete_lit_logger_media_response.py} +6 -6
  52. lightning_sdk/lightning_cloud/openapi/models/{kubernetes_virtual_machine_service_update_kubernetes_virtual_machine_body.py → v1_delete_virtual_machine_response.py} +6 -6
  53. lightning_sdk/lightning_cloud/openapi/models/v1_external_cluster_spec.py +27 -27
  54. lightning_sdk/lightning_cloud/openapi/models/v1_external_search_user.py +27 -1
  55. lightning_sdk/lightning_cloud/openapi/models/v1_get_kubernetes_pod_logs_response.py +149 -0
  56. lightning_sdk/lightning_cloud/openapi/models/{v1_get_machine_response.py → v1_get_kubernetes_pod_response.py} +23 -23
  57. lightning_sdk/lightning_cloud/openapi/models/v1_job_spec.py +27 -1
  58. lightning_sdk/lightning_cloud/openapi/models/v1_joinable_organization.py +27 -1
  59. lightning_sdk/lightning_cloud/openapi/models/v1_k8s_incident_setting.py +149 -0
  60. lightning_sdk/lightning_cloud/openapi/models/v1_k8s_incident_type.py +108 -0
  61. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_settings_v1.py +53 -1
  62. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_v1.py +53 -1
  63. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_pod.py +27 -1
  64. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_pod_logs_page.py +227 -0
  65. lightning_sdk/lightning_cloud/openapi/models/v1_kubevirt_config.py +53 -1
  66. lightning_sdk/lightning_cloud/openapi/models/v1_list_kubernetes_pods_response.py +43 -17
  67. lightning_sdk/lightning_cloud/openapi/models/v1_list_kubernetes_pods_sort_order.py +104 -0
  68. lightning_sdk/lightning_cloud/openapi/models/v1_list_lit_logger_media_response.py +149 -0
  69. lightning_sdk/lightning_cloud/openapi/models/v1_list_models_response.py +55 -3
  70. lightning_sdk/lightning_cloud/openapi/models/{v1_list_kubernetes_virtual_machines_response.py → v1_list_virtual_machines_response.py} +16 -16
  71. lightning_sdk/lightning_cloud/openapi/models/v1_lit_logger_media.py +513 -0
  72. lightning_sdk/lightning_cloud/openapi/models/v1_machine.py +27 -53
  73. lightning_sdk/lightning_cloud/openapi/models/v1_machine_direct_v1.py +107 -3
  74. lightning_sdk/lightning_cloud/openapi/models/v1_media_type.py +104 -0
  75. lightning_sdk/lightning_cloud/openapi/models/v1_nebius_direct_v1.py +29 -3
  76. lightning_sdk/lightning_cloud/openapi/models/v1_organization.py +27 -1
  77. lightning_sdk/lightning_cloud/openapi/models/v1_report_cloud_space_instance_idle_state_response.py +97 -0
  78. lightning_sdk/lightning_cloud/openapi/models/v1_report_machine_system_metrics_response.py +97 -0
  79. lightning_sdk/lightning_cloud/openapi/models/v1_tenant_credentials.py +201 -0
  80. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +157 -131
  81. lightning_sdk/lightning_cloud/openapi/models/{v1_kubernetes_virtual_machine.py → v1_virtual_machine.py} +94 -68
  82. lightning_sdk/lightning_cloud/openapi/models/{v1_kubevirt_vm_configuration.py → v1_vm_configuration.py} +20 -20
  83. lightning_sdk/lightning_cloud/openapi/models/{v1_kubevirt_provider_configuration.py → v1_vm_provider_configuration.py} +32 -32
  84. lightning_sdk/lightning_cloud/openapi/models/virtual_machine_service_create_virtual_machine_body.py +565 -0
  85. lightning_sdk/lightning_cloud/openapi/models/virtual_machine_service_update_virtual_machine_body.py +97 -0
  86. lightning_sdk/lightning_cloud/rest_client.py +0 -2
  87. lightning_sdk/machine.py +3 -3
  88. lightning_sdk/studio.py +14 -4
  89. lightning_sdk/utils/logging.py +2 -1
  90. {lightning_sdk-2025.12.17.dist-info → lightning_sdk-2026.1.22.dist-info}/METADATA +1 -5
  91. {lightning_sdk-2025.12.17.dist-info → lightning_sdk-2026.1.22.dist-info}/RECORD +95 -75
  92. {lightning_sdk-2025.12.17.dist-info → lightning_sdk-2026.1.22.dist-info}/WHEEL +1 -1
  93. lightning_sdk/lightning_cloud/cli/__main__.py +0 -29
  94. lightning_sdk/lightning_cloud/openapi/models/kubernetes_virtual_machine_service_create_kubernetes_virtual_machine_body.py +0 -513
  95. lightning_sdk/lightning_cloud/openapi/models/v1_kubevirt_vm_resources.py +0 -201
  96. lightning_sdk/lightning_cloud/source_code/logs_socket_api.py +0 -103
  97. {lightning_sdk-2025.12.17.dist-info → lightning_sdk-2026.1.22.dist-info}/LICENSE +0 -0
  98. {lightning_sdk-2025.12.17.dist-info → lightning_sdk-2026.1.22.dist-info}/entry_points.txt +0 -0
  99. {lightning_sdk-2025.12.17.dist-info → lightning_sdk-2026.1.22.dist-info}/top_level.txt +0 -0
lightning_sdk/studio.py CHANGED
@@ -11,7 +11,7 @@ from lightning_sdk.api.studio_api import StudioApi
11
11
  from lightning_sdk.api.utils import AccessibleResource, raise_access_error_if_not_allowed
12
12
  from lightning_sdk.base_studio import BaseStudio
13
13
  from lightning_sdk.constants import _LIGHTNING_DEBUG
14
- from lightning_sdk.exceptions import OutOfCapacityError
14
+ from lightning_sdk.exceptions import NotSupportedError, OutOfCapacityError
15
15
  from lightning_sdk.lightning_cloud.openapi import V1ClusterType, V1Endpoint
16
16
  from lightning_sdk.machine import DEFAULT_MACHINE, CloudProvider, Machine
17
17
  from lightning_sdk.organization import Organization
@@ -341,12 +341,20 @@ class Studio(metaclass=TrackCallsMeta):
341
341
  if new_machine != self.machine:
342
342
  raise RuntimeError(
343
343
  f"Requested to start {self._cls_name} on {new_machine}, "
344
- "but {self._cls_name} is already running on {self.machine}."
344
+ f"but {self._cls_name} is already running on {self.machine}."
345
345
  " Consider switching instead!"
346
346
  )
347
347
  _logger.info(f"{self._cls_name} {self.name} is already running")
348
348
  return
349
349
 
350
+ if not self._studio_api.machine_is_supported(
351
+ new_machine, self._teamspace.id, self.cloud_account, _get_org_id(self._teamspace)
352
+ ):
353
+ raise NotSupportedError(
354
+ "Requested machine is not supported in the selected cloud account. "
355
+ "Try a different machine or cloud account by setting the `machine` or `cloud_account` argument."
356
+ )
357
+
350
358
  if not self._studio_api.machine_has_capacity(
351
359
  new_machine,
352
360
  self._teamspace.id,
@@ -548,7 +556,7 @@ class Studio(metaclass=TrackCallsMeta):
548
556
  if status != Status.Running:
549
557
  raise RuntimeError(
550
558
  f"Cannot run a command in a {self._cls_name} that is not running. "
551
- "{self._cls_name} {self.name} is {status}."
559
+ f"{self._cls_name} {self.name} is {status}."
552
560
  )
553
561
  output, exit_code = self._studio_api.run_studio_commands(self._studio.id, self._teamspace.id, *commands)
554
562
  output = output.strip()
@@ -605,11 +613,13 @@ class Studio(metaclass=TrackCallsMeta):
605
613
  progress_bar = tqdm(total=len(all_files), desc="Uploading files", unit="file")
606
614
  for local_file, remote_path in sorted(all_files, key=lambda p: p[1]):
607
615
  if progress_bar:
608
- progress_bar.set_description(f"Uploading {local_file}")
616
+ progress_bar.set_description("Uploading files")
609
617
  self.upload_file(local_file, remote_path=remote_path, progress_bar=False)
610
618
  if progress_bar:
611
619
  progress_bar.update(1)
612
620
  if progress_bar:
621
+ progress_bar.set_description("Upload complete")
622
+ progress_bar.refresh()
613
623
  progress_bar.close()
614
624
 
615
625
  def download_file(self, remote_path: str, file_path: Optional[str] = None) -> None:
@@ -22,7 +22,7 @@ def track_calls() -> Callable[..., any]:
22
22
  bound_args.apply_defaults()
23
23
 
24
24
  args_str = ", ".join(f"{k}: {v}" for k, v in bound_args.arguments.items() if k != "self")
25
- message = f"VERSION: {__version__} | ARGS: {args_str} "
25
+ message = f"ARGS: {args_str} "
26
26
 
27
27
  body = V1CreateSDKCommandHistoryRequest(
28
28
  command=func.__qualname__,
@@ -30,6 +30,7 @@ def track_calls() -> Callable[..., any]:
30
30
  project_id=None,
31
31
  severity=V1SDKCommandHistorySeverity.INFO,
32
32
  type=V1SDKCommandHistoryType.SDK,
33
+ version=__version__,
33
34
  )
34
35
 
35
36
  try:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lightning_sdk
3
- Version: 2025.12.17
3
+ Version: 2026.1.22
4
4
  Summary: SDK to develop using Lightning AI Studios
5
5
  Author-email: Lightning-AI <justus@lightning.ai>
6
6
  License: MIT License
@@ -38,8 +38,6 @@ Requires-Dist: click
38
38
  Requires-Dist: docker
39
39
  Requires-Dist: fastapi
40
40
  Requires-Dist: packaging
41
- Requires-Dist: pandas
42
- Requires-Dist: pyjwt
43
41
  Requires-Dist: pyyaml
44
42
  Requires-Dist: requests
45
43
  Requires-Dist: rich
@@ -48,8 +46,6 @@ Requires-Dist: six
48
46
  Requires-Dist: tqdm
49
47
  Requires-Dist: urllib3<=2.5.0
50
48
  Requires-Dist: uvicorn
51
- Requires-Dist: websocket-client
52
- Requires-Dist: wget
53
49
  Provides-Extra: serve
54
50
  Requires-Dist: litserve>=0.2.5; extra == "serve"
55
51