lockbot 2.9.1__tar.gz → 2.9.3__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 (70) hide show
  1. {lockbot-2.9.1/python/lockbot.egg-info → lockbot-2.9.3}/PKG-INFO +19 -2
  2. {lockbot-2.9.1 → lockbot-2.9.3}/README.md +18 -1
  3. {lockbot-2.9.1 → lockbot-2.9.3}/pyproject.toml +1 -1
  4. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/io.py +2 -0
  5. {lockbot-2.9.1 → lockbot-2.9.3/python/lockbot.egg-info}/PKG-INFO +19 -2
  6. {lockbot-2.9.1 → lockbot-2.9.3}/LICENSE +0 -0
  7. {lockbot-2.9.1 → lockbot-2.9.3}/MANIFEST.in +0 -0
  8. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/__init__.py +0 -0
  9. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/__init__.py +0 -0
  10. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/__init__.py +0 -0
  11. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/admin/__init__.py +0 -0
  12. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/admin/router.py +0 -0
  13. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/audit/__init__.py +0 -0
  14. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/audit/models.py +0 -0
  15. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/audit/router.py +0 -0
  16. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/audit/service.py +0 -0
  17. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/auth/__init__.py +0 -0
  18. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/auth/dependencies.py +0 -0
  19. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/auth/models.py +0 -0
  20. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/auth/router.py +0 -0
  21. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/auth/schemas.py +0 -0
  22. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/backup/__init__.py +0 -0
  23. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/backup/router.py +0 -0
  24. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/backup/scheduler.py +0 -0
  25. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/backup/service.py +0 -0
  26. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/bots/__init__.py +0 -0
  27. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/bots/encryption.py +0 -0
  28. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/bots/manager.py +0 -0
  29. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/bots/models.py +0 -0
  30. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/bots/router.py +0 -0
  31. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/bots/schemas.py +0 -0
  32. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/bots/webhook_handler.py +0 -0
  33. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/config.py +0 -0
  34. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/database.py +0 -0
  35. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/logs/__init__.py +0 -0
  36. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/main.py +0 -0
  37. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/rate_limit.py +0 -0
  38. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/settings/__init__.py +0 -0
  39. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/settings/models.py +0 -0
  40. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/settings/router.py +0 -0
  41. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/__init__.py +0 -0
  42. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/base_bot.py +0 -0
  43. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/bot_instance.py +0 -0
  44. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/config.py +0 -0
  45. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/device_bot.py +0 -0
  46. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/device_usage_alert.py +0 -0
  47. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/device_usage_utils.py +0 -0
  48. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/entry.py +0 -0
  49. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/env.py +0 -0
  50. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/handler.py +0 -0
  51. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/i18n/__init__.py +0 -0
  52. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/i18n/en.py +0 -0
  53. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/i18n/zh.py +0 -0
  54. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/message_adapter.py +0 -0
  55. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/msg_utils.py +0 -0
  56. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/node_bot.py +0 -0
  57. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/platforms/__init__.py +0 -0
  58. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/platforms/infoflow.py +0 -0
  59. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/queue_bot.py +0 -0
  60. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/request.py +0 -0
  61. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/scheduler.py +0 -0
  62. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/utils.py +0 -0
  63. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot.egg-info/SOURCES.txt +0 -0
  64. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot.egg-info/dependency_links.txt +0 -0
  65. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot.egg-info/requires.txt +0 -0
  66. {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot.egg-info/top_level.txt +0 -0
  67. {lockbot-2.9.1 → lockbot-2.9.3}/setup.cfg +0 -0
  68. {lockbot-2.9.1 → lockbot-2.9.3}/tools/create_super_admin.py +0 -0
  69. {lockbot-2.9.1 → lockbot-2.9.3}/tools/gen_keys.py +0 -0
  70. {lockbot-2.9.1 → lockbot-2.9.3}/tools/reset_super_admin_password.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lockbot
3
- Version: 2.9.1
3
+ Version: 2.9.3
4
4
  Summary: Cluster resource management bot for IM platforms
5
5
  Author-email: Jianbang Yang <yangjianbang112@gmail.com>
6
6
  License: MIT
@@ -53,6 +53,8 @@ Supports both standalone Flask deployment and a full platform mode with FastAPI
53
53
  [![PyPI version](https://img.shields.io/pypi/v/lockbot?color=blue)](https://pypi.org/project/lockbot/)
54
54
  [![Docker Image](https://img.shields.io/badge/ghcr.io-dynamicheart%2Flockbot-blue?logo=docker)](https://github.com/DynamicHeart/lockbot/pkgs/container/lockbot)
55
55
 
56
+ <img src="./docs/demo.gif" width="600" />
57
+
56
58
  ## Features
57
59
 
58
60
  - **Device Lock Bot** — Lock/unlock individual GPUs or devices on a cluster
@@ -148,10 +150,25 @@ See `python/lockbot/core/config.py` for the full configuration reference.
148
150
 
149
151
  ## Development
150
152
 
153
+ ### Dev Server
154
+
151
155
  ```bash
152
- # Install dev dependencies
156
+ # Install dependencies
153
157
  pip install -e ".[dev]"
158
+ cd frontend && npm install && cd ..
159
+
160
+ # Start backend (port 8002, hot-reload)
161
+ bash scripts/dev/backend.sh
162
+
163
+ # Start frontend (port 8001, proxies /api/* -> localhost:8002)
164
+ bash scripts/dev/frontend.sh
165
+ ```
166
+
167
+ Both servers support hot-reload — code changes take effect automatically.
154
168
 
169
+ ### Testing
170
+
171
+ ```bash
155
172
  # Run tests
156
173
  pytest
157
174
 
@@ -10,6 +10,8 @@ Supports both standalone Flask deployment and a full platform mode with FastAPI
10
10
  [![PyPI version](https://img.shields.io/pypi/v/lockbot?color=blue)](https://pypi.org/project/lockbot/)
11
11
  [![Docker Image](https://img.shields.io/badge/ghcr.io-dynamicheart%2Flockbot-blue?logo=docker)](https://github.com/DynamicHeart/lockbot/pkgs/container/lockbot)
12
12
 
13
+ <img src="./docs/demo.gif" width="600" />
14
+
13
15
  ## Features
14
16
 
15
17
  - **Device Lock Bot** — Lock/unlock individual GPUs or devices on a cluster
@@ -105,10 +107,25 @@ See `python/lockbot/core/config.py` for the full configuration reference.
105
107
 
106
108
  ## Development
107
109
 
110
+ ### Dev Server
111
+
108
112
  ```bash
109
- # Install dev dependencies
113
+ # Install dependencies
110
114
  pip install -e ".[dev]"
115
+ cd frontend && npm install && cd ..
116
+
117
+ # Start backend (port 8002, hot-reload)
118
+ bash scripts/dev/backend.sh
119
+
120
+ # Start frontend (port 8001, proxies /api/* -> localhost:8002)
121
+ bash scripts/dev/frontend.sh
122
+ ```
123
+
124
+ Both servers support hot-reload — code changes take effect automatically.
111
125
 
126
+ ### Testing
127
+
128
+ ```bash
112
129
  # Run tests
113
130
  pytest
114
131
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "lockbot"
7
- version = "2.9.1"
7
+ version = "2.9.3"
8
8
  description = "Cluster resource management bot for IM platforms"
9
9
  readme = "README.md"
10
10
  license = {text = "MIT"}
@@ -154,6 +154,8 @@ def create_or_load_device_state(config=None):
154
154
  clamped = apply_max_duration_limit(device_status["current_users"], max_duration, duration_whitelist)
155
155
  clamped_user_ids.update(clamped)
156
156
  default_device.update(**device_status)
157
+ # Always use config's dev_model as source of truth
158
+ default_device["dev_model"] = cluster_configs[node_key][dev_id]
157
159
 
158
160
  if clamped_user_ids:
159
161
  save_bot_state_to_file(default_state, config)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lockbot
3
- Version: 2.9.1
3
+ Version: 2.9.3
4
4
  Summary: Cluster resource management bot for IM platforms
5
5
  Author-email: Jianbang Yang <yangjianbang112@gmail.com>
6
6
  License: MIT
@@ -53,6 +53,8 @@ Supports both standalone Flask deployment and a full platform mode with FastAPI
53
53
  [![PyPI version](https://img.shields.io/pypi/v/lockbot?color=blue)](https://pypi.org/project/lockbot/)
54
54
  [![Docker Image](https://img.shields.io/badge/ghcr.io-dynamicheart%2Flockbot-blue?logo=docker)](https://github.com/DynamicHeart/lockbot/pkgs/container/lockbot)
55
55
 
56
+ <img src="./docs/demo.gif" width="600" />
57
+
56
58
  ## Features
57
59
 
58
60
  - **Device Lock Bot** — Lock/unlock individual GPUs or devices on a cluster
@@ -148,10 +150,25 @@ See `python/lockbot/core/config.py` for the full configuration reference.
148
150
 
149
151
  ## Development
150
152
 
153
+ ### Dev Server
154
+
151
155
  ```bash
152
- # Install dev dependencies
156
+ # Install dependencies
153
157
  pip install -e ".[dev]"
158
+ cd frontend && npm install && cd ..
159
+
160
+ # Start backend (port 8002, hot-reload)
161
+ bash scripts/dev/backend.sh
162
+
163
+ # Start frontend (port 8001, proxies /api/* -> localhost:8002)
164
+ bash scripts/dev/frontend.sh
165
+ ```
166
+
167
+ Both servers support hot-reload — code changes take effect automatically.
154
168
 
169
+ ### Testing
170
+
171
+ ```bash
155
172
  # Run tests
156
173
  pytest
157
174
 
File without changes
File without changes
File without changes
File without changes