cgcsdk 1.0.16__tar.gz → 1.0.18__tar.gz

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 (102) hide show
  1. {cgcsdk-1.0.16/cgcsdk.egg-info → cgcsdk-1.0.18}/PKG-INFO +7 -10
  2. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/.env +1 -1
  3. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/CHANGELOG.md +18 -1
  4. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/cgc_cmd_responses.py +10 -5
  5. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/cgc_helpers.py +13 -3
  6. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/compute/compute_responses.py +18 -2
  7. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/jobs/job_utils.py +5 -4
  8. cgcsdk-1.0.18/cgc/commands/user/keys_models.py +31 -0
  9. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/utils/version_control.py +3 -3
  10. {cgcsdk-1.0.16 → cgcsdk-1.0.18/cgcsdk.egg-info}/PKG-INFO +7 -10
  11. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/setup.py +13 -9
  12. cgcsdk-1.0.16/cgc/commands/user/keys_models.py +0 -16
  13. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/LICENSE +0 -0
  14. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/MANIFEST.in +0 -0
  15. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/README.md +0 -0
  16. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/__init__.py +0 -0
  17. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/cgc.py +0 -0
  18. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/__init__.py +0 -0
  19. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/auth/__init__.py +0 -0
  20. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/auth/auth_cmd.py +0 -0
  21. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/auth/auth_logic.py +0 -0
  22. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/auth/auth_responses.py +0 -0
  23. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/auth/auth_utils.py +0 -0
  24. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/cgc_cmd.py +0 -0
  25. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/cgc_models.py +0 -0
  26. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/compute/__init__.py +0 -0
  27. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/compute/billing/__init__.py +0 -0
  28. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/compute/billing/billing_cmd.py +0 -0
  29. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/compute/billing/billing_responses.py +0 -0
  30. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/compute/billing/billing_utils.py +0 -0
  31. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/compute/compute_cmd.py +0 -0
  32. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/compute/compute_models.py +0 -0
  33. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/compute/compute_utils.py +0 -0
  34. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/db/__init__.py +0 -0
  35. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/db/db_cmd.py +0 -0
  36. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/db/db_models.py +0 -0
  37. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/debug/__init__.py +0 -0
  38. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/debug/debug_cmd.py +0 -0
  39. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/exceptions.py +0 -0
  40. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/jobs/__init__.py +0 -0
  41. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/jobs/jobs_cmd.py +0 -0
  42. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/jobs/jobs_responses.py +0 -0
  43. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/resource/__init__.py +0 -0
  44. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/resource/resource_cmd.py +0 -0
  45. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/resource/resource_responses.py +0 -0
  46. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/user/__init__.py +0 -0
  47. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/user/keys_cmd.py +0 -0
  48. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/user/keys_responses.py +0 -0
  49. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/user/keys_utils.py +0 -0
  50. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/user/secret_cmd.py +0 -0
  51. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/user/secret_models.py +0 -0
  52. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/user/secret_responses.py +0 -0
  53. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/user/secret_utils.py +0 -0
  54. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/volume/__init__.py +0 -0
  55. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/volume/data_model.py +0 -0
  56. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/volume/volume_cmd.py +0 -0
  57. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/volume/volume_models.py +0 -0
  58. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/volume/volume_responses.py +0 -0
  59. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/commands/volume/volume_utils.py +0 -0
  60. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/config.py +0 -0
  61. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/sdk/__init__.py +0 -0
  62. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/sdk/exceptions.py +0 -0
  63. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/sdk/job.py +0 -0
  64. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/sdk/postgresql.py +0 -0
  65. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/sdk/resource.py +0 -0
  66. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/server.crt +0 -0
  67. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/telemetry/__init__.py +0 -0
  68. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/telemetry/basic.py +0 -0
  69. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/tests/__init__.py +0 -0
  70. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/tests/desired_responses/test_billing_invoice.txt +0 -0
  71. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/tests/desired_responses/test_billing_status.txt +0 -0
  72. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/tests/desired_responses/test_billing_stop_events_compute.txt +0 -0
  73. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/tests/desired_responses/test_billing_stop_events_volume.txt +0 -0
  74. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/tests/desired_responses/test_compute_list.txt +0 -0
  75. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/tests/desired_responses/test_compute_list_no_labels.txt +0 -0
  76. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/tests/desired_responses/test_tabulate_response.txt +0 -0
  77. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/tests/desired_responses/test_volume_list.txt +0 -0
  78. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/tests/responses_tests.py +0 -0
  79. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/utils/__init__.py +0 -0
  80. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/utils/click_group.py +0 -0
  81. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/utils/config_utils.py +0 -0
  82. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/utils/consts/__init__.py +0 -0
  83. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/utils/consts/env_consts.py +0 -0
  84. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/utils/consts/message_consts.py +0 -0
  85. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/utils/cryptography/__init__.py +0 -0
  86. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/utils/cryptography/aes_crypto.py +0 -0
  87. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/utils/cryptography/encryption_module.py +0 -0
  88. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/utils/cryptography/rsa_crypto.py +0 -0
  89. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/utils/custom_exceptions.py +0 -0
  90. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/utils/get_headers_data.py +0 -0
  91. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/utils/message_utils.py +0 -0
  92. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/utils/prepare_headers.py +0 -0
  93. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/utils/requests_helper.py +0 -0
  94. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/utils/response_utils.py +0 -0
  95. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgc/utils/update.py +0 -0
  96. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgcsdk.egg-info/SOURCES.txt +0 -0
  97. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgcsdk.egg-info/dependency_links.txt +0 -0
  98. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgcsdk.egg-info/entry_points.txt +0 -0
  99. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgcsdk.egg-info/requires.txt +0 -0
  100. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/cgcsdk.egg-info/top_level.txt +0 -0
  101. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/pyproject.toml +0 -0
  102. {cgcsdk-1.0.16 → cgcsdk-1.0.18}/setup.cfg +0 -0
