lightning-sdk 0.1.50__py3-none-any.whl → 0.1.51__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 (39) hide show
  1. lightning_sdk/__init__.py +1 -1
  2. lightning_sdk/api/job_api.py +12 -7
  3. lightning_sdk/api/lit_container_api.py +24 -7
  4. lightning_sdk/api/mmt_api.py +12 -7
  5. lightning_sdk/api/utils.py +52 -0
  6. lightning_sdk/cli/run.py +60 -18
  7. lightning_sdk/cli/serve.py +1 -5
  8. lightning_sdk/cli/upload.py +33 -15
  9. lightning_sdk/helpers.py +1 -1
  10. lightning_sdk/job/base.py +12 -1
  11. lightning_sdk/job/job.py +27 -25
  12. lightning_sdk/job/v1.py +6 -2
  13. lightning_sdk/job/v2.py +12 -12
  14. lightning_sdk/lightning_cloud/login.py +4 -1
  15. lightning_sdk/lightning_cloud/openapi/__init__.py +3 -0
  16. lightning_sdk/lightning_cloud/openapi/api/jobs_service_api.py +5 -1
  17. lightning_sdk/lightning_cloud/openapi/api/lit_registry_service_api.py +113 -0
  18. lightning_sdk/lightning_cloud/openapi/models/__init__.py +3 -0
  19. lightning_sdk/lightning_cloud/openapi/models/deployments_id_body.py +27 -1
  20. lightning_sdk/lightning_cloud/openapi/models/litregistry_lit_repo_name_body.py +123 -0
  21. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py +27 -1
  22. lightning_sdk/lightning_cloud/openapi/models/v1_deployment.py +27 -1
  23. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_api.py +27 -1
  24. lightning_sdk/lightning_cloud/openapi/models/v1_job_spec.py +27 -1
  25. lightning_sdk/lightning_cloud/openapi/models/v1_path_mapping.py +175 -0
  26. lightning_sdk/lightning_cloud/openapi/models/v1_update_lit_repository_response.py +97 -0
  27. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +79 -79
  28. lightning_sdk/mmt/base.py +36 -26
  29. lightning_sdk/mmt/mmt.py +27 -25
  30. lightning_sdk/mmt/v1.py +4 -1
  31. lightning_sdk/mmt/v2.py +14 -13
  32. lightning_sdk/models.py +5 -4
  33. lightning_sdk/utils/resolve.py +7 -0
  34. {lightning_sdk-0.1.50.dist-info → lightning_sdk-0.1.51.dist-info}/METADATA +2 -2
  35. {lightning_sdk-0.1.50.dist-info → lightning_sdk-0.1.51.dist-info}/RECORD +39 -36
  36. {lightning_sdk-0.1.50.dist-info → lightning_sdk-0.1.51.dist-info}/LICENSE +0 -0
  37. {lightning_sdk-0.1.50.dist-info → lightning_sdk-0.1.51.dist-info}/WHEEL +0 -0
  38. {lightning_sdk-0.1.50.dist-info → lightning_sdk-0.1.51.dist-info}/entry_points.txt +0 -0
  39. {lightning_sdk-0.1.50.dist-info → lightning_sdk-0.1.51.dist-info}/top_level.txt +0 -0
