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.
- {lockbot-2.9.1/python/lockbot.egg-info → lockbot-2.9.3}/PKG-INFO +19 -2
- {lockbot-2.9.1 → lockbot-2.9.3}/README.md +18 -1
- {lockbot-2.9.1 → lockbot-2.9.3}/pyproject.toml +1 -1
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/io.py +2 -0
- {lockbot-2.9.1 → lockbot-2.9.3/python/lockbot.egg-info}/PKG-INFO +19 -2
- {lockbot-2.9.1 → lockbot-2.9.3}/LICENSE +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/MANIFEST.in +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/__init__.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/__init__.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/__init__.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/admin/__init__.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/admin/router.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/audit/__init__.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/audit/models.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/audit/router.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/audit/service.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/auth/__init__.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/auth/dependencies.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/auth/models.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/auth/router.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/auth/schemas.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/backup/__init__.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/backup/router.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/backup/scheduler.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/backup/service.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/bots/__init__.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/bots/encryption.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/bots/manager.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/bots/models.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/bots/router.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/bots/schemas.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/bots/webhook_handler.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/config.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/database.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/logs/__init__.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/main.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/rate_limit.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/settings/__init__.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/settings/models.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/backend/app/settings/router.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/__init__.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/base_bot.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/bot_instance.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/config.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/device_bot.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/device_usage_alert.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/device_usage_utils.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/entry.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/env.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/handler.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/i18n/__init__.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/i18n/en.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/i18n/zh.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/message_adapter.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/msg_utils.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/node_bot.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/platforms/__init__.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/platforms/infoflow.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/queue_bot.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/request.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/scheduler.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot/core/utils.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot.egg-info/SOURCES.txt +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot.egg-info/dependency_links.txt +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot.egg-info/requires.txt +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/python/lockbot.egg-info/top_level.txt +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/setup.cfg +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/tools/create_super_admin.py +0 -0
- {lockbot-2.9.1 → lockbot-2.9.3}/tools/gen_keys.py +0 -0
- {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.
|
|
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
|
[](https://pypi.org/project/lockbot/)
|
|
54
54
|
[](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
|
|
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
|
[](https://pypi.org/project/lockbot/)
|
|
11
11
|
[](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
|
|
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
|
|
|
@@ -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.
|
|
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
|
[](https://pypi.org/project/lockbot/)
|
|
54
54
|
[](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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|