@@ -1,23 +1,20 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cgcsdk
3
- Version: 1.0.16
4
- Summary: Comtegra GPU Cloud REST API client
5
- Home-page: https://git.comtegra.pl/
3
+ Version: 1.0.18
4
+ Summary: CGC Core REST API client
5
+ Home-page: https://cgc.comtegra.cloud/
6
6
  Author: Comtegra AI Team
7
7
  Author-email: ai@comtegra.pl
8
8
  License: BSD 2-clause
9
9
  Project-URL: Documentation, https://docs.cgc.comtegra.cloud/
10
- Project-URL: GitHub, https://git.comtegra.pl/
11
- Project-URL: Changelog, https://git.comtegra.pl/foobar/foobar/blob/master/CHANGELOG.md
12
- Keywords: cloud,sdk,orchestrator,kubernetes,jupyter-notebook
13
- Classifier: Development Status :: 1 - Planning
10
+ Project-URL: GitHub, https://git.comtegra.pl/k8s/cgc-client-k8s-cloud
11
+ Project-URL: Changelog, https://git.comtegra.pl/k8s/cgc-client-k8s-cloud/-/blob/main/cgc/CHANGELOG.md
12
+ Keywords: cloud,sdk,orchestrator,kubernetes,jupyter-notebook,cgc-core
13
+ Classifier: Development Status :: 5 - Production/Stable
14
14
  Classifier: Intended Audience :: Science/Research
15
15
  Classifier: License :: OSI Approved :: BSD License
16
16
  Classifier: Operating System :: POSIX :: Linux
17
17
  Classifier: Programming Language :: Python :: 3
18
- Classifier: Programming Language :: Python :: 3.8
19
- Classifier: Programming Language :: Python :: 3.9
20
- Classifier: Programming Language :: Python :: 3.10
21
18
  Classifier: Programming Language :: Python :: 3.11
22
19
  Classifier: Programming Language :: Python :: 3.12
23
20
  Description-Content-Type: text/markdown
@@ -6,4 +6,4 @@ CONFIG_FILE_NAME = cfg.json
6
6
  TMP_DIR = .tmp
7
7
  RELEASE = 1
8
8
  MAJOR_VERSION = 0
9
- MINOR_VERSION = 16
9
+ MINOR_VERSION = 18
@@ -1,8 +1,25 @@
1
1
  # Change Log
2
2
 
3
+ ## 1.0.18
4
+
5
+ Release on Aug 28, 2024
6
+
7
+ * `cgc job list` now also uses information from the job status
8
+ * `cgc compute port list` now shows full ingress path in the new column
9
+ * `cgc status` now shows user defined quotas
10
+
11
+ ## 1.0.17
12
+
13
+ Release on Aug 19, 2024
14
+
15
+ * `cgc port list` now shows which ports are ingress (`cgc resource ingress app_name`)
16
+ * fix bug for the `cgc keys ssh create` command
17
+ * `cgc context list` now shows which context is active
18
+ * `cgc context list` now shows context server address
19
+
3
20
  ## 1.0.16
4
21
 
5
- Release on Aug XX, 2024
22
+ Release on Aug 02, 2024
6
23
 
7
24
  * dynamic storage classes for volumes
8
25
  * dynamic templates available for compute
@@ -5,9 +5,9 @@ from cgc.utils.message_utils import key_error_decorator_for_helpers
5
5
 
