konduktor-nightly 0.1.0.dev20250908104728__tar.gz → 0.1.0.dev20250909100510__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.

Potentially problematic release.


This version of konduktor-nightly might be problematic. Click here for more details.

Files changed (106) hide show
  1. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/PKG-INFO +1 -1
  2. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/__init__.py +2 -2
  3. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/backends/jobset.py +7 -4
  4. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/utils/log_utils.py +7 -2
  5. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/utils/schemas.py +4 -0
  6. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/utils/ux_utils.py +11 -0
  7. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/pyproject.toml +1 -1
  8. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/LICENSE +0 -0
  9. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/README.md +0 -0
  10. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/adaptors/__init__.py +0 -0
  11. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/adaptors/aws.py +0 -0
  12. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/adaptors/common.py +0 -0
  13. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/adaptors/gcp.py +0 -0
  14. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/authentication.py +0 -0
  15. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/backends/__init__.py +0 -0
  16. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/backends/backend.py +0 -0
  17. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/backends/constants.py +0 -0
  18. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/backends/deployment.py +0 -0
  19. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/backends/deployment_utils.py +0 -0
  20. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/backends/jobset_utils.py +0 -0
  21. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/backends/pod_utils.py +0 -0
  22. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/check.py +0 -0
  23. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/cli.py +0 -0
  24. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/config.py +0 -0
  25. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/constants.py +0 -0
  26. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/controller/__init__.py +0 -0
  27. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/controller/constants.py +0 -0
  28. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/controller/launch.py +0 -0
  29. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/controller/node.py +0 -0
  30. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/controller/parse.py +0 -0
  31. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/dashboard/README.md +0 -0
  32. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/dashboard/backend/main.py +0 -0
  33. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/dashboard/backend/sockets.py +0 -0
  34. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/dashboard/frontend/.eslintrc.json +0 -0
  35. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/dashboard/frontend/.gitignore +0 -0
  36. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/dashboard/frontend/app/api/jobs/route.js +0 -0
  37. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/dashboard/frontend/app/api/namespaces/route.js +0 -0
  38. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/dashboard/frontend/app/components/Grafana.jsx +0 -0
  39. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/dashboard/frontend/app/components/JobsData.jsx +0 -0
  40. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/dashboard/frontend/app/components/LogsData.jsx +0 -0
  41. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/dashboard/frontend/app/components/NavMenu.jsx +0 -0
  42. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/dashboard/frontend/app/components/NavTabs.jsx +0 -0
  43. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/dashboard/frontend/app/components/NavTabs2.jsx +0 -0
  44. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/dashboard/frontend/app/components/SelectBtn.jsx +0 -0
  45. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/dashboard/frontend/app/components/lib/utils.js +0 -0
  46. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/dashboard/frontend/app/components/ui/chip-select.jsx +0 -0
  47. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/dashboard/frontend/app/components/ui/input.jsx +0 -0
  48. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/dashboard/frontend/app/components/ui/navigation-menu.jsx +0 -0
  49. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/dashboard/frontend/app/components/ui/select.jsx +0 -0
  50. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/dashboard/frontend/app/favicon.ico +0 -0
  51. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/dashboard/frontend/app/globals.css +0 -0
  52. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/dashboard/frontend/app/jobs/page.js +0 -0
  53. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/dashboard/frontend/app/layout.js +0 -0
  54. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/dashboard/frontend/app/logs/page.js +0 -0
  55. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/dashboard/frontend/app/page.js +0 -0
  56. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/dashboard/frontend/jsconfig.json +0 -0
  57. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/dashboard/frontend/next.config.mjs +0 -0
  58. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/dashboard/frontend/package-lock.json +0 -0
  59. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/dashboard/frontend/package.json +0 -0
  60. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/dashboard/frontend/postcss.config.mjs +0 -0
  61. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/dashboard/frontend/server.js +0 -0
  62. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/dashboard/frontend/tailwind.config.js +0 -0
  63. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/data/__init__.py +0 -0
  64. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/data/aws/__init__.py +0 -0
  65. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/data/aws/s3.py +0 -0
  66. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/data/constants.py +0 -0
  67. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/data/data_utils.py +0 -0
  68. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/data/gcp/__init__.py +0 -0
  69. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/data/gcp/constants.py +0 -0
  70. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/data/gcp/gcs.py +0 -0
  71. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/data/gcp/utils.py +0 -0
  72. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/data/registry.py +0 -0
  73. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/data/storage.py +0 -0
  74. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/data/storage_utils.py +0 -0
  75. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/execution.py +0 -0
  76. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/kube_client.py +0 -0
  77. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/logging.py +0 -0
  78. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/manifests/apoxy-setup.yaml +0 -0
  79. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/manifests/apoxy-setup2.yaml +0 -0
  80. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/manifests/controller_deployment.yaml +0 -0
  81. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/manifests/dashboard_deployment.yaml +0 -0
  82. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/manifests/dmesg_daemonset.yaml +0 -0
  83. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/manifests/pod_cleanup_controller.yaml +0 -0
  84. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/resource.py +0 -0
  85. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/serving.py +0 -0
  86. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/task.py +0 -0
  87. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/templates/apoxy-deployment.yaml.j2 +0 -0
  88. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/templates/deployment.yaml.j2 +0 -0
  89. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/templates/jobset.yaml.j2 +0 -0
  90. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/templates/pod.yaml.j2 +0 -0
  91. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/usage/__init__.py +0 -0
  92. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/usage/constants.py +0 -0
  93. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/utils/__init__.py +0 -0
  94. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/utils/accelerator_registry.py +0 -0
  95. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/utils/annotations.py +0 -0
  96. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/utils/base64_utils.py +0 -0
  97. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/utils/common_utils.py +0 -0
  98. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/utils/constants.py +0 -0
  99. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/utils/env_options.py +0 -0
  100. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/utils/exceptions.py +0 -0
  101. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/utils/kubernetes_enums.py +0 -0
  102. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/utils/kubernetes_utils.py +0 -0
  103. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/utils/loki_utils.py +0 -0
  104. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/utils/rich_utils.py +0 -0
  105. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/utils/subprocess_utils.py +0 -0
  106. {konduktor_nightly-0.1.0.dev20250908104728 → konduktor_nightly-0.1.0.dev20250909100510}/konduktor/utils/validator.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: konduktor-nightly
