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.
- lightning_sdk/__version__.py +1 -1
- lightning_sdk/api/k8s_api.py +75 -29
- lightning_sdk/api/studio_api.py +195 -33
- lightning_sdk/api/teamspace_api.py +28 -9
- lightning_sdk/cli/cp/__init__.py +64 -0
- lightning_sdk/cli/entrypoint.py +2 -0
- lightning_sdk/cli/groups.py +22 -0
- lightning_sdk/cli/legacy/clusters_menu.py +2 -2
- lightning_sdk/cli/legacy/deploy/_auth.py +7 -6
- lightning_sdk/cli/legacy/run.py +13 -2
- lightning_sdk/cli/studio/__init__.py +4 -0
- lightning_sdk/cli/studio/cp.py +20 -64
- lightning_sdk/cli/studio/ls.py +57 -0
- lightning_sdk/cli/studio/rm.py +71 -0
- lightning_sdk/cli/utils/logging.py +2 -1
- lightning_sdk/cli/utils/studio_filesystem.py +65 -0
- lightning_sdk/cli/utils/teamspace_selection.py +5 -0
- lightning_sdk/exceptions.py +4 -0
- lightning_sdk/job/base.py +1 -1
- lightning_sdk/k8s_cluster.py +9 -10
- lightning_sdk/lightning_cloud/__version__.py +1 -1
- lightning_sdk/lightning_cloud/openapi/__init__.py +29 -11
- lightning_sdk/lightning_cloud/openapi/api/__init__.py +1 -1
- lightning_sdk/lightning_cloud/openapi/api/cloud_space_service_api.py +113 -0
- lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +268 -123
- lightning_sdk/lightning_cloud/openapi/api/k8_s_cluster_service_api.py +246 -19
- lightning_sdk/lightning_cloud/openapi/api/lightningwork_service_api.py +116 -11
- lightning_sdk/lightning_cloud/openapi/api/lit_logger_service_api.py +588 -2
- lightning_sdk/lightning_cloud/openapi/api/models_store_api.py +9 -1
- lightning_sdk/lightning_cloud/openapi/api/{kubernetes_virtual_machine_service_api.py → virtual_machine_service_api.py} +82 -82
- lightning_sdk/lightning_cloud/openapi/models/__init__.py +28 -10
- lightning_sdk/lightning_cloud/openapi/models/cluster_service_create_cluster_capacity_reservation_body.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/cluster_service_create_machine_body.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/cluster_service_create_org_cluster_capacity_reservation_body.py +409 -0
- lightning_sdk/lightning_cloud/openapi/models/cluster_service_report_machine_system_metrics_body.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/externalv1_cloud_space_instance_status.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/lit_logger_service_create_lit_logger_media_body.py +305 -0
- lightning_sdk/lightning_cloud/openapi/models/lit_logger_service_update_lit_logger_media_body.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/lit_logger_service_update_metrics_stream_body.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_capacity_reservation_used_by.py +227 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_provider.py +1 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_type.py +1 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_accelerator.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_capacity_reservation.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py +53 -27
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_type.py +0 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_create_lit_logger_media_response.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_create_org_cluster_capacity_reservation_response.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_create_sdk_command_history_request.py +29 -3
- lightning_sdk/lightning_cloud/openapi/models/{v1_ai_pod_v1.py → v1_cudo_direct_v1.py} +51 -51
- lightning_sdk/lightning_cloud/openapi/models/{v1_delete_kubernetes_virtual_machine_response.py → v1_delete_lit_logger_media_response.py} +6 -6
- lightning_sdk/lightning_cloud/openapi/models/{kubernetes_virtual_machine_service_update_kubernetes_virtual_machine_body.py → v1_delete_virtual_machine_response.py} +6 -6
- lightning_sdk/lightning_cloud/openapi/models/v1_external_cluster_spec.py +27 -27
- lightning_sdk/lightning_cloud/openapi/models/v1_external_search_user.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_get_kubernetes_pod_logs_response.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/{v1_get_machine_response.py → v1_get_kubernetes_pod_response.py} +23 -23
- lightning_sdk/lightning_cloud/openapi/models/v1_job_spec.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_joinable_organization.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_k8s_incident_setting.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_k8s_incident_type.py +108 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_settings_v1.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_v1.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_pod.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_pod_logs_page.py +227 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_kubevirt_config.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_list_kubernetes_pods_response.py +43 -17
- lightning_sdk/lightning_cloud/openapi/models/v1_list_kubernetes_pods_sort_order.py +104 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_lit_logger_media_response.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_models_response.py +55 -3
- lightning_sdk/lightning_cloud/openapi/models/{v1_list_kubernetes_virtual_machines_response.py → v1_list_virtual_machines_response.py} +16 -16
- lightning_sdk/lightning_cloud/openapi/models/v1_lit_logger_media.py +513 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_machine.py +27 -53
- lightning_sdk/lightning_cloud/openapi/models/v1_machine_direct_v1.py +107 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_media_type.py +104 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_nebius_direct_v1.py +29 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_organization.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_report_cloud_space_instance_idle_state_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_report_machine_system_metrics_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_tenant_credentials.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +157 -131
- lightning_sdk/lightning_cloud/openapi/models/{v1_kubernetes_virtual_machine.py → v1_virtual_machine.py} +94 -68
- lightning_sdk/lightning_cloud/openapi/models/{v1_kubevirt_vm_configuration.py → v1_vm_configuration.py} +20 -20
- lightning_sdk/lightning_cloud/openapi/models/{v1_kubevirt_provider_configuration.py → v1_vm_provider_configuration.py} +32 -32
- lightning_sdk/lightning_cloud/openapi/models/virtual_machine_service_create_virtual_machine_body.py +565 -0
- lightning_sdk/lightning_cloud/openapi/models/virtual_machine_service_update_virtual_machine_body.py +97 -0
- lightning_sdk/lightning_cloud/rest_client.py +0 -2
- lightning_sdk/machine.py +3 -3
- lightning_sdk/studio.py +14 -4
- lightning_sdk/utils/logging.py +2 -1
- {lightning_sdk-2025.12.17.dist-info → lightning_sdk-2026.1.22.dist-info}/METADATA +1 -5
- {lightning_sdk-2025.12.17.dist-info → lightning_sdk-2026.1.22.dist-info}/RECORD +95 -75
- {lightning_sdk-2025.12.17.dist-info → lightning_sdk-2026.1.22.dist-info}/WHEEL +1 -1
- lightning_sdk/lightning_cloud/cli/__main__.py +0 -29
- lightning_sdk/lightning_cloud/openapi/models/kubernetes_virtual_machine_service_create_kubernetes_virtual_machine_body.py +0 -513
- lightning_sdk/lightning_cloud/openapi/models/v1_kubevirt_vm_resources.py +0 -201
- lightning_sdk/lightning_cloud/source_code/logs_socket_api.py +0 -103
- {lightning_sdk-2025.12.17.dist-info → lightning_sdk-2026.1.22.dist-info}/LICENSE +0 -0
- {lightning_sdk-2025.12.17.dist-info → lightning_sdk-2026.1.22.dist-info}/entry_points.txt +0 -0
- {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(
|
|
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:
|
lightning_sdk/utils/logging.py
CHANGED
|
@@ -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"
|
|
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:
|
|
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
|
|