6
6
 
7
7
  def _resource_match(resource: str) -> Union[str, None]:
8
- if resource == "requests.cpu":
8
+ if resource == "limits.cpu":
9
9
  return "Total CPU"
10
- elif resource == "requests.memory":
10
+ elif resource == "limits.memory":
11
11
  return "Total RAM"
12
12
  elif resource == "requests.nvidia.com/gpu":
13
13
  return "Total GPU"
@@ -21,6 +21,8 @@ def _resource_match(resource: str) -> Union[str, None]:
21
21
  elif resource.endswith(".storageclass.storage.k8s.io/requests.storage"):
22
22
  storage_class = resource.split(".")[0]
23
23
  return f"Storage ({storage_class})"
24
+ elif resource == "pods":
25
+ return "Pod Count"
24
26
  else:
25
27
  return None
26
28
 
@@ -32,13 +34,14 @@ class ResourceOrder(Enum):
32
34
  STORAGE = 4
33
35
  VOLUME = 5
34
36
  GPU_TYPE = 6
35
- OTHER = 7
37
+ POD = 7
38
+ OTHER = 8
36
39
 
37
40
 
38
41
  def _resource_order(resource: str) -> ResourceOrder:
39
- if resource == "requests.cpu":
42
+ if resource == "limits.cpu":
40
43
  return ResourceOrder.CPU
41
- elif resource == "requests.memory":
44
+ elif resource == "limits.memory":
42
45
  return ResourceOrder.MEMORY
43
46
  elif resource == "requests.nvidia.com/gpu":
44
47
  return ResourceOrder.GPU
@@ -50,6 +53,8 @@ def _resource_order(resource: str) -> ResourceOrder:
50
53
  return ResourceOrder.STORAGE
51
54
  elif resource.endswith(".storageclass.storage.k8s.io/requests.storage"):
52
55
  return ResourceOrder.STORAGE
56
+ elif resource == "pods":
57
+ return ResourceOrder.POD
53
58
  else:
54
59
  return ResourceOrder.OTHER
55
60
 
@@ -1,12 +1,18 @@
1
1
  from typing import List
2
2
  from cgc.utils import quick_sort
3
- from cgc.utils.config_utils import read_from_cfg
3
+ from cgc.utils.config_utils import get_config_file_name, read_from_cfg
4
4
  from tabulate import tabulate
5
5
 
6
6
 
7
+ def _is_main_context_file(file: str) -> bool:
8
+ if get_config_file_name() == file:
9
+ return True
10
+ return None
11
+
12
+
7
13
  def table_of_user_context_files(config_files: List[str]):
8
14
  # print tabulate of: [context NR | namespace | user_id]
9
- headers = ["Context No.", "Namespace", "User ID"]
15
+ headers = ["Context No.", "Namespace", "User ID", "URL", "Is active"]
10
16
  contexts = []
11
17
  contexts_nrs = []
12
18
  for file in config_files:
@@ -16,13 +22,17 @@ def table_of_user_context_files(config_files: List[str]):
16
22
  ) # should never throw exception with good config_file list
17
23
  contexts_nrs.append(file_context[0])
18
24
  file_data = read_from_cfg(None, file)
19
- values_to_read = ["namespace", "user_id"]
25
+ values_to_read = ["namespace", "user_id", "cgc_api_url"]
20
26
  for k in values_to_read:
21
27
  try:
22
28
  value = file_data[k]
23
29
  except KeyError:
24
30
  value = None
31
+ if k == "cgc_api_url":
32
+ value = "https://cgc-api.comtegra.cloud:443"
25
33
  file_context.append(value)
34
+
35
+ file_context.append(_is_main_context_file(file))
26
36
  contexts.append(file_context)
27
37
 
28
38
  contexts_nrs_sorted = quick_sort(contexts_nrs)
@@ -9,12 +9,28 @@ from cgc.utils.response_utils import (
9
9
  tabulate_a_response,
10
10
  fill_missing_values_in_a_response,
11
11
  )
12
- from cgc.utils.message_utils import prepare_warning_message
13
12
 
14
13
 
15
14
  @key_error_decorator_for_helpers
16
15
  def get_compute_port_list(data: dict) -> list:
