lightning-sdk 0.1.36__py3-none-any.whl → 0.1.38__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 (71) hide show
  1. lightning_sdk/__init__.py +1 -1
  2. lightning_sdk/ai_hub.py +38 -31
  3. lightning_sdk/api/ai_hub_api.py +29 -4
  4. lightning_sdk/api/job_api.py +6 -2
  5. lightning_sdk/api/teamspace_api.py +18 -14
  6. lightning_sdk/api/utils.py +19 -0
  7. lightning_sdk/cli/ai_hub.py +1 -1
  8. lightning_sdk/cli/entrypoint.py +2 -2
  9. lightning_sdk/cli/models.py +45 -15
  10. lightning_sdk/cli/run.py +80 -0
  11. lightning_sdk/job/base.py +61 -20
  12. lightning_sdk/job/job.py +29 -11
  13. lightning_sdk/job/v1.py +14 -10
  14. lightning_sdk/job/v2.py +10 -6
  15. lightning_sdk/lightning_cloud/openapi/__init__.py +13 -2
  16. lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +5 -1
  17. lightning_sdk/lightning_cloud/openapi/api/jobs_service_api.py +680 -62
  18. lightning_sdk/lightning_cloud/openapi/models/__init__.py +13 -2
  19. lightning_sdk/lightning_cloud/openapi/models/create.py +6 -32
  20. lightning_sdk/lightning_cloud/openapi/models/create_deployment_request_defines_a_spec_for_the_job_that_allows_for_autoscaling_jobs.py +27 -1
  21. lightning_sdk/lightning_cloud/openapi/models/deployments_id_body.py +27 -1
  22. lightning_sdk/lightning_cloud/openapi/models/deploymenttemplates_id_body.py +32 -6
  23. lightning_sdk/lightning_cloud/openapi/models/externalv1_cloud_space_instance_status.py +27 -1
  24. lightning_sdk/lightning_cloud/openapi/models/multimachinejobs_id_body.py +123 -0
  25. lightning_sdk/lightning_cloud/openapi/models/project_id_agents_body.py +53 -1
  26. lightning_sdk/lightning_cloud/openapi/models/project_id_cloudspaces_body.py +27 -1
  27. lightning_sdk/lightning_cloud/openapi/models/project_id_multimachinejobs_body.py +201 -0
  28. lightning_sdk/lightning_cloud/openapi/models/update.py +6 -32
  29. lightning_sdk/lightning_cloud/openapi/models/v1_api_pricing_spec.py +149 -0
  30. lightning_sdk/lightning_cloud/openapi/models/v1_checkbox.py +29 -3
  31. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py +27 -1
  32. lightning_sdk/lightning_cloud/openapi/models/v1_create_deployment_template_request.py +32 -6
  33. lightning_sdk/lightning_cloud/openapi/models/v1_data_connection.py +6 -32
  34. lightning_sdk/lightning_cloud/openapi/models/v1_delete_multi_machine_job_response.py +97 -0
  35. lightning_sdk/lightning_cloud/openapi/models/v1_deployment.py +27 -1
  36. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_metrics.py +43 -17
  37. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_performance.py +305 -0
  38. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template.py +32 -6
  39. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template_parameter.py +27 -1
  40. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template_parameter_type.py +1 -0
  41. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template_summary.py +27 -1
  42. lightning_sdk/lightning_cloud/openapi/models/{v1_efs_data_connection.py → v1_efs_config.py} +22 -22
  43. lightning_sdk/lightning_cloud/openapi/models/v1_get_model_files_response.py +27 -1
  44. lightning_sdk/lightning_cloud/openapi/models/v1_google_cloud_direct_v1.py +53 -27
  45. lightning_sdk/lightning_cloud/openapi/models/v1_input.py +29 -3
  46. lightning_sdk/lightning_cloud/openapi/models/v1_job.py +27 -1
  47. lightning_sdk/lightning_cloud/openapi/models/v1_lambda_labs_direct_v1.py +125 -0
  48. lightning_sdk/lightning_cloud/openapi/models/v1_list_multi_machine_jobs_response.py +123 -0
  49. lightning_sdk/lightning_cloud/openapi/models/v1_machines_selector.py +149 -0
  50. lightning_sdk/lightning_cloud/openapi/models/v1_message.py +6 -6
  51. lightning_sdk/lightning_cloud/openapi/models/v1_message_content.py +6 -6
  52. lightning_sdk/lightning_cloud/openapi/models/v1_message_content_type.py +103 -0
  53. lightning_sdk/lightning_cloud/openapi/models/v1_metrics_stream.py +53 -1
  54. lightning_sdk/lightning_cloud/openapi/models/v1_multi_machine_job.py +383 -0
  55. lightning_sdk/lightning_cloud/openapi/models/v1_multi_machine_job_state.py +108 -0
  56. lightning_sdk/lightning_cloud/openapi/models/v1_multi_machine_job_status.py +279 -0
  57. lightning_sdk/lightning_cloud/openapi/models/v1_rule_resource.py +2 -0
  58. lightning_sdk/lightning_cloud/openapi/models/v1_select.py +29 -3
  59. lightning_sdk/lightning_cloud/openapi/models/v1_system_info.py +27 -1
  60. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +131 -1
  61. lightning_sdk/lightning_cloud/openapi/models/v1_user_requested_compute_config.py +27 -1
  62. lightning_sdk/lightning_cloud/openapi/models/v1_validate_data_connection_response.py +6 -32
  63. lightning_sdk/lightning_cloud/openapi/models/validate.py +6 -32
  64. lightning_sdk/teamspace.py +5 -0
  65. {lightning_sdk-0.1.36.dist-info → lightning_sdk-0.1.38.dist-info}/METADATA +1 -1
  66. {lightning_sdk-0.1.36.dist-info → lightning_sdk-0.1.38.dist-info}/RECORD +70 -58
  67. lightning_sdk/lightning_cloud/openapi/models/v1_efs_folder_data_connection.py +0 -201
  68. {lightning_sdk-0.1.36.dist-info → lightning_sdk-0.1.38.dist-info}/LICENSE +0 -0
  69. {lightning_sdk-0.1.36.dist-info → lightning_sdk-0.1.38.dist-info}/WHEEL +0 -0
  70. {lightning_sdk-0.1.36.dist-info → lightning_sdk-0.1.38.dist-info}/entry_points.txt +0 -0
  71. {lightning_sdk-0.1.36.dist-info → lightning_sdk-0.1.38.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,279 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ external/v1/auth_service.proto
5
+
6
+ No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501
7
+
8
+ OpenAPI spec version: version not set
9
+
10
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
11
+
12
+ NOTE
13
+ ----
14
+ standard swagger-codegen-cli for this python client has been modified
15
+ by custom templates. The purpose of these templates is to include
16
+ typing information in the API and Model code. Please refer to the
17
+ main grid repository for more info
18
+ """
19
+
20
+ import pprint
21
+ import re # noqa: F401
22
+
23
+ from typing import TYPE_CHECKING
24
+
25
+ import six
26
+
27
+ if TYPE_CHECKING:
28
+ from datetime import datetime
29
+ from lightning_sdk.lightning_cloud.openapi.models import *
30
+
31
+ class V1MultiMachineJobStatus(object):
32
+ """NOTE: This class is auto generated by the swagger code generator program.
33
+
34
+ Do not edit the class manually.
35
+ """
36
+ """
37
+ Attributes:
38
+ swagger_types (dict): The key is attribute name
39
+ and the value is attribute type.
40
+ attribute_map (dict): The key is attribute name
41
+ and the value is json key in definition.
42
+ """
43
+ swagger_types = {
44
+ 'deleting_machines': 'str',
45
+ 'failing_machines': 'str',
46
+ 'message': 'str',
47
+ 'pending_machines': 'str',
48
+ 'ready_machines': 'str',
49
+ 'started_at': 'datetime',
50
+ 'stopped_at': 'datetime'
51
+ }
52
+
53
+ attribute_map = {
54
+ 'deleting_machines': 'deletingMachines',
55
+ 'failing_machines': 'failingMachines',
56
+ 'message': 'message',
57
+ 'pending_machines': 'pendingMachines',
58
+ 'ready_machines': 'readyMachines',
59
+ 'started_at': 'startedAt',
60
+ 'stopped_at': 'stoppedAt'
61
+ }
62
+
63
+ def __init__(self, deleting_machines: 'str' =None, failing_machines: 'str' =None, message: 'str' =None, pending_machines: 'str' =None, ready_machines: 'str' =None, started_at: 'datetime' =None, stopped_at: 'datetime' =None): # noqa: E501
64
+ """V1MultiMachineJobStatus - a model defined in Swagger""" # noqa: E501
65
+ self._deleting_machines = None
66
+ self._failing_machines = None
67
+ self._message = None
68
+ self._pending_machines = None
69
+ self._ready_machines = None
70
+ self._started_at = None
71
+ self._stopped_at = None
72
+ self.discriminator = None
73
+ if deleting_machines is not None:
74
+ self.deleting_machines = deleting_machines
75
+ if failing_machines is not None:
76
+ self.failing_machines = failing_machines
77
+ if message is not None:
78
+ self.message = message
79
+ if pending_machines is not None:
80
+ self.pending_machines = pending_machines
81
+ if ready_machines is not None:
82
+ self.ready_machines = ready_machines
83
+ if started_at is not None:
84
+ self.started_at = started_at
85
+ if stopped_at is not None:
86
+ self.stopped_at = stopped_at
87
+
88
+ @property
89
+ def deleting_machines(self) -> 'str':
90
+ """Gets the deleting_machines of this V1MultiMachineJobStatus. # noqa: E501
91
+
92
+
93
+ :return: The deleting_machines of this V1MultiMachineJobStatus. # noqa: E501
94
+ :rtype: str
95
+ """
96
+ return self._deleting_machines
97
+
98
+ @deleting_machines.setter
99
+ def deleting_machines(self, deleting_machines: 'str'):
100
+ """Sets the deleting_machines of this V1MultiMachineJobStatus.
101
+
102
+
103
+ :param deleting_machines: The deleting_machines of this V1MultiMachineJobStatus. # noqa: E501
104
+ :type: str
105
+ """
106
+
107
+ self._deleting_machines = deleting_machines
108
+
109
+ @property
110
+ def failing_machines(self) -> 'str':
111
+ """Gets the failing_machines of this V1MultiMachineJobStatus. # noqa: E501
112
+
113
+
114
+ :return: The failing_machines of this V1MultiMachineJobStatus. # noqa: E501
115
+ :rtype: str
116
+ """
117
+ return self._failing_machines
118
+
119
+ @failing_machines.setter
120
+ def failing_machines(self, failing_machines: 'str'):
121
+ """Sets the failing_machines of this V1MultiMachineJobStatus.
122
+
123
+
124
+ :param failing_machines: The failing_machines of this V1MultiMachineJobStatus. # noqa: E501
125
+ :type: str
126
+ """
127
+
128
+ self._failing_machines = failing_machines
129
+
130
+ @property
131
+ def message(self) -> 'str':
132
+ """Gets the message of this V1MultiMachineJobStatus. # noqa: E501
133
+
134
+
135
+ :return: The message of this V1MultiMachineJobStatus. # noqa: E501
136
+ :rtype: str
137
+ """
138
+ return self._message
139
+
140
+ @message.setter
141
+ def message(self, message: 'str'):
142
+ """Sets the message of this V1MultiMachineJobStatus.
143
+
144
+
145
+ :param message: The message of this V1MultiMachineJobStatus. # noqa: E501
146
+ :type: str
147
+ """
148
+
149
+ self._message = message
150
+
151
+ @property
152
+ def pending_machines(self) -> 'str':
153
+ """Gets the pending_machines of this V1MultiMachineJobStatus. # noqa: E501
154
+
155
+
156
+ :return: The pending_machines of this V1MultiMachineJobStatus. # noqa: E501
157
+ :rtype: str
158
+ """
159
+ return self._pending_machines
160
+
161
+ @pending_machines.setter
162
+ def pending_machines(self, pending_machines: 'str'):
163
+ """Sets the pending_machines of this V1MultiMachineJobStatus.
164
+
165
+
166
+ :param pending_machines: The pending_machines of this V1MultiMachineJobStatus. # noqa: E501
167
+ :type: str
168
+ """
169
+
170
+ self._pending_machines = pending_machines
171
+
172
+ @property
173
+ def ready_machines(self) -> 'str':
174
+ """Gets the ready_machines of this V1MultiMachineJobStatus. # noqa: E501
175
+
176
+
177
+ :return: The ready_machines of this V1MultiMachineJobStatus. # noqa: E501
178
+ :rtype: str
179
+ """
180
+ return self._ready_machines
181
+
182
+ @ready_machines.setter
183
+ def ready_machines(self, ready_machines: 'str'):
184
+ """Sets the ready_machines of this V1MultiMachineJobStatus.
185
+
186
+
187
+ :param ready_machines: The ready_machines of this V1MultiMachineJobStatus. # noqa: E501
188
+ :type: str
189
+ """
190
+
191
+ self._ready_machines = ready_machines
192
+
193
+ @property
194
+ def started_at(self) -> 'datetime':
195
+ """Gets the started_at of this V1MultiMachineJobStatus. # noqa: E501
196
+
197
+
198
+ :return: The started_at of this V1MultiMachineJobStatus. # noqa: E501
199
+ :rtype: datetime
200
+ """
201
+ return self._started_at
202
+
203
+ @started_at.setter
204
+ def started_at(self, started_at: 'datetime'):
205
+ """Sets the started_at of this V1MultiMachineJobStatus.
206
+
207
+
208
+ :param started_at: The started_at of this V1MultiMachineJobStatus. # noqa: E501
209
+ :type: datetime
210
+ """
211
+
212
+ self._started_at = started_at
213
+
214
+ @property
215
+ def stopped_at(self) -> 'datetime':
216
+ """Gets the stopped_at of this V1MultiMachineJobStatus. # noqa: E501
217
+
218
+
219
+ :return: The stopped_at of this V1MultiMachineJobStatus. # noqa: E501
220
+ :rtype: datetime
221
+ """
222
+ return self._stopped_at
223
+
224
+ @stopped_at.setter
225
+ def stopped_at(self, stopped_at: 'datetime'):
226
+ """Sets the stopped_at of this V1MultiMachineJobStatus.
227
+
228
+
229
+ :param stopped_at: The stopped_at of this V1MultiMachineJobStatus. # noqa: E501
230
+ :type: datetime
231
+ """
232
+
233
+ self._stopped_at = stopped_at
234
+
235
+ def to_dict(self) -> dict:
236
+ """Returns the model properties as a dict"""
237
+ result = {}
238
+
239
+ for attr, _ in six.iteritems(self.swagger_types):
240
+ value = getattr(self, attr)
241
+ if isinstance(value, list):
242
+ result[attr] = list(map(
243
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
244
+ value
245
+ ))
246
+ elif hasattr(value, "to_dict"):
247
+ result[attr] = value.to_dict()
248
+ elif isinstance(value, dict):
249
+ result[attr] = dict(map(
250
+ lambda item: (item[0], item[1].to_dict())
251
+ if hasattr(item[1], "to_dict") else item,
252
+ value.items()
253
+ ))
254
+ else:
255
+ result[attr] = value
256
+ if issubclass(V1MultiMachineJobStatus, dict):
257
+ for key, value in self.items():
258
+ result[key] = value
259
+
260
+ return result
261
+
262
+ def to_str(self) -> str:
263
+ """Returns the string representation of the model"""
264
+ return pprint.pformat(self.to_dict())
265
+
266
+ def __repr__(self) -> str:
267
+ """For `print` and `pprint`"""
268
+ return self.to_str()
269
+
270
+ def __eq__(self, other: 'V1MultiMachineJobStatus') -> bool:
271
+ """Returns true if both objects are equal"""
272
+ if not isinstance(other, V1MultiMachineJobStatus):
273
+ return False
274
+
275
+ return self.__dict__ == other.__dict__
276
+
277
+ def __ne__(self, other: 'V1MultiMachineJobStatus') -> bool:
278
+ """Returns true if both objects are not equal"""
279
+ return not self == other
@@ -70,6 +70,8 @@ class V1RuleResource(object):
70
70
  MANAGEDENDPOINT = "managedEndpoint"
71
71
  JOB = "job"
72
72
  DEPLOYMENT = "deployment"
73
+ MODEL = "model"
74
+ SLURMJOB = "slurmJob"
73
75
  """
74
76
  Attributes:
75
77
  swagger_types (dict): The key is attribute name
@@ -41,19 +41,24 @@ class V1Select(object):
41
41
  and the value is json key in definition.
42
42
  """
43
43
  swagger_types = {
44
- 'options': 'list[str]'
44
+ 'options': 'list[str]',
45
+ 'value': 'str'
45
46
  }
46
47
 
47
48
  attribute_map = {
48
- 'options': 'options'
49
+ 'options': 'options',
50
+ 'value': 'value'
49
51
  }
50
52
 
51
- def __init__(self, options: 'list[str]' =None): # noqa: E501
53
+ def __init__(self, options: 'list[str]' =None, value: 'str' =None): # noqa: E501
52
54
  """V1Select - a model defined in Swagger""" # noqa: E501
53
55
  self._options = None
56
+ self._value = None
54
57
  self.discriminator = None
55
58
  if options is not None:
56
59
  self.options = options
60
+ if value is not None:
61
+ self.value = value
57
62
 
58
63
  @property
59
64
  def options(self) -> 'list[str]':
@@ -76,6 +81,27 @@ class V1Select(object):
76
81
 
77
82
  self._options = options
78
83
 
84
+ @property
85
+ def value(self) -> 'str':
86
+ """Gets the value of this V1Select. # noqa: E501
87
+
88
+
89
+ :return: The value of this V1Select. # noqa: E501
90
+ :rtype: str
91
+ """
92
+ return self._value
93
+
94
+ @value.setter
95
+ def value(self, value: 'str'):
96
+ """Sets the value of this V1Select.
97
+
98
+
99
+ :param value: The value of this V1Select. # noqa: E501
100
+ :type: str
101
+ """
102
+
103
+ self._value = value
104
+
79
105
  def to_dict(self) -> dict:
80
106
  """Returns the model properties as a dict"""
81
107
  result = {}
@@ -54,6 +54,7 @@ class V1SystemInfo(object):
54
54
  'gpu_count': 'int',
55
55
  'gpu_memory_gb': 'int',
56
56
  'gpu_name': 'str',
57
+ 'hostname': 'str',
57
58
  'hyperparameters': 'str',
58
59
  'installed_packages': 'str',
59
60
  'litlogger_version': 'str',
@@ -76,6 +77,7 @@ class V1SystemInfo(object):
76
77
  'gpu_count': 'gpuCount',
77
78
  'gpu_memory_gb': 'gpuMemoryGb',
78
79
  'gpu_name': 'gpuName',
80
+ 'hostname': 'hostname',
79
81
  'hyperparameters': 'hyperparameters',
80
82
  'installed_packages': 'installedPackages',
81
83
  'litlogger_version': 'litloggerVersion',
@@ -84,7 +86,7 @@ class V1SystemInfo(object):
84
86
  'system_memory_gb': 'systemMemoryGb'
85
87
  }
86
88
 
87
- def __init__(self, cli_args: 'str' =None, cpu_count_logical: 'int' =None, cpu_count_physical: 'int' =None, cpu_name: 'str' =None, cuda_version: 'str' =None, cudnn_version: 'str' =None, execution_command: 'str' =None, git_branch: 'str' =None, git_commit_hash: 'str' =None, git_repo_name: 'str' =None, gpu_count: 'int' =None, gpu_memory_gb: 'int' =None, gpu_name: 'str' =None, hyperparameters: 'str' =None, installed_packages: 'str' =None, litlogger_version: 'str' =None, os_name: 'str' =None, python_version: 'str' =None, system_memory_gb: 'int' =None): # noqa: E501
89
+ def __init__(self, cli_args: 'str' =None, cpu_count_logical: 'int' =None, cpu_count_physical: 'int' =None, cpu_name: 'str' =None, cuda_version: 'str' =None, cudnn_version: 'str' =None, execution_command: 'str' =None, git_branch: 'str' =None, git_commit_hash: 'str' =None, git_repo_name: 'str' =None, gpu_count: 'int' =None, gpu_memory_gb: 'int' =None, gpu_name: 'str' =None, hostname: 'str' =None, hyperparameters: 'str' =None, installed_packages: 'str' =None, litlogger_version: 'str' =None, os_name: 'str' =None, python_version: 'str' =None, system_memory_gb: 'int' =None): # noqa: E501
88
90
  """V1SystemInfo - a model defined in Swagger""" # noqa: E501
89
91
  self._cli_args = None
90
92
  self._cpu_count_logical = None
@@ -99,6 +101,7 @@ class V1SystemInfo(object):
99
101
  self._gpu_count = None
100
102
  self._gpu_memory_gb = None
101
103
  self._gpu_name = None
104
+ self._hostname = None
102
105
  self._hyperparameters = None
103
106
  self._installed_packages = None
104
107
  self._litlogger_version = None
@@ -132,6 +135,8 @@ class V1SystemInfo(object):
132
135
  self.gpu_memory_gb = gpu_memory_gb
133
136
  if gpu_name is not None:
134
137
  self.gpu_name = gpu_name
138
+ if hostname is not None:
139
+ self.hostname = hostname
135
140
  if hyperparameters is not None:
136
141
  self.hyperparameters = hyperparameters
137
142
  if installed_packages is not None:
@@ -418,6 +423,27 @@ class V1SystemInfo(object):
418
423
 
419
424
  self._gpu_name = gpu_name
420
425
 
426
+ @property
427
+ def hostname(self) -> 'str':
428
+ """Gets the hostname of this V1SystemInfo. # noqa: E501
429
+
430
+
431
+ :return: The hostname of this V1SystemInfo. # noqa: E501
432
+ :rtype: str
433
+ """
434
+ return self._hostname
435
+
436
+ @hostname.setter
437
+ def hostname(self, hostname: 'str'):
438
+ """Sets the hostname of this V1SystemInfo.
439
+
440
+
441
+ :param hostname: The hostname of this V1SystemInfo. # noqa: E501
442
+ :type: str
443
+ """
444
+
445
+ self._hostname = hostname
446
+
421
447
  @property
422
448
  def hyperparameters(self) -> 'str':
423
449
  """Gets the hyperparameters of this V1SystemInfo. # noqa: E501