3
- Version: 0.1.0.dev20250908104728
3
+ Version: 0.1.0.dev20250909100510
4
4
  Summary: GPU Cluster Health Management
5
5
  Author: Andrew Aikawa
6
6
  Author-email: asai@berkeley.edu
@@ -11,7 +11,7 @@ from konduktor.task import Task
11
11
  __all__ = ['launch', 'Resources', 'Task', 'Serving']
12
12
 
13
13
  # Replaced with the current commit when building the wheels.
14
- _KONDUKTOR_COMMIT_SHA = 'f94a3896973c83e3b9d9cacf15049d248660ce66'
14
+ _KONDUKTOR_COMMIT_SHA = 'b772c32b1fa9e082d58d857dd655abc132c7bab4'
15
15
  os.makedirs(os.path.expanduser('~/.konduktor'), exist_ok=True)
16
16
 
17
17
 
@@ -45,5 +45,5 @@ def _get_git_commit():
45
45
 
46
46
 
47
47
  __commit__ = _get_git_commit()
48
- __version__ = '1.0.0.dev0.1.0.dev20250908104728'
48
+ __version__ = '1.0.0.dev0.1.0.dev20250909100510'
49
49
  __root_dir__ = os.path.dirname(os.path.abspath(__file__))
@@ -6,7 +6,7 @@ https://kueue.sigs.k8s.io/docs/tasks/run/jobsets/
6
6
  import threading
7
7
  import time
8
8
  import typing
9
- from typing import Dict, Optional, Tuple
9
+ from typing import Any, Dict, Optional, Tuple
10
10
 
11
11
  import colorama
12
12
 
@@ -176,7 +176,7 @@ class JobsetBackend(backend.Backend):
176
176
  context = kubernetes_utils.get_current_kube_config_context_name()
177
177
  namespace = kubernetes_utils.get_kube_config_context_namespace(context)
178
178
  # TODO(asaiacai): need to set env variables in pod
179
- jobset_response = jobset_utils.create_jobset(
179
+ jobset_response: Optional[Dict[str, Any]] = jobset_utils.create_jobset(
180
180
  namespace,
181
181
  task,
182
182
  pod_spec['kubernetes']['pod_config'],
@@ -195,13 +195,16 @@ class JobsetBackend(backend.Backend):
195
195
  assert jobset_response is not None
196
196
  log_thread = threading.Thread(
197
197
  target=log_utils.tail_logs,
198
- args=(jobset_response,),
198
+ args=(task.name,),
199
199
  daemon=True,
200
200
  )
201
201
  logger.info('streaming logs...')
202
202
  log_thread.start()
203
203
  is_success, msg = _wait_for_jobset_completion(namespace, task.name)
204
- log_thread.join(timeout=2.0) # give the job sometime to flush logs
204
+ # give the job sometime to flush logs
205
+ log_thread.join(
206
+ timeout=config.get_nested(('logs', 'timeout'), 60.0)
207
+ )
205
208
  if not is_success:
206
209
  logger.error(msg)
207
210
  else:
@@ -378,7 +378,7 @@ def tail_vicky_logs(
378
378
  vicky_url = f'http://localhost:{port}/select/logsql/tail'
379
379
  else:
380
380
  vicky_url = f'http://localhost:{port}/select/logsql/query'
381
- timeout = 5
381
+ timeout = config.get_nested(('logs', 'timeout'), 60)
382
382
  logger.debug(f'Vicky URL: {vicky_url}')
383
383
 
384
384
  try:
@@ -409,7 +409,12 @@ def tail_vicky_logs(
409
409
  except KeyboardInterrupt:
410
410
  logger.info('\nStopping log stream...')
411
411
  except requests.exceptions.Timeout:
412
- logger.error(f'Request to VictoriaLogs timed out after {timeout} seconds')
412
+ logger.error(
413
+ f'Request to VictoriaLogs timed out after {timeout} seconds. '
414
+ 'Try increasing the timeout in the config '
415
+ 'file under `logs.timeout`. If '
416
+ 'you are still seeing issues, please contact support.'
417
+ )
413
418
  except requests.exceptions.ConnectionError as e:
414
419
  logger.error(f'Failed to connect to VictoriaLogs at {vicky_url}: {e}')
415
420
  except requests.exceptions.RequestException as e:
@@ -542,6 +542,10 @@ def get_config_schema():
542
542
  'type': 'string',
543
543
  'case_insensitive_enum': ['loki', 'victoria'],
544
544
  },
545
+ 'timeout': {
546
+ 'type': 'integer',
547
+ 'minimum': 1,
548
+ },
545
549
  },
546
550
  }
547
551
 
@@ -1,3 +1,14 @@
1
+ # Proprietary Changes made for Trainy under the Trainy Software License
2
+ # Original source: skypilot: https://github.com/skypilot-org/skypilot
3
+ # which is Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ # http://www.apache.org/licenses/LICENSE-2.0
7
+ # Unless required by applicable law or agreed to in writing, software
8
+ # distributed under the License is distributed on an "AS IS" BASIS,
9
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10
+ # See the License for the specific language governing permissions and
11
+ # limitations under the License.
1
12
  """Utility functions for UX."""
2
13
 
3
14
  import contextlib
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "konduktor-nightly"
3
- version = "0.1.0.dev20250908104728"
3
+ version = "0.1.0.dev20250909100510"
4
4
  description = "GPU Cluster Health Management"
5
5
  packages = [
6
6
  {include = "konduktor"}