17
- return data["details"]["ports"]["ports"]
16
+ resource_ports_data = data["details"]["ports"]["ports"]
17
+ try:
18
+ ingress_data = data["details"]["ingress"]
19
+ ingress_port_names = [port["port_name"] for port in ingress_data]
20
+ for port in resource_ports_data:
21
+ port["ingress"] = True if port["name"] in ingress_port_names else False
22
+ port_data = next(
23
+ (
24
+ ingress
25
+ for ingress in ingress_data
26
+ if ingress["port_name"] == port["name"]
27
+ ),
28
+ None,
29
+ )
30
+ port["ingress_url"] = port_data.get("url", "") if port_data else ""
31
+ except KeyError:
32
+ pass # no ingress data, server outdated
33
+ return resource_ports_data
18
34
 
19
35
 
20
36
  @key_error_decorator_for_helpers
@@ -122,7 +122,10 @@ def get_job_list(job_list: list, job_pod_list: list):
122
122
  for job_pod in job_pod_list:
123
123
  job_pod_labels: dict = job_pod.get("labels", {})
124
124
  if job_pod_labels.get("app-name", "") == job.get("name"):
125
- job["status"] = job_pod["status"]
125
+ if job["status"] is not None and job["status"] == "Unknown":
126
+ job["status"] = job_pod["status"] # try to get status from pod
127
+ elif job["status"] is None: # support older server versions
128
+ job["status"] = job_pod["status"]
126
129
  job["gpu-count"] = job_pod_labels.get("gpu-count", 0)
127
130
  job["gpu-label"] = job_pod_labels.get("gpu-label", "N/A")
128
131
  # job["status_reason"] = [
@@ -166,9 +169,7 @@ def get_job_json_data(job_list: list):
166
169
 
167
170
  job_data = {
168
171
  "name": job.get("labels", {}).get("app-name"),
169
- "status": job.get("status", {}).get(
170
- "phase", "Unknown"
171
- ), # only happen when Pod "disappeared" from the k8s - BUG
172
+ "status": job.get("status", {}).get("phase", "Unknown"),
172
173
  "volumes_mounted": volumes_mounted,
173
174
  "cpu": cpu,
174
175
  "ram": ram,
@@ -0,0 +1,31 @@
1
+ from cgc.commands.cgc_models import CGCEntityList
2
+
3
+
4
+ class SSHKeyTypes(CGCEntityList):
5
+ """List of supported SSH key types
6
+
7
+ :param Enum: name of SSH key type
8
+ :type Enum: str
9
+ """
10
+
11
+ RSA = "ssh-rsa"
12
+ DSS = "ssh-dss"
13
+ ECDSA_P256 = "ecdsa-sha2-nistp256"
14
+ ECDSA_P384 = "ecdsa-sha2-nistp384"
15
+ ECDSA_P521 = "ecdsa-sha2-nistp521"
16
+ ED25519 = "ssh-ed25519"
17
+
18
+ def load_data() -> list:
19
+ """Return list of supported SSH key types
20
+
21
+ :return: list of supported SSH key types
22
+ :rtype: list
23
+ """
24
+ return [
25
+ SSHKeyTypes.RSA,
26
+ SSHKeyTypes.DSS,
27
+ SSHKeyTypes.ECDSA_P256,
28
+ SSHKeyTypes.ECDSA_P384,
29
+ SSHKeyTypes.ECDSA_P521,
30
+ SSHKeyTypes.ED25519,
31
+ ]
@@ -66,8 +66,8 @@ def check_version():
66
66
  click.echo(prepare_error_message(OUTDATED_MAJOR))
67
67
  print_compare_versions(server_version, client_version)
68
68
  while True:
69
- anwser = input("Update now? (Y/N): ").lower()
70
- if anwser in ("y", "yes"):
69
+ answer = input("Update now? (Y/N): ").lower()
70
+ if answer in ("y", "yes"):
71
71
  update_file_path = os.path.join(os.path.dirname(__file__), "update.py")
72
72
  try:
73
73
  subprocess.Popen([sys.executable, update_file_path])
@@ -78,7 +78,7 @@ def check_version():
78
78
  "Could not initiate update, try again or install update manually with: pip install --upgrade cgcsdk"
79
79
  )
80
80
  )
81
- if anwser in ("n", "no"):
81
+ if answer in ("n", "no"):
82
82
  sys.exit()
83
83
  else:
84
84
  click.echo(prepare_warning_message("wrong input, please try again."))
@@ -1,23 +1,20 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cgcsdk
3
- Version: 1.0.16
4
- Summary: Comtegra GPU Cloud REST API client
5
- Home-page: https://git.comtegra.pl/
3
+ Version: 1.0.18
4
+ Summary: CGC Core REST API client
5
+ Home-page: https://cgc.comtegra.cloud/
6
6
  Author: Comtegra AI Team
7
7
  Author-email: ai@comtegra.pl
8
8
  License: BSD 2-clause
9
9
  Project-URL: Documentation, https://docs.cgc.comtegra.cloud/