@@ -42,6 +42,7 @@ class V1DeploymentAPI(object):
42
42
  """
43
43
  swagger_types = {
44
44
  'body': 'V1Body',
45
+ 'description': 'str',
45
46
  'headers': 'list[V1Header]',
46
47
  'method': 'str',
47
48
  'name': 'str',
@@ -51,6 +52,7 @@ class V1DeploymentAPI(object):
51
52
 
52
53
  attribute_map = {
53
54
  'body': 'body',
55
+ 'description': 'description',
54
56
  'headers': 'headers',
55
57
  'method': 'method',
56
58
  'name': 'name',
@@ -58,9 +60,10 @@ class V1DeploymentAPI(object):
58
60
  '_query_params': 'queryParams'
59
61
  }
60
62
 
61
- def __init__(self, body: 'V1Body' =None, headers: 'list[V1Header]' =None, method: 'str' =None, name: 'str' =None, path: 'str' =None, _query_params: 'list[V1QueryParam]' =None): # noqa: E501
63
+ def __init__(self, body: 'V1Body' =None, description: 'str' =None, headers: 'list[V1Header]' =None, method: 'str' =None, name: 'str' =None, path: 'str' =None, _query_params: 'list[V1QueryParam]' =None): # noqa: E501
62
64
  """V1DeploymentAPI - a model defined in Swagger""" # noqa: E501
63
65
  self._body = None
66
+ self._description = None
64
67
  self._headers = None
65
68
  self._method = None
66
69
  self._name = None
@@ -69,6 +72,8 @@ class V1DeploymentAPI(object):
69
72
  self.discriminator = None
70
73
  if body is not None:
71
74
  self.body = body
75
+ if description is not None:
76
+ self.description = description
72
77
  if headers is not None:
73
78
  self.headers = headers
74
79
  if method is not None:
@@ -101,6 +106,27 @@ class V1DeploymentAPI(object):
101
106
 
102
107
  self._body = body
103
108
 
109
+ @property
110
+ def description(self) -> 'str':
111
+ """Gets the description of this V1DeploymentAPI. # noqa: E501
112
+
113
+
114
+ :return: The description of this V1DeploymentAPI. # noqa: E501
115
+ :rtype: str
116
+ """
117
+ return self._description
118
+
119
+ @description.setter
120
+ def description(self, description: 'str'):
121
+ """Sets the description of this V1DeploymentAPI.
122
+
123
+
124
+ :param description: The description of this V1DeploymentAPI. # noqa: E501
125
+ :type: str
126
+ """
127
+
128
+ self._description = description
129
+
104
130
  @property
105
131
  def headers(self) -> 'list[V1Header]':
106
132
  """Gets the headers of this V1DeploymentAPI. # noqa: E501
@@ -56,6 +56,7 @@ class V1JobSpec(object):
56
56
  'instance_name': 'str',
57
57
  'instance_type': 'str',
58
58
  'modified_volume': 'bool',
59
+ 'path_mappings': 'list[V1PathMapping]',
59
60
  'readiness_probe': 'V1JobHealthCheckConfig',
60
61
  'regions': 'list[str]',
61
62
  'resources': 'V1Resources',
@@ -81,6 +82,7 @@ class V1JobSpec(object):
81
82
  'instance_name': 'instanceName',
82
83
  'instance_type': 'instanceType',
83
84
  'modified_volume': 'modifiedVolume',
85
+ 'path_mappings': 'pathMappings',
84
86
  'readiness_probe': 'readinessProbe',
85
87
  'regions': 'regions',
86
88
  'resources': 'resources',
@@ -90,7 +92,7 @@ class V1JobSpec(object):
90
92
  'volumes': 'volumes'
91
93
  }
92
94
 
93
- def __init__(self, artifacts_destination: 'str' =None, artifacts_source: 'str' =None, cloudspace_id: 'str' =None, cluster_id: 'str' =None, command: 'str' =None, data_paths: 'list[V1DataPath]' =None, entrypoint: 'str' =None, env: 'list[V1EnvVar]' =None, image: 'str' =None, image_cluster_credentials: 'bool' =None, image_secret_ref: 'str' =None, include_credentials: 'bool' =None, instance_name: 'str' =None, instance_type: 'str' =None, modified_volume: 'bool' =None, readiness_probe: 'V1JobHealthCheckConfig' =None, regions: 'list[str]' =None, resources: 'V1Resources' =None, restart_policy: 'str' =None, run_id: 'str' =None, spot: 'bool' =None, volumes: 'list[V1Volume]' =None): # noqa: E501
95
+ def __init__(self, artifacts_destination: 'str' =None, artifacts_source: 'str' =None, cloudspace_id: 'str' =None, cluster_id: 'str' =None, command: 'str' =None, data_paths: 'list[V1DataPath]' =None, entrypoint: 'str' =None, env: 'list[V1EnvVar]' =None, image: 'str' =None, image_cluster_credentials: 'bool' =None, image_secret_ref: 'str' =None, include_credentials: 'bool' =None, instance_name: 'str' =None, instance_type: 'str' =None, modified_volume: 'bool' =None, path_mappings: 'list[V1PathMapping]' =None, readiness_probe: 'V1JobHealthCheckConfig' =None, regions: 'list[str]' =None, resources: 'V1Resources' =None, restart_policy: 'str' =None, run_id: 'str' =None, spot: 'bool' =None, volumes: 'list[V1Volume]' =None): # noqa: E501
94
96
  """V1JobSpec - a model defined in Swagger""" # noqa: E501
95
97
  self._artifacts_destination = None
96
98
  self._artifacts_source = None
@@ -107,6 +109,7 @@ class V1JobSpec(object):
107
109
  self._instance_name = None
108
110
  self._instance_type = None
109
111
  self._modified_volume = None
112
+ self._path_mappings = None
110
113
  self._readiness_probe = None
111
114
  self._regions = None
112
115
  self._resources = None
@@ -145,6 +148,8 @@ class V1JobSpec(object):
145
148
  self.instance_type = instance_type
146
149
  if modified_volume is not None:
147
150
  self.modified_volume = modified_volume
151
+ if path_mappings is not None:
152
+ self.path_mappings = path_mappings
148
153
  if readiness_probe is not None:
149
154
  self.readiness_probe = readiness_probe
150
155
  if regions is not None:
@@ -475,6 +480,27 @@ class V1JobSpec(object):
475
480
 
476
481
  self._modified_volume = modified_volume
477
482
 
483
+ @property
484
+ def path_mappings(self) -> 'list[V1PathMapping]':
485
+ """Gets the path_mappings of this V1JobSpec. # noqa: E501
486
+
487
+
488
+ :return: The path_mappings of this V1JobSpec. # noqa: E501
489
+ :rtype: list[V1PathMapping]
490
+ """
491
+ return self._path_mappings
492
+
493
+ @path_mappings.setter
494
+ def path_mappings(self, path_mappings: 'list[V1PathMapping]'):
495
+ """Sets the path_mappings of this V1JobSpec.
496
+
497
+
498
+ :param path_mappings: The path_mappings of this V1JobSpec. # noqa: E501
499
+ :type: list[V1PathMapping]
500
+ """
501
+
502
+ self._path_mappings = path_mappings
503
+
478
504
  @property
479
505
  def readiness_probe(self) -> 'V1JobHealthCheckConfig':
480
506
  """Gets the readiness_probe of this V1JobSpec. # noqa: E501
@@ -0,0 +1,175 @@
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 V1PathMapping(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
+ 'connection_name': 'str',
45
+ 'connection_path': 'str',
46
+ 'container_path': 'str'
47
+ }
48
+
49
+ attribute_map = {
50
+ 'connection_name': 'connectionName',
51
+ 'connection_path': 'connectionPath',
52
+ 'container_path': 'containerPath'
53
+ }
54
+
55
+ def __init__(self, connection_name: 'str' =None, connection_path: 'str' =None, container_path: 'str' =None): # noqa: E501
56
+ """V1PathMapping - a model defined in Swagger""" # noqa: E501
57
+ self._connection_name = None
58
+ self._connection_path = None
59
+ self._container_path = None
60
+ self.discriminator = None
61
+ if connection_name is not None:
62
+ self.connection_name = connection_name
63
+ if connection_path is not None:
64
+ self.connection_path = connection_path
65
+ if container_path is not None:
66
+ self.container_path = container_path
67
+
68
+ @property
69
+ def connection_name(self) -> 'str':
70
+ """Gets the connection_name of this V1PathMapping. # noqa: E501
71
+
72
+
73
+ :return: The connection_name of this V1PathMapping. # noqa: E501
74
+ :rtype: str
75
+ """
76
+ return self._connection_name
77
+
78
+ @connection_name.setter
79
+ def connection_name(self, connection_name: 'str'):
80
+ """Sets the connection_name of this V1PathMapping.
81
+
82
+
83
+ :param connection_name: The connection_name of this V1PathMapping. # noqa: E501
84
+ :type: str
85
+ """
86
+
87
+ self._connection_name = connection_name
88
+
89
+ @property
90
+ def connection_path(self) -> 'str':
91
+ """Gets the connection_path of this V1PathMapping. # noqa: E501
92
+
93
+
94
+ :return: The connection_path of this V1PathMapping. # noqa: E501
95
+ :rtype: str
96
+ """
97
+ return self._connection_path
98
+
99
+ @connection_path.setter
100
+ def connection_path(self, connection_path: 'str'):
101
+ """Sets the connection_path of this V1PathMapping.
102
+
103
+
104
+ :param connection_path: The connection_path of this V1PathMapping. # noqa: E501
105
+ :type: str
106
+ """
107
+
108
+ self._connection_path = connection_path
109
+
110
+ @property
111
+ def container_path(self) -> 'str':
112
+ """Gets the container_path of this V1PathMapping. # noqa: E501
113
+
114
+
115
+ :return: The container_path of this V1PathMapping. # noqa: E501
116
+ :rtype: str
117
+ """
118
+ return self._container_path
119
+
120
+ @container_path.setter
121
+ def container_path(self, container_path: 'str'):
122
+ """Sets the container_path of this V1PathMapping.
123
+
124
+
125
+ :param container_path: The container_path of this V1PathMapping. # noqa: E501
126
+ :type: str
127
+ """
128
+
129
+ self._container_path = container_path
130
+
131
+ def to_dict(self) -> dict:
132
+ """Returns the model properties as a dict"""
133
+ result = {}
134
+
135
+ for attr, _ in six.iteritems(self.swagger_types):
136
+ value = getattr(self, attr)
137
+ if isinstance(value, list):
138
+ result[attr] = list(map(
139
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
140
+ value
141
+ ))
142
+ elif hasattr(value, "to_dict"):
143
+ result[attr] = value.to_dict()
144
+ elif isinstance(value, dict):
145
+ result[attr] = dict(map(
146
+ lambda item: (item[0], item[1].to_dict())
147
+ if hasattr(item[1], "to_dict") else item,
148
+ value.items()
149
+ ))
150
+ else:
151
+ result[attr] = value
152
+ if issubclass(V1PathMapping, dict):
153
+ for key, value in self.items():
154
+ result[key] = value
155
+
156
+ return result
157
+
158
+ def to_str(self) -> str:
159
+ """Returns the string representation of the model"""
160
+ return pprint.pformat(self.to_dict())
161
+
162
+ def __repr__(self) -> str:
163
+ """For `print` and `pprint`"""
164
+ return self.to_str()
165
+
166
+ def __eq__(self, other: 'V1PathMapping') -> bool:
167
+ """Returns true if both objects are equal"""
168
+ if not isinstance(other, V1PathMapping):
169
+ return False
170
+
171
+ return self.__dict__ == other.__dict__
172
+
173
+ def __ne__(self, other: 'V1PathMapping') -> bool:
174
+ """Returns true if both objects are not equal"""
175
+ return not self == other
@@ -0,0 +1,97 @@
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 V1UpdateLitRepositoryResponse(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
+ }
45
+
46
+ attribute_map = {
47
+ }
48
+
49
+ def __init__(self): # noqa: E501
50
+ """V1UpdateLitRepositoryResponse - a model defined in Swagger""" # noqa: E501
51
+ self.discriminator = None
52
+
53
+ def to_dict(self) -> dict:
54
+ """Returns the model properties as a dict"""
55
+ result = {}
56
+
57
+ for attr, _ in six.iteritems(self.swagger_types):
58
+ value = getattr(self, attr)
59
+ if isinstance(value, list):
60
+ result[attr] = list(map(
61
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
62
+ value
63
+ ))
64
+ elif hasattr(value, "to_dict"):
65
+ result[attr] = value.to_dict()
66
+ elif isinstance(value, dict):
67
+ result[attr] = dict(map(
68
+ lambda item: (item[0], item[1].to_dict())
69
+ if hasattr(item[1], "to_dict") else item,
70
+ value.items()
71
+ ))
72
+ else:
73
+ result[attr] = value
74
+ if issubclass(V1UpdateLitRepositoryResponse, dict):
75
+ for key, value in self.items():
76
+ result[key] = value
77
+
78
+ return result
79
+
80
+ def to_str(self) -> str:
81
+ """Returns the string representation of the model"""
82
+ return pprint.pformat(self.to_dict())
83
+
84
+ def __repr__(self) -> str:
85
+ """For `print` and `pprint`"""
86
+ return self.to_str()
87
+
88
+ def __eq__(self, other: 'V1UpdateLitRepositoryResponse') -> bool:
89
+ """Returns true if both objects are equal"""
90
+ if not isinstance(other, V1UpdateLitRepositoryResponse):
91
+ return False
92
+
93
+ return self.__dict__ == other.__dict__
94
+
95
+ def __ne__(self, other: 'V1UpdateLitRepositoryResponse') -> bool:
96
+ """Returns true if both objects are not equal"""
97
+ return not self == other