10
- Project-URL: GitHub, https://git.comtegra.pl/
11
- Project-URL: Changelog, https://git.comtegra.pl/foobar/foobar/blob/master/CHANGELOG.md
12
- Keywords: cloud,sdk,orchestrator,kubernetes,jupyter-notebook
13
- Classifier: Development Status :: 1 - Planning
10
+ Project-URL: GitHub, https://git.comtegra.pl/k8s/cgc-client-k8s-cloud
11
+ Project-URL: Changelog, https://git.comtegra.pl/k8s/cgc-client-k8s-cloud/-/blob/main/cgc/CHANGELOG.md
12
+ Keywords: cloud,sdk,orchestrator,kubernetes,jupyter-notebook,cgc-core
13
+ Classifier: Development Status :: 5 - Production/Stable
14
14
  Classifier: Intended Audience :: Science/Research
15
15
  Classifier: License :: OSI Approved :: BSD License
16
16
  Classifier: Operating System :: POSIX :: Linux
17
17
  Classifier: Programming Language :: Python :: 3
18
- Classifier: Programming Language :: Python :: 3.8
19
- Classifier: Programming Language :: Python :: 3.9
20
- Classifier: Programming Language :: Python :: 3.10
21
18
  Classifier: Programming Language :: Python :: 3.11
22
19
  Classifier: Programming Language :: Python :: 3.12
23
20
  Description-Content-Type: text/markdown
@@ -15,18 +15,25 @@ VERSION_STRING = f"{RELEASE}.{MAJOR_VERSION}.{MINOR_VERSION}"
15
15
  setup(
16
16
  name="cgcsdk",
17
17
  version=VERSION_STRING,
18
- description="Comtegra GPU Cloud REST API client",
18
+ description="CGC Core REST API client",
19
19
  long_description=long_description,
20
20
  long_description_content_type="text/markdown",
21
- url="https://git.comtegra.pl/",
21
+ url="https://cgc.comtegra.cloud/",
22
22
  project_urls={
23
23
  "Documentation": "https://docs.cgc.comtegra.cloud/",
24
- "GitHub": "https://git.comtegra.pl/",
25
- "Changelog": "https://git.comtegra.pl/foobar/foobar/blob/master/CHANGELOG.md",
24
+ "GitHub": "https://git.comtegra.pl/k8s/cgc-client-k8s-cloud",
25
+ "Changelog": "https://git.comtegra.pl/k8s/cgc-client-k8s-cloud/-/blob/main/cgc/CHANGELOG.md",
26
26
  },
27
27
  author="Comtegra AI Team",
28
28
  author_email="ai@comtegra.pl",
29
- keywords=["cloud", "sdk", "orchestrator", "kubernetes", "jupyter-notebook"],
29
+ keywords=[
30
+ "cloud",
31
+ "sdk",
32
+ "orchestrator",
33
+ "kubernetes",
34
+ "jupyter-notebook",
35
+ "cgc-core",
36
+ ],
30
37
  license="BSD 2-clause",
31
38
  packages=find_packages(exclude=["cgc.tests.*, cgc.tests"]),
32
39
  package_data={"cgc": ["CHANGELOG.md", ".env", "tests/desired_responses/*"]},
@@ -49,14 +56,11 @@ setup(
49
56
  ],
50
57
  },
51
58
  classifiers=[
52
- "Development Status :: 1 - Planning",
59
+ "Development Status :: 5 - Production/Stable",
53
60
  "Intended Audience :: Science/Research",
54
61
  "License :: OSI Approved :: BSD License",
55
62
  "Operating System :: POSIX :: Linux",
56
63
  "Programming Language :: Python :: 3",
57
- "Programming Language :: Python :: 3.8",
58
- "Programming Language :: Python :: 3.9",
59
- "Programming Language :: Python :: 3.10",
60
64
  "Programming Language :: Python :: 3.11",
61
65
  "Programming Language :: Python :: 3.12",
62
66
  ],
@@ -1,16 +0,0 @@
1
- from cgc.commands.cgc_models import CGCEntityList
2
-
3
-
4
- class SSHKeyTypes(CGCEntityList):
5
- """List of supported SSH key types
6
-
7
- :param Enum: name of SSH key type
8
- :type Enum: str
9
- """
10
-
11
- RSA = "ssh-rsa"
12
- DSS = "ssh-dss"
13
- ECDSA_P256 = "ecdsa-sha2-nistp256"
14
- ECDSA_P384 = "ecdsa-sha2-nistp384"
15
- ECDSA_P521 = "ecdsa-sha2-nistp521"
16
- ED25519 = "ssh-ed25519"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes